Skip to content

Runtime: reject BigInt primitives as constructor prototype objects #825

Description

@chrisbbreuer

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions