Commit 6ef1731
committed
fix(native): add Object.defineProperty accessor dispatch post-pass to native orchestrator
The native orchestrator's fast path (tryNativeOrchestrator) skips
runPipelineStages entirely on success, so buildDefinePropertyPostPass never
ran for native full builds -- this.method() calls inside getter/setter
functions registered via Object.defineProperty produced no edge at all when
the accessor target was a typed class instance (the object-literal variant
already worked via Rust's own composite-pts mechanism).
Adds runPostNativeDefinePropertyDispatch, a hybrid WASM re-parse post-pass
mirroring the existing runPostNativeThisDispatch for this/super dispatch:
selects JS/TS candidate files (full build: all known files; incremental:
changedFiles), narrows them with a cheap text pre-filter for the literal
"defineProperty" substring to avoid a full-project WASM re-parse, then
resolves targets via the same resolveDefinePropertyAccessorTarget already
shared by the WASM engine and the incremental watch path. Wired into
runPostNativePasses alongside this/super dispatch and CHA expansion.
Extracts the caller-by-line lookup and the DB-backed CallNodeLookup
construction (previously inlined only in runPostNativeThisDispatch) into
shared helpers now used by both hybrid post-passes.
Impact: 12 functions changed, 11 affected1 parent fdedff8 commit 6ef1731
4 files changed
Lines changed: 405 additions & 39 deletions
File tree
- src
- domain/graph/builder/stages
- tests/integration
0 commit comments