Remap TypeScript runtime stacks with source maps - #146
Draft
noise64 wants to merge 17 commits into
Draft
Conversation
This comment has been minimized.
This comment has been minimized.
noise64
changed the base branch from
gol-418-single-cjs-ts-transform
to
main
September 4, 2026 17:59
…ack-source-maps-final # Conflicts: # tests/node_compat/report.md
…ack-source-maps-final # Conflicts: # tests/node_compat/report.md
…ack-source-maps-current # Conflicts: # crates/wasm-rquickjs/skeleton/src/builtin/execution.rs # crates/wasm-rquickjs/skeleton/src/internal/module_loading.rs
…ack-source-maps-current
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
sourceMappingURLparser for CJS andvm.Script, preserving trailing lines while rejecting string, template, regex, block-comment, and trailing-garbage decoysutil.getCallSites()while preserving the native Error constructors, subclass relationships,constructorOpt, low stack limits, and guestprepareStackTracedescriptorsError.captureStackTrace()captures native CallSites immediately and selects the public hook lazily on first.stackaccesscompileCjs, bounds map retention, and synchronizes Rust/JavaScript inline-map emitterssourceMap: truesuppresses a separatesourceURLtoString()is only[object CallSite], preserving named, anonymous, and native-frame formattingutil.inspectonly when the current stack is the exact cached native prepared result, matching laternamechanges without rewriting manually assigned stacksutil.inspectconstructor inference, which could be spoofed by nearby source text and could not recover names from stored-variable calls; the V8 hidden-class-only case is retained as an explicit known gapNode compatibility
3180/4388primary CI-enforced and3180/5750full publicmainAt local merged candidate SHA
7906591aa44fda65ba5c315fa5eb794849947692, formatting, DTS generation/verification,cargo build --all-targets, and workspacecargo clippy --all-targets -- -Dwarningspass. Sixteen focused runtime cases pass in both P2 and P3, covering the original module-resolution backtrace crash, V8 stack behavior, source maps, and TypeScript constructor/descriptor stability; final V8-only reruns pass 13/13 on both paths. The three exact Node.js 22.14 cases that failed the earlier CI run pass 3/3 in both P2 and P3. The subsequent V8 hidden-class-onlytest-util-inspect.js#block_73case is now an explicit known gap after rejecting a source-shaped workaround; the remaining family passes on P2 and P3 (47 passed, 52 ignored, 0 failed per path). The combined compatibility report and all five CI report-contract checks pass. Seven targeted #143 P3 stream-lifecycle cases pass after integrating currentmainthrough a normal merge. The final current-name/manual-stack regression passes on both P2 and P3. Standalone skeleton Clippy still reports pre-existing warnings inmodule_loading.rs, outside this correction.