Parent: #62 Related: #97, #49, #44
Evidence
The clean 86d0c5b3 publication has the only direct JSC loss in object_churn (120.334 ms vs 118.117 ms) and a larger warmed eight-context gap (465.616 ms vs 200.717 ms). Sampling the exact workload shows the specialized fixed-shape loop dominating worker execution. Its no-GIL branch allocates up to 17 objects per checkpoint-bounded batch through allocObjectBatch, but the private single-mutator branch still calls allocObject for each iteration even though it has the same no-call, fixed-shape, dense-array guards and exact checkpoint boundary.
Scope
- Reuse the existing checkpoint-bounded object batch in private contexts, not just the synchronized shared branch.
- Preserve exact bytecode step counts, safepoint visits, literal shapes/prototypes, indexed replacement, displaced reads, barriers, OOM prefix behavior, and fallback guards.
- Add focused coverage proving private GC-backed quick loops consume the batch path while arena mode and guarded fallback remain correct.
- Measure frozen-binary, order-balanced A/B for direct and warmed eight-context
object_churn; check shared mode for neutrality.
Acceptance
- Beat JSC in the fair direct
object_churnrow and materially improve warmed independent contexts without regressing shared mode. - Preserve exact checksums and pass focused VM/GC/OOM tests plus the final batched normal/TSan gates.
- Publish clean full-matrix evidence and refresh README/docs only after all gates pass.