You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extend debugger script discovery and execution control beyond top-level scripts registered while Debugger is already enabled, so every supported code origin is represented honestly in the inspector.
Acceptance:
Retain and publish scripts evaluated before the first inspector session or before Debugger.enable, including functions already compiled/warmed before attachment.
Publish stable Debugger.scriptParsed identities and exact retrievable source for direct/indirect eval, modules, and supported Function/AsyncFunction/GeneratorFunction constructors.
Preserve nested source URLs, starting offsets, and line/column mapping without conflating generated scripts with their caller.
Apply URL/script breakpoints, pause/resume, stepping, and exception locations inside every registered historical or dynamic source.
Deoptimize or instrument pre-existing baseline/native entries on debugger attachment so compiled functions cannot bypass statement boundaries.
Define deterministic identity/reuse behavior when the same source is evaluated repeatedly.
Cover tree-walker, warmed baseline/native functions, suspendable VM, module evaluation, detach/teardown, and multiple inspector sessions with end-to-end transcripts.
Add every exposed command/event to the machine-readable protocol inventory with no silent or hidden behavior.
This is deliberately separate from #153/#154: those issues supply execution control and paused-state inspection for scripts registered while debugging; this issue expands the registered origins and closes the pre-attachment tier gap.
Progress:
4f3d8f4 moves script identity/source history to the context. Every C-API evaluation receives a stable ID before attachment, Debugger.enable publishes retained scripts in order, exact source/start offsets remain retrievable, and destroying/recreating all sessions preserves IDs. Statement locations are retained with the historical AST for the warmed-function instrumentation slice next.
Focused debugger gate: 7/7 pass, zero leaks.
4410be2 makes all bytecode/suspendable chunks retain latent source checkpoints while a null hook keeps normal execution inactive. Debugger attachment withholds native entry and activates historical chunks without recompiling or changing upvalue layout. Ordinary VM activations now publish named live locals; evaluateOnCallFrame mutations synchronize back to real slots before resume. A function warmed for 10,000 calls before attachment is breakpointed, stepped, mutated, and resumed with the changed result. Focused evidence: 8/8 debugger tests and 4/4 VM production cases pass with zero leaks.
0fb2155 adds the engine-level dynamic-script registration bridge and completes direct/indirect eval discovery: successful parses get independent IDs, trailing sourceURL directives are honored, fallback URLs distinguish direct from indirect eval, repeated identical bytes get fresh IDs, URL breakpoints resolve for every instance, and source is retrievable. Script-parsed callbacks use deferred teardown guards. Focused evidence: 9/9 debugger and 5/5 inspector lifecycle tests pass with zero leaks.
afddbe4 registers Function, GeneratorFunction, AsyncFunction, and AsyncGeneratorFunction canonical sources before object creation. Inline sourceURL directives define JS-constructor URLs; JSObjectMakeFunction preserves its explicit URL and starting line. Ordinary/generator/async generated bodies resolve and hit URL breakpoints, and async-generator source is published honestly even though its execution surface remains separately limited. Evidence: 10/10 debugger cases, the focused C-constructor case, and the 117/117 real C/C++ ABI gate pass without leaks.
04461bf completes JavaScript module graph discovery: every successful entry/dependency parse registers under its canonical host path before linking, graph-local cache hits do not duplicate scripts, exact sources are retrievable, and URL breakpoints pause in both dependency and entry module environments. Focused debugger matrix: 11/11 pass, zero leaks.
8ee36dc completes the origin lifecycle/evidence matrix: dynamic stepping and caught exception locations, two-session scriptParsed delivery, last-session teardown, stable reattachment, explicit detach, updated 20-command/8-event evidence, API/inspector documentation, and README presentation. Final focused gates: 11/11 debugger tests, 5/5 inspector tests, 4/4 VM production cases, dedicated dynamic-history and C-generated-function cases, and the 117/117 real C/C++ ABI host gate all pass with zero leaks.
Completed on main through 8ee36dc. Worker targets remain #156 and are intentionally not conflated with script-origin completion.
Parent: #139
Extend debugger script discovery and execution control beyond top-level scripts registered while Debugger is already enabled, so every supported code origin is represented honestly in the inspector.
Acceptance:
Debugger.enable, including functions already compiled/warmed before attachment.Debugger.scriptParsedidentities and exact retrievable source for direct/indirecteval, modules, and supportedFunction/AsyncFunction/GeneratorFunctionconstructors.This is deliberately separate from #153/#154: those issues supply execution control and paused-state inspection for scripts registered while debugging; this issue expands the registered origins and closes the pre-attachment tier gap.
Progress:
4f3d8f4 moves script identity/source history to the context. Every C-API evaluation receives a stable ID before attachment, Debugger.enable publishes retained scripts in order, exact source/start offsets remain retrievable, and destroying/recreating all sessions preserves IDs. Statement locations are retained with the historical AST for the warmed-function instrumentation slice next.
Focused debugger gate: 7/7 pass, zero leaks.
4410be2 makes all bytecode/suspendable chunks retain latent source checkpoints while a null hook keeps normal execution inactive. Debugger attachment withholds native entry and activates historical chunks without recompiling or changing upvalue layout. Ordinary VM activations now publish named live locals; evaluateOnCallFrame mutations synchronize back to real slots before resume. A function warmed for 10,000 calls before attachment is breakpointed, stepped, mutated, and resumed with the changed result. Focused evidence: 8/8 debugger tests and 4/4 VM production cases pass with zero leaks.
0fb2155 adds the engine-level dynamic-script registration bridge and completes direct/indirect eval discovery: successful parses get independent IDs, trailing sourceURL directives are honored, fallback URLs distinguish direct from indirect eval, repeated identical bytes get fresh IDs, URL breakpoints resolve for every instance, and source is retrievable. Script-parsed callbacks use deferred teardown guards. Focused evidence: 9/9 debugger and 5/5 inspector lifecycle tests pass with zero leaks.
afddbe4 registers Function, GeneratorFunction, AsyncFunction, and AsyncGeneratorFunction canonical sources before object creation. Inline sourceURL directives define JS-constructor URLs; JSObjectMakeFunction preserves its explicit URL and starting line. Ordinary/generator/async generated bodies resolve and hit URL breakpoints, and async-generator source is published honestly even though its execution surface remains separately limited. Evidence: 10/10 debugger cases, the focused C-constructor case, and the 117/117 real C/C++ ABI gate pass without leaks.
04461bf completes JavaScript module graph discovery: every successful entry/dependency parse registers under its canonical host path before linking, graph-local cache hits do not duplicate scripts, exact sources are retrievable, and URL breakpoints pause in both dependency and entry module environments. Focused debugger matrix: 11/11 pass, zero leaks.
8ee36dc completes the origin lifecycle/evidence matrix: dynamic stepping and caught exception locations, two-session scriptParsed delivery, last-session teardown, stable reattachment, explicit detach, updated 20-command/8-event evidence, API/inspector documentation, and README presentation. Final focused gates: 11/11 debugger tests, 5/5 inspector tests, 4/4 VM production cases, dedicated dynamic-history and C-generated-function cases, and the 117/117 real C/C++ ABI host gate all pass with zero leaks.
Completed on main through 8ee36dc. Worker targets remain #156 and are intentionally not conflated with script-origin completion.