Skip to content

ABI: implement private ordinary-object creation and primitive unboxing #176

Description

@chrisbbreuer

Parents: #163, #164
Depends on: #172, #175

Implement the shared ordinary-object construction and JSON-style boxed-primitive unwrapping boundary.

Acceptance:

  • Export exact JSC__JSValue__createEmptyObject, JSC__JSValue__createEmptyObjectWithNullPrototype, and JSC__JSValue__unwrapBoxedPrimitive signatures.
  • Create fresh ordinary objects with the selected realm Object.prototype; treat initial capacity strictly as an unobservable allocation hint.
  • Create fresh objects with a true null prototype.
  • Unwrap Number, String, Boolean, and BigInt wrapper objects to exact JSC64 primitives, including int32 canonicalization and negative-zero preservation.
  • Leave non-wrapper objects and already-primitive values unchanged.
  • Reject invalid/foreign-context inputs safely.
  • Cover exact signatures, prototype identity, freshness, wrapper kinds, and numeric boundaries in the compile-link-runtime fixture.
  • Update both inventories and README/API documentation without changing public/extension counts.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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