crates_v0.143.0
oxc-project/oxccrates_v0.143.0Aug 6, 2026by camc314
AI Summary
Significant AST changes including the introduction of `ExportDeclaration` and `ArrowFunctionBody`, along with allocator changes to make `Box` `Send` + `Sync`.
Key Highlights
- BREAKING: Introduce `ExportDeclaration`, `ExportFromDeclaration`
- BREAKING: Introduce `ArrowFunctionBody` enum
- Allocator: Make `Box` `Send` + `Sync`
- Minifier: Fold safe integer exponentiation
Breaking Changes
- semantic: [**BREAKING**] Return borrowed JSDoc so the parse cache works
- allocator: [**BREAKING**] Remove `ArenaBox::dangling` method
- ast: [**BREAKING**] Store single parameter in `TSIndexSignature::parameter`
- ast: [**BREAKING**] Change `TSIndexSignatureName::name` to `Ident`
- ast: [**BREAKING**] Introduce `ExportDeclaration`, `ExportFromDeclaration`
- ast: [**BREAKING**] Introduce `ArrowFunctionBody` enum
- ast: [**BREAKING**] Remove conversion to `Box` from AST builder methods
New Features
- minifier: Fold safe integer exponentiation
- ast_tools: Generate minifier scope collector
- napi: Add React Compiler transform binding
Full Release Notes
### 💥 BREAKING CHANGES - 4120da0 semantic: [**BREAKING**] Return borrowed JSDoc so the parse cache works (#25186) (Connor Shea) - f0a41c8 allocator: [**BREAKING**] Remove `ArenaBox::dangling` method (#25236) (overlookmotel) - 067da8c ast: [**BREAKING**] Store single parameter in `TSIndexSignature::parameter` (#25154) (camc314) - a0c7788 ast: [**BREAKING**] Change `TSIndexSignatureName::name` to `Ident` (#25150) (camc314) - 1bdedd1 ast: [**BREAKING**] Introduce `ExportDeclaration`, `ExportFromDeclaration` (#25095) (camc314) - c917f20 ast: [**BREAKING**] Introduce `ArrowFunctionBody` enum (#24987) (camc314) - 7e1199c ast: [**BREAKING**] Remove conversion to `Box` from AST builder methods (#25038) (overlookmotel) ### 🚀 Features - 3c8312e allocator: Make `Box` `Send` + `Sync` when the type it contains is (#25242) (overlookmotel) - cb5bc08 ast: Derive `GetSpan` for `Comment` (#25147) (leaysgur) - 8541e18 ast_tools: Generate minifier scope collector (#25088) (camc314) - 5acdae2 ecmascript: Skip transparent TS expressions (#25072) (camc314) - 85d0f4d napi: Add React Compiler transform binding (#24934) (Boshen) - 70d6ece minifier: Fold safe integer exponentiation (#25009) (Dunqing) - 73fc747 minifier: Enable termination statement optimization for do while (#24921) (Armano) - 5eadfdb minifier: Fold safe integer division and remainder (#24981) (Dunqing) ### 🐛 Bug Fixes - 6c9ee14 minifier: Preserve if-chain idempotency and correct side effects when alternate should not be moved (#25041) (Armano) - 8a47ff3 ecmascript: Do not treat lone-surrogate strings as constants (#25084) (Dunqing) - 468b970 isolated-declarations: Strip re-export attributes (#25090) (camc314) - a70035d parser: Report export imports in namespaces (#25086) (camc314) - 5d8ccf5 react_compiler: Preserve nonfatal diagnostics (#25066) (Boshen) - d349e4a react_compiler: Match eslint suppression gating (#25068) (Boshen) - 0dc16ba react_compiler: Track catch block declarations (#25067) (Boshen) - e6734a5 minifier: Fold typeof comparisons with known object strings (#25017) (Dunqing) - 3a9d5a5 minifier: Keep `typeof foo == ['object']` as-is (#24941) (sapphi-red) - 10ec276 ast: Custom AST builder methods take `IntoIn<ArenaBox>` where child method does (#25033) (overlookmotel) - fbe8d31 minifier: Respect targets when folding RegExp source (#24790) (Dunqing) ### ⚡ Performance - fb402b0 minifier: Stop re-deriving printed numeric spellings (#25103) (Dunqing) - 7251e52 react_compiler: Avoid large types on stack (#25037) (overlookmotel) - e07718f isolated_declarations: Avoid large types on stack (#25036) (overlookmotel) - 9fb1e3e transformer: Avoid large types on stack (#25035) (overlookmotel) - 8b80f8b parser: Avoid large types on stack (#25034) (overlookmotel) ### 📚 Documentation - 2ea0aa9 ast: Correct grammar in AST builder methods doc comments (#25173) (overlookmotel)