Parents: #475, #479 Related: #460, #461, #493, #605
Problem
IntlListFormatData stores type/style as closed native enums and IntlRelativeTimeFormatData stores style/numeric as closed native enums. Both resolvedOptions() paths currently turn those enum values back into bytes and allocate fresh managed StringCells on every call.
Neither service has a dedicated resolved-options performance row. This issue freezes one combined reflection workload before changing the runtime.
Scope
- Add immutable formatter matrices spanning all ListFormat type/style and RelativeTimeFormat style/numeric cases.
- Add a representative row that creates fresh resolved-options objects for both services per operation and consumes every present field, key count, spelling byte, formatter identity, loop index, and lane contribution.
- Project the four closed enums through exact immutable static StringCells.
- Keep locale and RelativeTimeFormat numberingSystem dynamically owned and managed.
- Preserve ECMA-402 field order/presence, brand checks, constructor option observation, OOM atomicity, moving/parallel GC, and formatting output.
No-workaround rules
- No cached/reused result objects, skipped unread fields, source/name recognition, precomputed scored results, or global interning of dynamic strings.
- Do not touch Promise, microtask, Worker, Thread lifecycle, stacks, queues, or jobs code.
Acceptance
- Benchmark identities, fields, checksum, warmup, jobs, and timed boundary land before runtime changes.
- Every enum spelling is the exact unmanaged static cell; dynamic locale/numbering strings remain managed.
- Exact allocation reduction is four enum cells per scored pair with identical execution, Shape requests, and checksum.
- Exact test262 ListFormat and RelativeTimeFormat coverage has zero flips/regressions.
- Focused normal/TSan, bounded/moving/parallel GC, OOM, and full sharded units pass.
- Paired timing is reported without a broad claim from the focused row.
Security boundary
Options and call frequency are attacker-controlled. Only constructor-validated closed enum state may become static; dynamic locale/numbering bytes retain their existing ownership and GC contract.