Parents: #493, #496 Related: #461, #616, #618, #619, #761
Problem
Parser declaration membership is securely seeded by #761, but bytecode admission and lowering rebuild attacker-controlled identifier sets in deterministic std.StringHashMapUnmanaged tables. Frame-slot names, lexical scopes, mapped-parameter deduplication, shadow/TDZ inventories, loop-head captures, repeated-body captures, and deferred-class frame-name membership therefore remain targetable with collision sets computed against Zig's process-default string hash. A source that passes the parser can still force pathological compiler lookup/insertion cost.
Scope
- Freeze production parse + admission/compile growth rows for ordinary and adversarial identifier families before changing the compiler.
- Give one compilation-owned secure hash context to every identifier-content map used by program, plain-function, generator, and async admission/lowering.
- Share that context across nested compiler/prepass structures within the same compilation; do not request entropy per map or per function.
- Keep zero/one-name common paths allocation- and entropy-minimal where existing specialized representations already do so.
- Preserve exact identifier bytes, scope/shadowing/TDZ decisions, slot numbering, capture classification, unsupported-reason identity, structural checksums, and OOM rollback.
- Make entropy failure explicit and catchable before publishing a partially compiled Chunk.
No-workaround rules
- No predictable fallback seed, source rewriting, identifier blacklist, heuristic width cutoff, skipped compiler pass, forced tree-walker fallback presented as hardening, process-global mutable seed, or per-table entropy calls.
- No stacks, queues, jobs-runtime, Promise, microtask, Worker-lifecycle, or Map/Set iterator changes.
Acceptance
- Benchmark-first ordinary/adversarial rows freeze equal source work, admission identity, structural checksum, allocation replay, and 1K/2K/4K growth.
- Every compiler string-membership table uses the one compilation-owned secure context; no deterministic default content map remains on a source-controlled identifier path.
- Tests prove distinct seeds preserve semantics/layout, known fixed-seed collision families cannot target production placement, and entropy/OOM failure leaves no published partial Chunk.
- Plain/generator/async/program compilation, nested functions, lexical shadowing, TDZ, mapped parameters, loop captures, and deferred classes preserve exact behavior.
- Focused compiler/frontend, full units, relevant Test262, OOM, and sanitizer gates pass with exact before -> after accounting.
- Exact-parent growth evidence and methodology are checked in; parent/sibling issues are cross-linked without claiming noisy wall time.