Parent #465; related #823. Reproduced on pushed e24c4fa, independently of the current Error-intrinsic candidate. Two local forced-tier witnesses fail in the tree walker: replacing globalThis.Array changes the prototype of an array literal; Reflect.construct(AggregateError, [[]], a foreign NewTarget) creates errors with the foreign NewTarget Array prototype instead of the active AggregateError constructor realm. Node 24.18.0 passes both exact witnesses. These are not inferred from an instanceof name heuristic. The existing arrayProto and functionRealmIntrinsicProto Array paths consult public mutable bindings. Acceptance: retain private realm-owned Array identity with tracing/relocation and existing synchronization; use the active constructor realm for CreateArrayFromList while preserving GetPrototypeFromConstructor for the outer AggregateError instance; cover replacement/deletion/shadowing, cross-realm newTarget, callbacks and moving GC in both tiers. Do not copy a public global into a late cache or special-case source strings. Separate from native job/queue lifecycle work.
Parent #465; related #823. Reproduced on pushed e24c4fa, independently of the current Error-intrinsic candidate. Two local forced-tier witnesses fail in the tree walker: replacing globalThis.Array changes the prototype of an array literal; Reflect.construct(AggregateError, [[]], a foreign NewTarget) creates errors with the foreign NewTarget Array prototype instead of the active AggregateError constructor realm. Node 24.18.0 passes both exact witnesses. These are not inferred from an instanceof name heuristic. The existing arrayProto and functionRealmIntrinsicProto Array paths consult public mutable bindings. Acceptance: retain private realm-owned Array identity with tracing/relocation and existing synchronization; use the active constructor realm for CreateArrayFromList while preserving GetPrototypeFromConstructor for the outer AggregateError instance; cover replacement/deletion/shadowing, cross-realm newTarget, callbacks and moving GC in both tiers. Do not copy a public global into a late cache or special-case source strings. Separate from native job/queue lifecycle work.