crates_v0.147.0
oxc-project/oxccrates_v0.147.0Aug 24, 2026by github-actions[bot]
AI Summary
This release focuses on minifier optimizations, specifically folding switch statements, and significant performance improvements in the codegen package by removing redundant parameters and initializing mappings eagerly.
Key Highlights
- Minifier: Fold switch statements where parent is not a block
- Codegen: Optimized sourcemap writing by removing `node` params and eager initialization of `mapNames`
- Parser: Track irregular line terminators in trivia
New Features
- Minifier: Fold switch stmt whose parent is not block stmt
Full Release Notes
### 🚀 Features - b6e9e5e minifier: Fold switch stmt whose parent is not block stmt (#25403) (Armano) ### 🐛 Bug Fixes - 8db1053 codegen: Require sourcemap for example (#26047) (camc314) - 8a9bdbd estree: Include decorators in `FormalParameterRest ` spans (#26021) (camc314) - 6f0c7cf minifier: Avoid merging `if` to `for` in sloppy mode when containing function declaration (#25638) (sapphi-red) - 2cde1f6 rust: Address nightly deprecations (#25998) (Boshen) - 6c5ad1b codegen: Only add mapping names for `PrivateIdentifier`s which have changed (#25958) (overlookmotel) - 2dad1e0 parser: Track irregular line terminators in trivia (#25947) (camc314) - 58ba651 minifier: Avoid merging `if` to `for` when the body contains a function declaration (#25637) (sapphi-red) - a185ac3 codegen: Print `#` before private identifier in TS signature key (#25938) (overlookmotel) - af82a07 minifier: Keep unary `+` when the other operand has side effects (#25645) (Kotaro Chikuba) ### ⚡ Performance - 20711f4 packages/codegen: Remove `node` param from `write` and `markMap` functions in sourcemap builds (#25989) (overlookmotel) - 29a7749 packages/codegen: Pass `start` and `end` to `write` and `mark` functions (#25986) (overlookmotel) - 8ae741b packages/codegen: Replace `write` calls with `writeIdent` (#25984) (overlookmotel) - a78ed30 packages/codegen: Remove `last` param from `writeWithMapNamed` (#25983) (overlookmotel) - 53f6270 packages/codegen: Eagerly initialize `mapNames` (#25979) (overlookmotel) - 5b43c60 packages/codegen: Split recording mappings into multiple functions (#25978) (overlookmotel) - cc947b5 packages/codegen: Reduce property lookups (#25977) (overlookmotel) - c22a9cc packages/codegen: Combine condition checks (#25976) (overlookmotel) - 215a6a5 packages/codegen: Add functions for writing/marking unnamed mappings (#25975) (overlookmotel) - fe444cc codegen: Avoid allocations for single comment anchors (#25598) (camc314) - a0aee81 minifier: Do not rebuild expression when substituting void to null (#25964) (Armano) - 1004439 packages/codegen: Merge `mark` and `write` calls in `printImportAttributes` (#25972) (overlookmotel) - 94c8a34 packages/codegen: Remove `node` param from `printString` and `printNonNegativeFloat` (#25971) (overlookmotel) - 7e2b4b3 packages/codegen: `printNonNegativeFloat` write mapping directly (#25968) (overlookmotel) - f09c8ab minifier: Avoid creation of unnecessary conditional expressions (#25931) (Armano) - 53ff080 packages/codegen: Remove `lastWasPostfixClose` (#25888) (overlookmotel) ### 📚 Documentation - 07de646 packages/codegen: Fix JSDoc comments on `write*` methods (#25966) (overlookmotel) - 3b09c04 packages/codegen: Clarify comment (#25959) (overlookmotel)