crates_v0.141.0

oxc-project/oxccrates_v0.141.0Jul 21, 2026by github-actions[bot]

AI Summary

Core library release featuring breaking changes to AST structures, splitting `MetaProperty` and moving `IdentBuildHasher`. Includes significant React compiler enhancements and minification optimizations.

Key Highlights

  • Breaking: `MetaProperty` split into `ImportMeta` and `NewTarget`.
  • Breaking: `IdentBuildHasher` moved to `oxc_str` crate.
  • React Compiler: Added context notes for strict assignments.
  • Minifier: Improved logic for arithmetic folding and unreachable code removal.

Breaking Changes

  • Move `IdentBuildHasher` to `oxc_str` crate
  • Split `MetaProperty` into `ImportMeta` and `NewTarget`

New Features

  • Allocator: Add `Vec::from_raw_parts_in`
  • Semantic: Add context notes for strict assignments
  • Data structures: Add `implements!` macro
  • Data structures: Add `const_str_eq` function
  • Semantic: Add context notes for reserved keyword diagnostic

Full Release Notes

### 💥 BREAKING CHANGES

- 5293431 str: [**BREAKING**] Move `IdentBuildHasher` to `oxc_str` crate (#24717) (overlookmotel)
- 54cc121 ast: [**BREAKING**] Split `MetaProperty` into `ImportMeta` and `NewTarget` (#24557) (camc314)

### 🚀 Features

- 87823d0 minifier: Merge combined assign expression in conditional expression (#24707) (sapphi-red)
- 03a54c9 minifier: Merge assign expression against member expression in conditional expression (#24706) (sapphi-red)
- effd3c8 allocator: Add `Vec::from_raw_parts_in` (#24732) (overlookmotel)
- ddacf61 semantic: Add context notes for strict assignments (#24728) (camc314)
- 7e9b84a data_structures: Add `implements!` macro (#24721) (overlookmotel)
- 39e141b data_structures: Add `const_str_eq` function (#24720) (overlookmotel)
- cc3d17f semantic: Add context notes for reserved keyword diagnostic (#24715) (camc314)
- 4c71560 parser: More friendly error for spread element in dynamic imports (#24705) (sapphi-red)
- 7b045cd minfier: Drop last break from last switch case (#24673) (Armano)
- 7d3c178 minifier: Remove unreachable recursive functions (#24125) (Dunqing)
- 94f99b3 ast: Allow `NONE` to be passed to AST builder methods where `Option<ArenaVec>` is expected (#24629) (overlookmotel)
- 77230c5 ast: Accept arrays for `ArenaVec` params of AST builder methods (#24621) (overlookmotel)
- f08b152 allocator: Implement `FromIn` for array to `Vec` conversion (#24620) (overlookmotel)
- 2338c13 track-memory-allocations: Track heap deallocs, alloc bytes, and peak growth (#24619) (Boshen)
- 7aa4739 syntax,transformer: Move JSX entity decoder to `oxc_syntax` (#24617) (camc314)
- 2b097c4 str: Export `Str` as `ArenaStr` (#24604) (overlookmotel)
- 3acf4c1 minifier: Expand switch optimiation to remove empty cases (#24520) (Armano)
- 129b759 parser: Improve diagnostics for unparenthesized LHS on exponential expr (#24569) (camc314)
- 4d0c601 minifier: Fold arithmetic over undefined and null operands (#24485) (Dunqing)
- 91541dd minifier: Drop empty switch statements  (#24527) (Armano)
- d05224d ast_visit: Generate VisitJs visitor that skips TypeScript type-space (#24499) (Boshen)
- 3d22307 parser: Add `ParseOptions::enable_ident_hashes` (#24491) (Boshen)

### 🐛 Bug Fixes

- 61e02bf minifier: Avoid reordering this before super (#24755) (Dunqing)
- 79e6d77 minifier: Preserve RegExp feature detection (#24712) (Dunqing)
- 47ddedf semantic: Allow arguments in ambient declarations (#24758) (camc314)
- 9f3e300 react_compiler: Preserve aliasing diagnostic locations (#24757) (Boshen)
- 4b81f4d react_compiler: Honor default suppressions (#24747) (Boshen)
- 6cc4a34 codegen: Wrap negative BigInt literal base of `**` in parentheses (#23621) (Jerry Zhao)
- d85276c minifier: Avoid incorrect logical assignment transformation when base object may be mutated (#24718) (sapphi-red)
- 99b1dc4 isolated-declarations: Separate static accessors (#24716) (camc314)
- 76ec104 semantic: Resolve import-equals namespaces (#22696) (camc314)
- 0ffa88e str: Enable `hashbrown` feature `inline-more` (#24719) (overlookmotel)
- 0e9b460 isolated-declarations: Normalize accessor keys (#24690) (Cameron)
- 64c2241 minifier: Align class heritage removal with assumptions (#24533) (Dunqing)
- 48b59f4 parser: Span ambient generator diagnostics (#24711) (camc314)
- e750a82 ecmascript: Fix false negative for may_have_side_effects on dynamic property access (#24709) (sapphi-red)
- f145d73 minifier: Guard reordered identifier reads (#24698) (Dunqing)
- a2ef382 isolated-declarations: Reject `window.Symbol`  as global symbol reference (#24689) (camc314)
- b1bcf72 minifier: Invalidate facts for redeclared bindings (#24658) (Dunqing)
- 921b834 minifier: Don't treat a conditionally-assigned var as write-once (#24650) (Dunqing)
- 061af1f minifier: Avoid stale pure function summaries (#24636) (Dunqing)
- 40c2f43 allocator: `Vec::from_array_in` do not allocate zero-length array (#24628) (overlookmotel)
- 70994ae codegen: Preserve comments before expression operands (#24510) (Dunqing)
- 7b4baff parser: Reject new import member access (#23459) (camc314)
- 128b385 minifier: Clippy warning with no-debug-assertions (#24547) (camc314)
- 8421feb parser: Use first `as` span for imported name (#24537) (leaysgur)
- c517aa0 parser: Reject invalid accessor assertions (#24504) (camc314)

### ⚡ Performance

- 3fe5c87 react_compiler: Transform reactive blocks in place (#24703) (Boshen)
- 2e24c7e allocator: Speed up `CloneIn` for `Vec` and `Box<[T]>` (#24733) (overlookmotel)
- 884d9eb parser: Pre-size cover-grammar assignment target buffers (#24683) (Boshen)
- d3f07a0 diagnostics: Box OxcDiagnosticInner to reduce binary size (#24665) (Boshen)
- bcc9de0 parser: Defer diagnostic creation until parse exit (#24663) (Boshen)
- c35d8ab allocator: Mark `ReplaceWith` panic path cold (#24515) (camc314)
- ba65790 semantic, allocator: Branchless `clone_in` for semantic IDs (#24564) (overlookmotel)
- 747feec parser: Build AST nodes with the AST builder instead of cloning (#24540) (Boshen)
- ba35a0d react_compiler: Use IndexVec for dense id-keyed maps (#24549) (Boshen)
- b685062 react_compiler: Keep small hot-path collections inline (#24514) (Marius Schulz)
- a149e95 transformer: Outline rare expression exits (#24512) (camc314)
- 7808a6e react_compiler: Make aliasing effects cheap to intern and clone (#24506) (Marius Schulz)
- 3a36f2a react_compiler: Store AbstractValue reasons as a u16 bitmask (#24480) (Boshen)
- 1c96753 react_compiler: Use FxHashMap for the lookup-only aliasing node map (#24490) (Boshen)

### 📚 Documentation

- cef20b5 napi/parser: Remove erroneous comment (#24730) (overlookmotel)