Parent: #140
Profiles: #163, #164
Roadmap: #134
Pinned consumer: oven-sh/bun@4982b91e3702094330f3be3883354c52b8c01323
Pinned implementation reference: src/jsc/bindings/SQLClient.cpp:441-503
Implement the private JavaScriptCore structure pipeline used by Bun/Home SQL row materialization. The declared JSC__createStructure symbol must return a VM-affine opaque structure cell, not an ordinary JavaScript object or a compatibility no-op. Include the paired private consumers from the same pinned source so the returned descriptor can construct and populate real realm objects.
Acceptance:
- Mirror the pinned
ExternColumnIdentifierABI exactly (tag, natural padding,u32index / 24-byteBunStringunion; 32-byte size and 8-byte alignment on 64-bit). - Implement
JSC__createStructure: named-column decoding and order, duplicate/index accounting, exactJSFinalObject::maxInlineCapacitycutoff, owner/VM write-barrier semantics, and an opaque VM-affine result. - Implement the paired
JSC__createEmptyObjectWithStructureconsumer with%Object.prototype%, shared engine shapes, all declared named slots initialized, and foreign/stale/invalid structure rejection. - Implement the paired
JSC__putDirectOffsetconsumer with bounds checks, owner-aware GC barriers, exact slot writes, and invalid/foreign object/value rejection. - Cover named/indexed/duplicate mixtures, repeated named columns, cutoff behavior, UTF-16/BunString input, null owner, sibling realm acceptance, foreign VM rejection, precise GC relocation, and teardown lifetime.
- Add independently compiled private-ABI fixture coverage plus focused engine tests in Debug, ReleaseSafe, and TSan.
- Promote
JSC__createStructurein both pinned inventories with zero unclassified entries and update ABI docs/README without changing benchmark or conformance scores. - Reconcile exact
mainCI before closure.