Parent: #473
Measured problem
After #1007, JSON.parse constructs unpublished ordinary objects through Object.setOwnUnpublished. Repeated records reuse immutable Shape transitions, but each write still walks lookupState(name) before probing the transition cache. For a cached addition edge, that parent-chain proof is redundant: the immutable edge already proves the key is absent/deleted and names the resulting slot.
Executed exact-parent ReleaseFast/real-GC screen against pushed f3639ef2 (three alternating pairs, exact frozen checksums):
representative_json: 0.9883x retired instructions;representative_json_variant: 0.9822x retired instructions;- depth-4096 stringify control: 0.9993x instructions;
- shallow-4096 stringify control: 1.0006x instructions.
The ordinary unique-shape fanout path is source-identical to the parent and was checked separately because its randomized shape topology makes three samples noisy. Across 21 alternating pairs it measured 1.0013x median retired instructions (1.25% / 1.35% RSD), 0.9929x median wall time, and exact checksums.
Scope
- Add a Shape write plan that reuses a cached immutable addition/deletion edge before parent-chain lookup.
- Admit it only from the unpublished/private object-write path used by JSON.parse.
- Preserve the existing public/generic
setOwnUnlockedimplementation byte-for-byte. - Preserve immediate delete/re-add undo, stable slots, property order, indexed-property flags, allocation failure behavior, and the locked racing-publication recheck.
Acceptance
- Seven alternating exact-parent pairs retain the JSON gains with exact checksums and neutral stringify/fanout controls.
- JSON test262 is 165/165 and the same 165 files agree in required-VM mode.
- Focused Shape/value tests cover cached additions, cached deletions, and existing-value writes.
- Real-GC OOM/deep-input tests pass.
- Value-layer and no-GIL JSON.parse TSan witnesses pass.
- Commit lands directly on
mainwith evidence linked here and in #473.