Downstream: zig-utils/zig-js#365 Related: #37
The generation benchmark must compare complete workloads even when automatic or cooperative safepoints perform multiple minor collections. The existing last_minor_* fields are exact for one cycle but cannot reconstruct cumulative survival, reclamation, and promotion across a run.
Acceptance:
- Accumulate young-input, survived, reclaimed, and promoted bytes across successful minor collections.
- Expose the totals through the race-safe
Heap.accounting()snapshot. - Keep full collection and nursery enable/disable semantics explicit; totals remain historical counters rather than live-state gauges.
- Add deterministic multi-cycle tests and document the telemetry.
- Integrate the counters into zig-js #365 benchmark rows.