You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Implement the shared pinned Home/Bun private class and display-name projection cluster:
JSC__JSValue__getClassInfoName
JSC__JSValue__getClassName
JSC__JSValue__getNameProperty
JSC__JSValue__getName
Parent: #134
Profile umbrella: #140
Home profile: #163
Bun profile: #164
Acceptance criteria
getClassInfoName exposes the exact static class-info name and length only for valid owned cells, with a stable borrowed lifetime and untouched outputs on failure.
getNameProperty performs one observable @@toStringTag read, accepts only a non-empty string tag, then applies the pinned JavaScript/internal-function name fallbacks.
getClassName rejects non-objects, delegates empty/Function raw class names to the name-property path, and otherwise preserves calculated-class-name before raw-class fallback.
getName uses calculated display names first, then the pinned @@toStringTag fallback, returning the exact owned BunString representation.
Accessors, proxies, Symbols/non-string tags, anonymous/named/native/bound/class functions, built-ins, ordinary objects, and spoofed user properties have focused coverage.
Same-VM sibling realms, foreign cells, invalid encodings, abrupt completion, output initialization, ownership, and first-pending-exception behavior are deterministic.
The combined private ABI consumer fixture links and exercises all four exports.
Home/Bun inventories, ABI documentation, parent trackers, and README counts are updated from committed evidence.
Focused tests and the relevant batched ABI audits pass before closure.
Pinned reference
Bun revision 4982b91e, src/jsc/bindings/bindings.cpp, functions JSC__JSValue__getClassInfoName, JSC__JSValue__getClassName, JSC__JSValue__getNameProperty, and JSC__JSValue__getName.
Completion evidence
Code: f9c14bc9 — four exact projections, stable class-info metadata, calculated names, observable/VM-inquiry tag paths, borrowed ZigString views, and owned Latin-1/UTF-16 BunString output.
Documentation: 5732c29b — README, ABI, API, and Home integration evidence/counts.
Goal
Implement the shared pinned Home/Bun private class and display-name projection cluster:
JSC__JSValue__getClassInfoNameJSC__JSValue__getClassNameJSC__JSValue__getNamePropertyJSC__JSValue__getNameParent: #134
Profile umbrella: #140
Home profile: #163
Bun profile: #164
Acceptance criteria
getClassInfoNameexposes the exact static class-info name and length only for valid owned cells, with a stable borrowed lifetime and untouched outputs on failure.getNamePropertyperforms one observable@@toStringTagread, accepts only a non-empty string tag, then applies the pinned JavaScript/internal-function name fallbacks.getClassNamerejects non-objects, delegates empty/Functionraw class names to the name-property path, and otherwise preserves calculated-class-name before raw-class fallback.getNameuses calculated display names first, then the pinned@@toStringTagfallback, returning the exact ownedBunStringrepresentation.Pinned reference
Bun revision
4982b91e,src/jsc/bindings/bindings.cpp, functionsJSC__JSValue__getClassInfoName,JSC__JSValue__getClassName,JSC__JSValue__getNameProperty, andJSC__JSValue__getName.Completion evidence
f9c14bc9— four exact projections, stable class-info metadata, calculated names, observable/VM-inquiry tag paths, borrowed ZigString views, and owned Latin-1/UTF-16 BunString output.5732c29b— README, ABI, API, and Home integration evidence/counts.36a617b3; this ABI-only slice did not regenerate performance scores.