Parent: #498 Related: #1049, #1048, #493
Measured problem
The executed #1049 VM witness confirms a valid distant Array assignment such as values[1000000] = 7 uses no indexed store shortcut. Sparse array indices live as named own data properties after dense growth declines them, but repeated updates still format/coerce the Number key and run the full prototype/receiver [[Set]] algorithm even when the exact own descriptor is already writable data.
The same conservative has_indexed_property guard also rejects updates to present dense elements whenever an unrelated sparse named index exists.
Scope
- Add a synchronized exact-own-data replacement primitive that never creates a property or bypasses an accessor/non-writable descriptor.
- Use it for primitive-Number updates to existing sparse Array data properties with bounded stack key storage.
- Let present dense own elements remain quick when an unrelated sparse named index exists.
- Preserve holes, inherited setters/non-writable data, accessors, Proxies/revocation, invalid keys, Array length behavior, restrictions, GC barriers, and no-GIL synchronization.
- Keep sparse property creation/growth generic; no source/workload recognition or property-result cache.
- Update the source-derived quickening inventory and generated architecture page.
Acceptance
- The pre-change zero-hit sparse store witness records positive hits with identical Node results.
- Existing sparse data, dense-with-unrelated-sparse data, holes, inherited setters, accessors, non-writable data, Proxy stores, invalid keys, and strict failures are pinned.
- Restriction ownership plus focused normal and unsuppressed TSan tests pass.
- Quickening inventory, benchmark-validator, docs-manifest, and offline-link gates pass.
- Sparse property creation and prototype-observable misses remain explicitly generic.