mirror of
https://github.com/oxc-project/oxc.git
synced 2026-09-14 19:36:11 +08:00
3bc5563d30
JavaScript strings can contain lone UTF-16 surrogates that Rust str cannot represent. The existing marker encoding separates the value from its metadata and lets consumers mistake marker text for the real value. Add arena-backed JSStr and JSStrBuilder using canonical WTF-8, then migrate StringLiteral::value and its required consumers. Preserve normal UTF-8 fast paths and validate concatenation against UTF-16 semantics. AI-assisted by OpenAI Codex.
Coverage tests
Tools are tested against test262, babel and TypeScript for conformance.
Clone the test repositories beforehand:
just submodules
Development
# full run
cargo coverage
cargo coverage js # for test262
cargo coverage babel # for babel
cargo coverage ts # for typescript
# run in watch
cargo watch -x 'coverage js'
# filter for a file path
cargo watch -x 'coverage js --filter filter-file-path'
# find crash scene by turning off rayon and print out the test cases in serial
cargo coverage -- --debug
# Run after submodules are updated
UPDATE_SNAPSHOT=1 just c