💥 BREAKING CHANGES
- ba9c750 span: [BREAKING] Use
ModuleKind::CommonJSfor.cjsand.ctsfile extensions (#18117) (Boshen) - 9135b0b ast: [BREAKING] Move scope from
TSEnumDeclarationtoTSEnumBody(#18058) (Boshen)
🚀 Features
- 8a1cbbd parser: Add syntax errors for constructor declarations (#18220) (Boshen)
- e2221e6 semantic: Store
scope_idinReference(#18053) (Dunqing) - 6e8fa80 napi/parser, napi/transform: Accept
sourceType: "commonjs"(#18197) (overlookmotel) - 175b73a parser: Add ts error 1257 for
TSTupleElement(#18146) (Sysix) - fa2ffe2 parser: Add ts error 1266 for
TSTupleElement(#18145) (Sysix) - acf1aba parser: Add ts error 1265 for
TSTupleElement(#18144) (Sysix) - 830b757 regular_expression: Add Unicode 17.0 script properties (#18140) (Boshen)
- 92e27b4 parser: Reparse await expressions in unambiguous mode when ESM detected (#18139) (Boshen)
- 66b8c02 parser: Implement unambiguous module parsing for JS/TS files (#18124) (Boshen)
- 08dad63 span: Add
sourceType: 'commonjs'support (#18089) (Boshen) - 3f83ded traverse: Add into_state and into_state_and_scoping methods to ReusableTraverseCtx (#18010) (Cole Leavitt)
- d1016b9 minifier: Do not flip if/else when it would produce longer result (#17556) (Armano)
- 9c6e344 minifier: Prune empty
casebefore trailingdefault(#17994) (Boshen) - 6b29bd1 semantic/example: Add detailed references info (#17938) (camc314)
🐛 Bug Fixes
- 808b7c3 semantic: Resolve qualified names to namespaces, not shadowing type parameters (#17929) (camc314)
- 1b199af semantic: Report TS18019 for abstract modifier with private identifier (#18173) (Boshen)
- 37482eb parser: Respect optional
TSNamedTupleMemberfor ts error 1266 &1257 (#18178) (Sysix) - 2c6966d parser: Correct precedence handling for private-in expression (#18169) (Boshen)
- 38e4b53 minifier: Validate RegExp patterns before marking as pure (#18125) (Boshen)
- 91126a0 parser: Reparse all statements with await identifier in unambiguous mode (#18163) (Boshen)
- c98e5b7 parser: Parse
for (using of = ...)as using declaration (#18142) (Boshen) - 01d7b13 oxc_minifier: Enable sourcemap feature in dev mode (#18131) (Armano)
- fb181cc semantic: Error on
usingat top level in scripts (#18090) (Boshen) - 2aae4fc linter: Fix stack overflow in
no-unreachablerule on large files (#18077) (Boshen) - f69b6da mangler: Reserve names from eval-containing scopes (#18037) (camc314)
- c8f847e minifier: Preserve return value of
@__PURE__IIFE in return statements (#18036) (camc314) - ee353e6 minifier: Skip inlining constant in scopes with eval (#17926) (camc314)
- 7a0ca99 linter/plugins: Use correct ScriptKind for tokens (#17185) (Peter Wagenet)
- 4c16ae7 codegen: Remove spaces around
=in minified type parameter defaults (#17989) (Boshen) - a412103 parser: Improve diagnostics for double
export(#17992) (Boshen) - 06bd17b codegen: Remove unnecessary double parentheses from satisfies expressions (#17986) (Boshen)
- 1874765 codegen: Fix inconsistent multiline EOF comment formatting (#17983) (Boshen)
- 2619c66 codegen: Remove leading whitespace from export statements after comments (#17982) (Boshen)
- 4d9582d semantic: Allow
arguments/evalas binding identifier names and identifier reference names in.d.ts(#17910) (Dunqing)
⚡ Performance
- 91c143f mangler: Remove
frequenciesitems if they are unused (#18183) (Dunqing) - 9af52c6 mangler: Turn off
scope_tree_child_idsforSemanticBuilder(#18122) (Dunqing) - 46cd73d allocator: Add #[cold] annotations to error handling functions (#18181) (Boshen)
- 8da684e allocator: Type-erase RawVec::finish_grow inner function (#18175) (Boshen)
- 837edf6 transformer/typescript: Reduce
scope_id()calls (#18097) (overlookmotel) - 8ee6f80 transformer/tagged-template: Add
#[cold]hint to unlikely path (#18034) (overlookmotel) - 23449e0 transformer/tagged-template-transform: Improve performance (#15834) (Dunqing)