ReviewOS

zig-utils/zig-js

Inspector: pause, breakpoints, stepping, scripts, and exception control

#153
Closed chris opened this 9 days ago ·
9 days ago

Parent: #139

Implement execution control on top of the versioned inspector session transport.

Acceptance:

  • Preserve statement/source locations and publish scriptParsed events with stable script IDs.
  • Implement debugger-statement and explicit pause/resume.
  • Implement URL/script breakpoints, removal, and deterministic resolution events.
  • Implement stepInto, stepOver, and stepOut across calls and exceptions.
  • Implement pause-on-exception modes and exception events.
  • Keep tree-walker and baseline/native tiers coherent, deopting or using shared hooks where required.
  • Add end-to-end protocol transcripts with no silently accepted commands.

Completed implementation:

  • 98c9dbb retains exact statement locations, stable scripts, debugger-statement and requested pause/resume, with tree-walker deoptimization for scripts and ordinary synchronous functions.
  • eb69127 adds source retrieval, future/present URL and script-ID breakpoints, deterministic nearest-statement resolution, repeated hits, and removal.
  • 6344e53 implements logical-depth stepInto/stepOver/stepOut across calls and caught exceptions.
  • 357f01d implements none/all/uncaught exception policy with origin/fallback detection, exceptionThrown events, adjusted locations, and no duplicate caught/uncaught notifications.
  • 835831d adds instruction-indexed debugger checkpoints to suspendable generator/async VM chunks across yield/await, disables checkpoint-skipping quick paths in debug chunks, covers VM throws, and publishes the machine-readable 16-command/8-event inventory with deterministic -32601 behavior.

Verification:

  • zig build test -Dtest-filter='C-API: debugger checkpoints survive generator yield and async await' — 2/2, no leaks.
  • zig build test -Dtest-filter='C-API: inspector protocol inventory has no hidden commands' — 2/2, no leaks.
  • zig build test-c-api — C and C++ hosts pass; 117/117 declarations complete and present.
  • Accumulated zig build test gate — 811/811 tests passed.

Dynamic eval/module/function-constructor script discovery is explicitly tracked in #155; paused frames, scopes, and remote values remain in #154.

9 days ago

Completed and pushed to main through 835831d. All acceptance criteria and documented verification gates are green; remaining inspector expansion is tracked by #154 and #155.

Sign in to comment on this issue.