Parent: #46 Related native tier: #52
Evidence
At 6a1c844c, direct single-context properties measure 221.784 ms median versus current JSC at 100.416 ms (80 jobs, 10 samples, checksum 120785000). A fresh 4,035-sample profile attributes roughly 94% of top frames to vm.runChunk dispatch/accounting; get/set IC bodies are a small minority. The numeric JIT rejects the chunk because object bytecodes remain unsupported.
Goal
Add general, semantics-preserving quickening for straight-line numeric assignments to monomorphic own data properties, reducing dispatch and operand-stack traffic without recognizing benchmark names, source text, function names, or particular property names.
Required work
- Detect a bounded bytecode trace beginning with a local object assignment base and ending in
set_prop+ discarded assignment result. - Accept only side-effect-free fast inputs: direct local/constant Numbers and monomorphic plain-object own-data IC hits.
- Evaluate supported numeric bytecodes without mutating the VM operand stack, then perform exactly one barriered slot store.
- Fall back before mutation on shape/IC/type/accessor/attribute/parallel-mode misses.
- Preserve exact bytecode step budgets and 1,024-step checkpoint/termination/GC boundaries; do not fuse across a boundary.
- Add focused hit/miss, accessor/prototype/type, max-step+1, checkpoint, GC-barrier, and no-GIL fallback tests.
- Capture order-balanced A/B evidence and retain unchanged checksums.
Acceptance
- Focused semantic/accounting tests pass.
- Property direct-single throughput improves materially with stable A/B evidence.
- No regression in arithmetic or unsupported property semantics.
- Results and commits are linked here and in #46.