Skip to content

ABI: implement private C-API call and proxy extensions #371

Description

@chrisbbreuer

Parent: #134
Related: #140, #163, #164

Implement the two shared private extensions declared by pinned Home/Bun javascript_core_c_api.zig.

Acceptance:

  • Export JSObjectCallAsFunctionReturnValueHoldingAPILock with exact C signature, recursive VM API-lock coverage, default-global this, ordered argument conversion, and normal encoded return values.
  • Convert a thrown call into an encoded exception cell returned to the caller without leaking it into the VM pending-exception slot.
  • Return empty for null, non-callable, foreign-VM, or otherwise invalid values without publishing partial results.
  • Export JSObjectGetProxyTarget as a pure trap-free direct target projection; return null for non-proxies, revoked proxies, non-value private handles, and null inputs. As in JSC, dereferencing a handle after its entire context group is destroyed is outside the C API lifetime contract.
  • Preserve same-VM identity/lifetime and avoid invoking proxy traps.
  • Add focused engine and compiled Home/Bun consumer evidence in Debug and ReleaseSafe.
  • Refresh inventories/docs and parent issue evidence.

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