Parent: #498 Related: #1047, #1048, #1049, #1050, #493
Measured problem
An executed VM witness confirms canonical primitive String indices such as "0" produce correct Array and mapped-arguments reads/stores while all four relevant quick-path counters remain unchanged. These keys are already property keys, so they have no observable ToPropertyKey hook, yet they still enter full generic indexed dispatch.
Scope
- Recognize canonical primitive String array indices alongside primitive Number indices for guarded Array and arguments-object read/store paths.
- Preserve mapped arguments aliasing, dense/holey/sparse Array behavior, descriptors, accessors, Proxies/revocation, restrictions, and no-GIL synchronization.
- Reject non-canonical forms such as
"01","-0", fractions, negatives, and4294967295from Array-index shortcuts. - Keep Symbol and object key coercion generic and one-shot.
- Keep TypedArray canonical-numeric-string semantics separate;
"-0", out-of-bounds, detachment, and numeric-string rules differ from ordinary Arrays. - Update the source-derived quickening inventory and generated architecture page.
Acceptance
- The pre-change zero-hit witness records positive Array and arguments read/store hits with identical Node results.
- Dense, holey, sparse, mapped/unmapped arguments, descriptors, accessors, Proxy, canonical/non-canonical strings, Symbol, and object keys are pinned.
- TypedArray string-key counters remain unchanged and Integer-Indexed semantics remain exact.
- Focused normal and unsuppressed TSan tests pass.
- Quickening inventory, benchmark-validator, docs-manifest, and offline-link gates pass.