💥 BREAKING CHANGES
- 5293431 str: [BREAKING] Move
IdentBuildHashertooxc_strcrate (#24717) (overlookmotel) - 54cc121 ast: [BREAKING] Split
MetaPropertyintoImportMetaandNewTarget(#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_eqfunction (#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
NONEto be passed to AST builder methods whereOption<ArenaVec>is expected (#24629) (overlookmotel) - 77230c5 ast: Accept arrays for
ArenaVecparams of AST builder methods (#24621) (overlookmotel) - f08b152 allocator: Implement
FromInfor array toVecconversion (#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
StrasArenaStr(#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
hashbrownfeatureinline-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.Symbolas 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_indo 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
asspan 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
CloneInforVecandBox<[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
ReplaceWithpanic path cold (#24515) (camc314) - ba65790 semantic, allocator: Branchless
clone_infor 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)