Parent: #786
Related: #477, #493
Audit finding
Interpreter.pushExecRoot currently discards gc_execs.append allocation errors. A failed root-list growth can therefore run bytecode without registering its precise roots. Separately, buildActivation installs callee state and performs argument/rest/parameter/debugger allocations before execLoop or runDriver registers its Exec. Saved caller state and newly prepared frame slots need precise ownership during that provisional window too.
This is a pre-existing publication/lifecycle issue found while fixing the stale saved caller copies in #786; it is not solved by moving those copies into Exec alone.
Scope and acceptance
Coordinate any activation-driver lifecycle changes with the actor handling stack/queue/job-native work; this issue must not change Promise, Worker, or iterator behavior.
Parent: #786
Related: #477, #493
Audit finding
Interpreter.pushExecRoot currently discards gc_execs.append allocation errors. A failed root-list growth can therefore run bytecode without registering its precise roots. Separately, buildActivation installs callee state and performs argument/rest/parameter/debugger allocations before execLoop or runDriver registers its Exec. Saved caller state and newly prepared frame slots need precise ownership during that provisional window too.
This is a pre-existing publication/lifecycle issue found while fixing the stale saved caller copies in #786; it is not solved by moving those copies into Exec alone.
Scope and acceptance
Coordinate any activation-driver lifecycle changes with the actor handling stack/queue/job-native work; this issue must not change Promise, Worker, or iterator behavior.