🐛 Bug Fixes
- de6ac92 isolated-declarations: Preserve object accessor mutability (#29039) (camc314)
- 3729ce1 transformer/typescript: Merge exported enums across namespace blocks (#28999) (camc314)
- 7243594 minifier: Preserve throwing ArrayBuffer and URI calls (#29012) (camc314)
- 67ac6be isolated-declarations: Evaluate enum template literal initializers (#28997) (camc314)
- f05b30e isolated-declarations: Infer auto-accessor initializer types (#29038) (camc314)
- 030d410 isolated-declarations: Preserve computed ambient enum members (#29040) (camc314)
- 6303df1 jsdoc: Preserve param tags after unmatched description delimiters (#28923) (Vishal Punjabi)
- 99e67d3 transformer: Preserve static private brands with shadowed class names (#28894) (Dunqing)
- 595f3c2 minifier: Preserve left-hand side effects in instanceof checks (#29011) (camc314)
- a791a5b cfg: Resolve continues through stacked loop labels (#29016) (camc314)
- 9e3b3d1 ecmascript: Reject signs after nondecimal prefixes (#29034) (camc314)
- 43c5273 ecmascript: Round nondecimal strings to numbers once (#29026) (camc314)
- b71234f cfg: Skip labeled contexts for unlabeled jumps (#29001) (camc314)
- fd51bff jsdoc: Handle every line terminators as newline (#28902) (leaysgur)
- c00dc61 codegen: Keep one source map mapping per generated position (#28844) (YT)
- 52f3e3d jsdoc: Do not treat
@wordcontaining/as tag (#28834) (leaysgur) - 0b48483 minifier: Preserve UTF-16 boundaries in empty-search replaceAll folding (#28807) (huuya)
- 1e57a4e codegen: Print infinite numeric literals as
1e400instead ofInfinity(#28812) (Dominic Elm) - 28a44b7 transformer/class-properties: Preserve private accessor assignment receivers (#28790) (Dunqing)
- ea76490 transformer/class-properties: Preserve private method values in assignments (#28788) (Dunqing)
- 8432de6 transformer/class-properties: Apply a compound assignment to a static private field once (#28606) (YT)
- 3dbf140 parser: Treat escaped contextual keywords as names, not modifiers (#28748) (Dominic Elm)
- e3b1bb4 transformer/class-properties: Keep the value of a private accessor assignment (#28716) (YT)
- ae7474e minifier: Keep array concat chain reads before later side effects (#28261) (Dunqing)
- ec327aa semantic: Keep block type bindings separate from hoisted vars (#28601) (YT)
- 3fd78d7 codegen: Preserve names in duplicate source mappings (#26051) (camc314)
⚡ Performance
- 7761a39 codegen: Remove redundant sourcemap buffer shrinks (#28893) (Dunqing)
- bee25de regular_expression: Check only the latest group per name in duplicate prescan (#29083) (Yuji Sugiura)
- 4da1752 codegen: Use SWAR scanning and shared column tables (#28939) (Dunqing)
- cc84126 mangler: Inline candidate checks during slot assignment (#28881) (Dunqing)
- 6611cf9 parser: Specialize quoted string value access (#28965) (Boshen)
- 5038ba6 parser: Avoid repeated await-using lookahead (#28960) (Boshen)
- ecc807b parser: Skip discarded arrow diagnostics (#28940) (Boshen)
- c880368 parser: Fast-path absent TypeScript type lists (#28959) (Boshen)
- dee6cf4 parser: Skip repeated optional call lookahead (#28876) (Boshen)
- a524e17 parser: Reuse successful parenthesized arrow heads (#28862) (Boshen)
- 296b12a parser: Accelerate line comment scanning (#28878) (Boshen)
- c4fc21e parser: Accelerate escaped string scanning (#28907) (Boshen)
- f7726b6 parser: Accelerate regex literal scanning (#28911) (Boshen)
- a8aff38 parser: Scan whitespace in runs (#28953) (Boshen)
- b1c137c parser: Avoid lookahead for TypeScript keyword types (#28954) (Boshen)
- 6a8a2a7 parser: Fast-path plain identifiers (#28955) (Boshen)
- 00deb87 parser: Initialize declaration lists with their first item (#28956) (Boshen)
- 71dd877 parser: Specialize binary operator associativity (#28957) (Boshen)
- 732a8e4 codegen: Skip repeated word scans for sourcemap tails (#28869) (Dunqing)
- 6972243 codegen: Accelerate sourcemap line scanning (#28400) (codspeed)
- 027eb7e parser: Combine async arrow lookahead (#28431) (Boshen)
- 7b933d5 lexer: Directly dispatch common punctuation (#28792) (Boshen)
- 45d86c3 lexer: Combine per-token annotation resets (#28492) (Boshen)
- d497fbf lexer: Match keywords with byte patterns (#28494) (Boshen)
📚 Documentation
- 167e78a oxc-types: Correct TypeScript spelling in README (#29092) (camc314)
- 844c28c syntax: Correct crate capabilities and module records (#29075) (camc314)
- 8d30d9b traverse: Clarify ancestor access during traversal (#29074) (camc314)
- a74b7cd ecmascript: Clarify test locations (#29072) (camc314)
- 7acaa4e mangler: Correct naming strategy and pipeline order (#29073) (camc314)
- ed28291 ast: Clarify which AST nodes use arena allocation (#29070) (camc314)
- d5832ab oxc: Correct README APIs and feature requirements (#29068) (camc314)
- 261c4a2 allocator: Clarify arena storage and memory reclamation (#29066) (camc314)
- 6448a54 napi/parser: Correct parser options and usage guidance (#29065) (camc314)
- 157fc5a napi/minify: Correct minifier capabilities and caveats (#29064) (camc314)
- 6989796 parser: Update TS-ESTree import differences (#29061) (camc314)