💥 BREAKING CHANGES
- 7a76cd3 estree: [BREAKING] Make whether to include TS fields a runtime option (#23574) (overlookmotel)
- e7b6b68 estree: [BREAKING]
ESTreeconfig use methods not consts (#23573) (overlookmotel)
🚀 Features
- 556cc6d data_structures: Add
CodeBuffer::as_strmethod (#23571) (overlookmotel) - 38c4b06 parser: Add friendly error for adjacent JSX elements (#23378) (sapphi-red)
- 53509a8 minifier: Treeshake pure typed arrays and Set/Map array literals (#23469) (Dunqing)
- 09762d9 minifier: Inline const value for read-only vars (#22593) (Dunqing)
🐛 Bug Fixes
- 20375f9 react_compiler: Keep imports referenced only by a computed key (#23586) (Boshen)
- 31bfd9b minifier: Keep Object introspection calls on a possible Proxy (#23483) (Dunqing)
- 837a395 parser: Treat a line comment after ':' as leading, not trailing (#23515) (Dunqing)
- e409fe0 minifier: Keep
new Map/WeakSet/WeakMapwith a string argument (#23470) (Dunqing) - ae02b4e ci/parser: Use
minimalfor vitest reporter (#23457) (camc314)
⚡ Performance
- cf24329 mangler: Compile slot sort once instead of per CAPACITY (#23577) (Boshen)
- 4058a6a parser: Reduce code bloat from verify_modifiers monomorphization (#23576) (Boshen)
- 053b0c1 estree: Remove pointless
mem::take(#23572) (overlookmotel) - dfb52b6 transformer: Pre-size statement vecs in TS enum & namespace lowering (#23516) (Yunfei He)
- 970e09a minifier: Compute template-literal inline checks in a single pass (#23467) (Yunfei He)
- 3170c0e semantic,mangler,minifier: Fix
Semantic::statsnode count and reuse stats in mangler builds (#23352) (Boshen) - d1fa6e0 minifier: Evaluate ternary branches once in minimize_conditional_expression (#23479) (Yunfei He)
- 3fa8051 transformer: Pre-size JSX props vec to attribute count (#23466) (Yunfei He)
- 488b382 react_compiler: Borrow binding names in prefilter instead of allocating (#23471) (Yunfei He)
- bcb3894 minifier: Incremental scoping refresh, delete LiveUsageCollector (#23197) (Dunqing)