Parent: #473
Executed evidence
On exact main 200b87f, the pinned ReleaseFast representative_json workload completed at 2,200 jobs with checksum 324,952,086 using real zig-gc 0285ef8. Its scored invocation performs 198,000 stringify/parse rounds. Attribution records 3,168,011 named-property lock acquisitions and 1,188,000 shape-transition requests during that invocation.
Each parse creates two fresh ordinary objects with five total data properties. JsonParser.parseObject currently calls Object.setOwn once per property, so 990,000 lock/unlock transactions protect objects that have not yet escaped and cannot be reached by another JavaScript thread. Global Shape transition synchronization and GC write barriers remain separately required. The anti-specialization variant reproduces the same counts.
These are executed attribution counters, not a wall-time or JavaScriptCore performance claim.
Required change
- Publish parsed properties through an explicitly private-object construction path that retains the GC barrier and synchronized global Shape transition machinery but does not acquire the object property lock for every field.
- Preserve CreateDataProperty semantics, duplicate-key overwrite/order, proto as an own data property, escaped-NUL storage keys, reviver records/source metadata and exact abrupt/OOM behavior.
- Do not weaken synchronization for any object after publication or add a parser-specific semantic shortcut.
Definition of done
- Exact-parent production attribution accounts for the removed private-object lock transactions on base and anti-specialization rows with frozen checksums unchanged.
- Focused duplicate-key, proto, NUL-key, reviver, deep-input and every-allocation-failure tests pass.
- test/built-ins/JSON remains 165/165; tree/required-VM agreement remains exact.
- Real-GC moving collection, no-GIL and unsuppressed TSan probes prove publication safety.
- Seven-sample direct-JSC evidence is published only from a clean benchmark state; controls must show no hidden regression.