Problem
The #1002 stable-key path still takes property_lock once to snapshot each simple object key list and again for every live slot read. In the frozen representative JSON invocation, pre-#1004 attribution recorded 3,589,937 property-lock acquisitions (3,570,645 named-snapshot acquisitions) while 1,983,390 of 1,984,837 shape transitions were cache hits. The process is a single-owner, non-concurrent Context, yet its JSON stable-key reads pay the same mutex path required by no-GIL and concurrent-GC realms.
Change boundary
Add an enable-only process gate for published named-property snapshot reads, activated by the existing enableParallelSync boundary before concurrent GC or parallel JS can observe an object. Stable JSON key/slot snapshots may skip property_lock only while that gate is false. Parallel/concurrent contexts retain the exact lock and revalidation path. Do not weaken writers, accessor reader gates, GC barriers, or any generic property lookup.
Completion
Pin unit evidence that the single-owner path records zero named snapshot locks and the enabled path records the expected locks. Preserve live mutation/accessor fallback semantics, JSON Test262 and required VM/tree agreement, OOM/deep/cycle/GC, and no-GIL TSan. Compare current-main attribution counters and seven exact-parent alternating pairs on both frozen JSON rows plus array-heavy and object-only controls with exact checksums. Land only on a measured non-regression.