Parent: #62
Problem
The guarded fixed-shape object-allocation loop keeps its numeric counter and total in native locals, but still boxes and writes both values back to Frame.slots after every fused iteration. A quick batch executes at most the remaining checkpoint budget and has no safepoint after a successful replacement; the frame only needs the completed values when the batch exits. Allocation and restricted-receiver error paths must continue to expose the exact last completed state.
Proposed change
- keep
counterandtotalin native locals throughout the quick batch - write their boxed frame values once after at least one completed iteration
- flush the last completed values before propagating allocation or restricted-receiver errors
- preserve bytecode step accounting, observable side exits, overflow fallback, and checksum behavior
Acceptance
- focused quick object-loop tests cover isolated/shared parity, checkpoint batching, guarded fallback, and observable error paths
- exact checksum remains
1030552128 - exact-parent alternating
object_churnA/B shows a repeatable improvement - full unit and benchmark-harness validation is batched only if retained
- revert and close as not planned if neutral or slower