Parents: #475, #460 Depends on: #575, #576
Problem
Intl.ListFormat, Intl.RelativeTimeFormat, and Intl.DurationFormat all expose structural part arrays, but the representative benchmark source has no dedicated rows for these services. Their implementations also allocate fresh string cells for closed type metadata on every returned part, the same ownership cost removed from NumberFormat and DateTimeFormat in #575/#576.
Optimizing without symmetric controls would make allocation and throughput claims unauditable.
Scope
- Add deterministic, dependency-free
formatToPartsrows for ListFormat, RelativeTimeFormat, and DurationFormat with formatter/input fixture construction outside the timed boundary. - Consume complete type/value/unit structure in stable checksums and compare identical source/input bytes with system JSC.
- Attribute exact-parent allocations, GC cells, collections, locks, and timing before changing the engine.
- Represent each service's closed part-type metadata natively and emit process-lifetime immutable string cells.
- Keep formatted values and DurationFormat
unitfields independently owned; preserve ordinary mutable result arrays/objects and callback-observable semantics.
Acceptance
- All three rows have stable, non-zero checksums and meet the harness timing protocol.
- Checksums match system JSC, or any pre-existing semantic delta is isolated and separately tracked before optimization.
- Exact-parent attribution demonstrates fewer structural metadata allocations without increasing collections or property locks.
- Focused ListFormat/RelativeTimeFormat/DurationFormat normal, OOM, moving-GC, bounded-heap, no-GIL, and TSan coverage pass.
- Relevant Intl402 subtrees and full sharded units have no regressions.
Exclusions
No Promise, microtask, Worker, queue, or job-lifecycle changes; those remain separately owned.