Parent: #496 Related: #493, #480, #545
Problem
Oversized binary/octal/hexadecimal BigInt literals convert to canonical decimal text through a little-endian byte-per-decimal-digit ArrayList. Every source digit multiplies and carries across the growing decimal byte vector, while list growth and a second final output allocation amplify allocator and cache pressure. Property names and literal widths are attacker-controlled, so this conversion needs an explicit bounded representation and measured growth behavior.
Scope
- Commit parser-only 1K/2K/4K hexadecimal BigInt rows before changing conversion.
- Construct source and an independent exact decimal oracle before warmup; validate every output byte in every scored parse.
- Convert through bounded base-1e9 limbs with chunked radix ingestion and one exact canonical output allocation.
- Preserve binary/octal/hexadecimal values, case-insensitivity, separators, raw token text, offsets, small-value fast paths, leading zeros, arena ownership, and OOM atomicity.
No-workaround rules
- No preconverted scored source, oracle construction in the timed boundary, hash-only/output-prefix validation, reduced width, cache recognition, lazy conversion, arbitrary literal-length limit, third-party runtime BigInt, or different logical work between revisions.
- Do not modify stacks, queues, jobs, Promise/microtask behavior, or Thread/Worker lifecycle.
Acceptance
- Benchmark-first 1K/2K/4K rows freeze exact input/output identities, checksums, warmup, and parser-only timed boundaries.
- Exact-parent evidence reports wall, retired instructions, logical allocation requests/bytes, RSS, dispersion, and identical full-output checksums.
- Scratch capacity is calculated before conversion, bounded by input width, and output uses one exact allocation without byte-list growth/remap.
- Binary/octal/hex, upper/lowercase, separated/unseparated, leading-zero, small/large value, raw text, offsets, and OOM witnesses pass.
- Growth evidence remains visible at 1K/2K/4K; no claim hides the algorithmic class or moves conversion outside the boundary.
- Focused lexer/frontend, full units, BigInt test262, and TSan pass with no regressions.
- Raw evidence and report are checked in before any public performance claim.