🐛 Bug Fixes
- 0f26de6 ecmascript: Resolve identifier value type via tracked constants (#22234) (Alexander Lichter)
- c27a8cf minifier: Normalize
{ x: x }shorthand so adjacent-if merge is idempotent (#22401) (Dunqing) - e431a0e parser: Break extends clause loop on fatal error (#22517) (Boshen)
- e9ec7c6 minifier: Fold optional chains by base nullishness (#22236) (Alexander Lichter)
- e6090e7 transformer: Keep enum IIFE when a non-inlinable value reference remains (#22501) (Dunqing)
- 931b7d6 transformer: Inline const enum members through type-cast wrappers (#22500) (Dunqing)
- b9615b2 codegen: Preserve string quotes in require() calls during minification (#22475) (zennnnnnn11)
- c73c159 transformer/async-to-generator: Reparent parameter initializer scopes (#22507) (camc314)
- ecfd3ca transformer/async-to-generator: Move only parameter bindings (#22503) (camc314)
- 3ce3431 transformer/explicit-resource-managment: Preserve shadowed for-head block (#22451) (camc314)
⚡ Performance
- ce92c6c semantic:
#[inline]Scoping::get_binding(#22414) (Dunqing) - 98be95c regular_expression: Track regex flags via bitflags (#22427) (Boshen)
- dbbc059 jsdoc: Skip should_attach_jsdoc when no remaining comments (#22409) (Boshen)
- 217d7d8 minifier: Index
SymbolValuesbySymbolId(#22441) (Dunqing) - d782b78 minifier: Use BitSet for LiveUsageCollector live references (#22425) (Boshen)