Skip to content

ABI: implement private VM pending exceptions #180

Description

@chrisbbreuer

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

Implement the shared private VM pending-exception and exception-cell foundation.

Acceptance:

  • Export exact JSC__JSGlobalObject__vm, JSC__VM__throwError, JSGlobalObject__hasException, JSGlobalObject__clearException, and JSGlobalObject__tryTakeException signatures.
  • Export exact JSC__Exception__asJSValue, JSC__JSValue__isException, JSC__JSValue__toError_, and JSC__JSValue__isAnyError signatures.
  • Model one pending exception per shared VM/context group, observable and clearable from every realm.
  • Represent pending exceptions as distinct owned cells with stable identity while preserving arbitrary thrown values, including primitives.
  • Preserve the first pending exception and reject mismatched VM/global/value ownership safely.
  • Make toError_ return ErrorInstance values unchanged and unwrap Exception cells to their thrown values.
  • Cover exact signatures, sibling-realm visibility, cell identity, primitive/Error throws, take/clear lifecycle, and invalid inputs in the compile-link-runtime fixture.
  • Keep termination-specific clearing and stack-trace extraction pending until their separate contracts are implemented.
  • 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