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.
Parent
Scope
Implement the three shared pinned Symbol bridges:
JSC__JSValue__symbolForJSC__JSValue__symbolKeyForJSC__JSValue__getSymbolDescriptionAcceptance criteria
symbolFordecodes every tagged ZigString representation, uses the VM-shared GlobalSymbolRegistry without observable userland calls, and preserves registry identity across sibling realms while isolating foreign VMs.getSymbolDescriptionreturns 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.symbolKeyForreturns true and writes the exact registry key only for registry-backed Symbols; local and well-known Symbols return false and leave output untouched.