Parent: #459 Depends on: #460, #465, #469, #473
Goal
Make collections and data-heavy built-ins—including Map/Set/Weak collections, Date, Intl, and Temporal—competitive on representative workloads while staying fully owned and table-driven.
Scope
- Profile and optimize Map/Set hashing, lookup/update/delete/iteration, weak-key processing, growth/shrink, tombstones, and no-GIL synchronization.
- Add fast builtin calls/iteration only behind exact intrinsic/version guards; preserve subclassing, species, monkey-patching, iterators, and callbacks.
- Optimize Date parsing/arithmetic/formatting and Temporal calendar/time-zone arithmetic without changing edge semantics.
- Improve Intl locale resolution, option parsing, formatter construction/reuse, number/date/plural/display/list/relative formatting, segmentation, and collation using generated owned tables.
- Share immutable generated tables safely across realms/process lifetime while keeping mutable formatter/cache state bounded and correctly owned.
- Measure construction latency, steady calls, bulk processing, allocations, retained memory, and concurrent use.
No-workaround rules
- No ICU/system-JSC dependency, locale omission presented as performance, English-only shortcut, unbounded global cache, or skipped user-observable builtin hook.
- Generated data must come from checked-in/pinned inputs through owned generators; generated Zig tables are never hand-edited.
Acceptance
- #460 contains representative small/bulk/cold/warm/Unicode/time-zone/DST/adversarial and 1/8-lane rows.
- Full test262 plus focused Intl/Temporal/weak/finalization, OOM, GC movement, no-GIL, TSan, and fuzz gates pass.
- Profiles attribute hashing/table lookup/allocation/formatting/lock costs before each retained change.
- Cache/table memory is bounded, lifecycle-tested, and included in RSS evidence.
- Every accepted directly comparable JSC row meets the #459 gate.
Foundation
Generated CLDR/Unicode/Intl tables and semantic implementations already exist in src/*_data.zig, generator scripts, and src/interpreter.zig; edit generators, never generated tables.