Skip to content

ABI: implement rooted native value containers #212

Description

@chrisbbreuer

Parent: #140
Profile parents: #163 and #164

Implement the five shared native rooted-value container operations:

  • MarkedArgumentBuffer__run
  • MarkedArgumentBuffer__append
  • JSCommonJSExtensions__appendFunction
  • JSCommonJSExtensions__setFunction
  • JSCommonJSExtensions__swapRemove

Acceptance:

  • Construct the opaque marked argument buffer only for the synchronous callback extent.
  • Root every appended cell across precise collection during the callback; accept immediates and reject cross-VM cells safely.
  • Remove all temporary roots on normal return and preserve cleanup under callback re-entry.
  • Keep the CommonJS function registry per selected realm with exact append index, set replacement, and swap-remove return semantics.
  • Trace registered functions until removal and release removed values without disturbing sibling realms.
  • Make invalid indices, null callbacks, allocation failure, and pending exceptions deterministic and failure-atomic.
  • Add focused GC tests and the real 5-symbol consumer fixture, regenerate both inventories, and update README/profile docs.

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