Parent: #62
Evidence
Current main after the 512-byte Object slab still trails system JSC on the fair direct object_churn row: 241.143 ms versus 127.080 ms median-of-process-medians across seven alternating process pairs with three samples per process, a 1.898x remaining elapsed gap. Checksum 1030552128 matched in every sample.
A symbolized 1 ms profile of the current ReleaseFast runner attributes 96 exclusive samples to Value.toNumber and 83 to Value.toInt32. The guarded fixed-object allocation loop currently rebuilds Value.num(counter) for selector/stamp conversion and routes the already-numeric checksum through generic coercion on every optimized iteration.
Scope
- require and retain an exact non-negative integer counter/increment representation in the structural fixed-object allocation loop;
- compute bitwise selector and stamp values from the guarded integer representation without transient Value boxing;
- add an already-number fast ToInt32 path for checksum values when the exact conversion is provably equivalent;
- fall back before mutation for unsupported counter representations and retain the full numeric conversion for checksum edge cases;
- preserve exact VM step/checkpoint accounting, OOM state publication, GC roots/barriers, and all observable object/array guards.
Acceptance criteria
- Focused tests prove the fast path stays active for exact counters and falls back for fractional/negative/out-of-range counters.
- Differential execution preserves results and exact bytecode-step counts.
- Existing accessor/proxy/indexed-store fallback coverage remains green.
- Order-balanced exact-parent A/B shows a repeatable improvement with stable checksums.
- Full validation is batched with the retained implementation.
- Retained commits reference this issue.