Skip to content

ABI: implement private arrays and indexed access #181

Description

@chrisbbreuer

Parents: #163, #164
Depends on: #180

Implement the shared private array construction and indexed-access boundary.

Acceptance:

  • Export exact JSC__JSValue__createEmptyArray, JSC__JSValue__putIndex, JSC__JSValue__push, JSC__JSValue__getDirectIndex, and JSC__JSObject__getIndex signatures.
  • Create fresh selected-realm arrays with exact logical length and holes, including zero and maximum u32 lengths.
  • Perform direct index writes and pushes without invoking inherited setters, while preserving sparse gaps and array length.
  • Return the empty JSC64 value for absent direct indices and preserve present undefined as a distinct non-empty value.
  • Make observable indexed reads perform ToObject/prototype/getter semantics and publish thrown values through ABI: implement private VM pending exceptions #180's VM pending-exception cell.
  • Publish RangeError/OOM failures through the same empty-result iff pending-exception invariant.
  • Reject invalid, foreign-context, and non-array mutation inputs safely.
  • Cover exact signatures, holes, sparse writes, maximum lengths, inherited getters/setters, thrown getters, and sibling-realm exception visibility 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