Skip to content

ABI: implement exact Symbol registry and description bridges #205

Description

@chrisbbreuer

Parent

Scope

Implement the three shared pinned Symbol bridges:

  • JSC__JSValue__symbolFor
  • JSC__JSValue__symbolKeyFor
  • JSC__JSValue__getSymbolDescription

Acceptance criteria

  • symbolFor decodes every tagged ZigString representation, uses the VM-shared GlobalSymbolRegistry without observable userland calls, and preserves registry identity across sibling realms while isolating foreign VMs.
  • getSymbolDescription returns the exact UID/description as a stable borrowed ZigString view, writes the canonical non-null empty view for an empty description, and leaves output untouched for non-Symbol inputs.
  • symbolKeyFor returns true and writes the exact registry key only for registry-backed Symbols; local and well-known Symbols return false and leave output untouched.
  • Latin-1, UTF-8, UTF-16, astral/lone-surrogate, empty, local, registered, and well-known cases are covered alongside mutation-safe input copying, sibling/foreign VM behavior, invalid input, allocation failure, and first pending-exception preservation.
  • Home/Bun inventories, README/API evidence, and all parent trackers are regenerated from checked-in results.

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