# Oxc crates_v0.147.0 — oxc crates_v0.147.0 - Product: Oxc (https://whatsnew.fyi/product/oxc) - Vendor: Oxc - Date: 2026-08-24 - Version: crates_v0.147.0 - Original notes: https://github.com/oxc-project/oxc/releases/tag/crates_v0.147.0 - Permalink: https://whatsnew.fyi/product/oxc/releases/crates-v0.147.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — Minifier now folds switch statements whose parent is not a block statement - **fixed** — Codegen now requires sourcemap for example - **fixed** — Estree now includes decorators in FormalParameterRest spans - **fixed** — Minifier now avoids merging if to for in sloppy mode when containing function declaration - **fixed** — Address nightly deprecations in Rust code - **fixed** — Codegen now only adds mapping names for PrivateIdentifiers which have changed - **fixed** — Parser now tracks irregular line terminators in trivia - **fixed** — Minifier now avoids merging if to for when the body contains a function declaration - **fixed** — Codegen now prints # before private identifier in TS signature key - **fixed** — Minifier now keeps unary + when the other operand has side effects - **changed** — Codegen performance improved by removing node param from write and markMap functions in sourcemap builds - **changed** — Codegen performance improved by passing start and end to write and mark functions - **changed** — Codegen performance improved by replacing write calls with writeIdent - **changed** — Codegen performance improved by removing last param from writeWithMapNamed - **changed** — Codegen performance improved by eagerly initializing mapNames - **changed** — Codegen performance improved by splitting recording mappings into multiple functions - **changed** — Codegen performance improved by reducing property lookups - **changed** — Minifier now avoids allocations for single comment anchors - **changed** — Minifier now does not rebuild expression when substituting void to null ###### 🚀 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)