Parent #465; related #823. Reproduced on pushed e24c4fa: function NewTarget() {}; NewTarget.prototype = 1n; Object.getPrototypeOf(Reflect.construct(TypeError, [], NewTarget)) !== TypeError.prototype. Node 24.18.0 passes the correct identity assertion; the local forced-tier witness fails in the tree walker. ctorRealmIntrinsicProto rejects the internal Symbol representation but accepts the internal BigInt cell as a JavaScript Object. GetPrototypeFromConstructor must distinguish ECMAScript objects from all internal primitive cells and select the exact newTarget realm intrinsic for primitive prototypes. Audit related prototype selectors, preserve one observable prototype get and abrupt completion, and add bound/proxy/cross-realm and forced-tier regression coverage. No mutable-name fallback or coercion workaround.
Parent #465; related #823. Reproduced on pushed e24c4fa: function NewTarget() {}; NewTarget.prototype = 1n; Object.getPrototypeOf(Reflect.construct(TypeError, [], NewTarget)) !== TypeError.prototype. Node 24.18.0 passes the correct identity assertion; the local forced-tier witness fails in the tree walker. ctorRealmIntrinsicProto rejects the internal Symbol representation but accepts the internal BigInt cell as a JavaScript Object. GetPrototypeFromConstructor must distinguish ECMAScript objects from all internal primitive cells and select the exact newTarget realm intrinsic for primitive prototypes. Audit related prototype selectors, preserve one observable prototype get and abrupt completion, and add bound/proxy/cross-realm and forced-tier regression coverage. No mutable-name fallback or coercion workaround.