🚀 Features
- e857b0c napi/minify: Expose legalComments option and result (#20370) (Boshen)
- 661132d parser: More friendly error messages for rest assignment target and rest binding element (#22719) (sapphi-red)
- ee659b6 transformer/legacy-decorator: Add
strictNullChecksoption for nullable-union design:type (#22266) (Kyle Cannon)
🐛 Bug Fixes
- e1d064e transformer/class-properties: Reparent lifted private method helpers (#22716) (Cameron)
- 4ac0fca minifier: Preserve
0 && (module.exports = { ... })cjs-module-lexer hint (#22729) (Dunqing) - 40ff611 minifier: Mark peephole loop changed when dropping dead-after-throw statement (#22722) (Dunqing)
- 2f7b210 codegen: Emit pife-arrow/function leading comments inside the wrap (#22720) (Dunqing)
- e184f74 parser: Improve invalid
importproperty access diagnostic (#22693) (camc314) - 7baed9c transformer/private-method: Clear inherited strict flags (#22508) (camc314)
- a9ad27e parser: Keep annotation comments leading without preceding newline (#22711) (Dunqing)
- 9ea4d64 minifier: Re-evaluate pure/no-side-effects flags after peephole inlining (#22595) (Dunqing)
- 07afbb6 minifier: Drop empty-body IIFE wrapper when called with arguments (#22589) (Dunqing)
- fa7c463 semantic: Correct TS enum member symbol spans (#22689) (camc314)
- 26b9396 semantic: Resolve parameter decorators outside parameter scope (#22623) (camc314)
- b284045 parser: Switch to module goal eagerly on
export(#22684) (Boshen) - dfa931d semantic: Propagate unresolved auto-increment enum value instead of defaulting to 0 (#22646) (Dunqing)
- 69a6ba6 transformer/legacy-decorator: Emit Array for ReadonlyArray in decorator metadata (#22265) (Kyle Cannon)
- e421ef0 transformer/legacy-decorator: Return runtime binding for design:type (#22640) (Dunqing)
- d61e1d7 codegen: Preserve verbatim text of pure/no-side-effects comments (#22525) (Dunqing)
- 702b14e minifier: Preserve IIFE structure in DCE-only mode (#22547) (Dunqing)
- 917da24 parser: Apply PURE comment through member-access chains (#22566) (Dunqing)
- a069b1c codegen: Preserve quotes for cjs-module-lexer equality strings (#22551) (Dunqing)
⚡ Performance
- 2f623b0 semantic: Skip unresolved checks for re-exports (#22660) (camc314)
- 0d9553d semantic: Early-exit
check_object_expressionfor objects with <2 properties (#22668) (Dunqing) - d721ad9 semantic: Use direct grandparent lookup for TS type parameters (#22658) (camc314)
- 0aff288 semantic: Reorder numeric literal strict mode checks (#22657) (camc314)
- 4d5ddb1 semantic: Reorder binding identifier checks (#22656) (camc314)
- e32acd8 semantic: Reorder identifier ambient binding check (#22653) (camc314)
- 09fe178 semantic: Reorder ident reference strict mode check (#22652) (camc314)
- 4b6add2 semantic: Avoid duplicate ident clone for bindings (#22663) (camc314)
- 82f9662 parser: Check identifier kind before context flag (#22662) (camc314)
- d7cd951 parser: Fast path identifier parsing and inline operator helpers (#22650) (Boshen)
- 7b84314 semantic: Use direct byte access for numeric leading-zero check (#22642) (camc314)
- 0345a31 semantic: Pre-size class elements hash map (#22618) (camc314)
- 04d3065 minifier: Drop per-call buffers in try_fold_concat (#22596) (Dunqing)
- 4f289f1 semantic: Resolve_references_for_current_scope without a temp Vec (#22599) (Dunqing)
- e862c15 semantic: Avoid heap alloc for var hoist scope ids (#22603) (Dunqing)
- 8ff8674 semantic: Early return if
excessis0inStats::increase_by(#22616) (camc314) - 7a4120e semantic: Pre-reserve unresolved_references using Stats::references (#22580) (Dunqing)