Files
oxc/crates/oxc_ast_macros/CHANGELOG.md
T
oxc-guard f799f174b5 release(crates): oxc v0.157.0 (#28719)
### 🚀 Features

- 8dd67a6 transform-react: Expose TypeScript transform options (Tomas Särnhammar)
- deed7dc parser: More friendly error for duplicate import attribute key (#28262) (sapphi-red)

### 🐛 Bug Fixes

- eaa8e90 ecmascript: Avoid numeric `+` folding when an operand may be a string (#28544) (camc314)
- b03c7b8 regular_expression: Allow incomplete oversized legacy quantifiers (#28449) (Boshen)
- 128c67d semantic: Check strict eval and arguments writes by reference flags (#28445) (Boshen)
- c97c43c parser: Reject TypeScript default exports in JavaScript (#28440) (Boshen)
- fdd119f span: Count Unicode characters when filtering typo suggestions (#28452) (Boshen)
- cb64638 regular_expression: Reject incomplete Unicode atom escapes (#28448) (Boshen)
- fc0eed3 semantic: Stop let-binding scans at arrow functions (#28444) (Boshen)
- 3421516 parser: Preserve default import names in reexports (#28442) (Boshen)
- a1e7e5f parser: Reject optional class members in JavaScript (#28439) (Boshen)
- 5b9a7bc parser: Parse sloppy let expressions and labels (#28438) (Boshen)
- 8e61652 regex: Reject templates without cooked values (#28345) (Boshen)
- 3b36543 parser: Preserve in-context after TypeScript type arguments (#28300) (Boshen)
- 2e3126c regex: Decode constructor patterns and flags consistently (#28298) (Boshen)
- 8a90be2 regex: Track capture groups and disjunction identity (#28297) (Boshen)
- 3dc2cb0 regex: Preserve escape values and boundaries (#28296) (Boshen)
- fc8acbc parser: Handle leading-zero numeric exponents (#28295) (Boshen)
- 91a638d parser: Normalize raw template line endings with invalid escapes (#28285) (Boshen)
- 2ac9a42 parser: Allow parenthesized private-in expressions (#28284) (Boshen)
- 052bca9 ast: Prevent greyed out fields in AST types in IDEs (#28335) (overlookmotel)
- ed7df7d ast/estree: Include comments in TS Program span (#28326) (camc314)

### ⚡ Performance

- 9b6b7bf regular_expression: Advance validated Unicode escapes directly (#28514) (Boshen)
- 82e1982 regular_expression: Share Unicode property name prefixes (#28513) (Boshen)
- 5395a40 regular_expression: Parse class set character prefixes once (#28512) (Boshen)
- 3708934 regular_expression: Defer literal range dash allocation (#28511) (Boshen)
- d85ee3d semantic: Skip arguments ancestry checks outside classes (#28510) (Boshen)
- cf81d07 semantic: Reuse private reference resolution (#28509) (Boshen)
- a79eebc semantic: Avoid duplicate maps for public JavaScript members (#28508) (Boshen)
- 235ca3b semantic: Skip escape checks for unescaped strings (#28507) (Boshen)
- babf44c parser: Reuse shorthand assignment target identifiers (#28504) (Boshen)
- 444f24a ecmascript: Short-circuit simple parameter checks for rest (#28503) (Boshen)
- 04b20c0 semantic: Compute duplicate parameter policy once per list (#28446) (Boshen)
- dbf8482 parser: Use token lookahead for simple function types (#28489) (Boshen)
- bca1275 parser: Avoid unused destructuring rest capacity (#28499) (Boshen)
- 691be5c parser: Compact cover initialized name storage (#28495) (Boshen)
- b3b5444 parser: Build simple arrow bindings directly (#28493) (Boshen)
- e1c9baf parser: Disambiguate single-identifier arrow heads (#28491) (Boshen)
- 550e98a regular_expression: Avoid rescanning unique capture names (#28450) (Boshen)
- 10e9fc7 parser: Skip duplicate lookup for singleton import attributes (#28441) (Boshen)
- 5238839 parser: Use a stack buffer for float separators (#28435) (Boshen)
- 6e35e3c parser: Fast-path leaf expressions before delimiters (#28432) (Boshen)
- 3d7512c parser: Decode Unicode identifiers once (#28414) (Boshen)
- 30f59f4 parser: Factor object type opening brace (#28430) (Boshen)
- 028a267 parser: Always inline postfix update parsing (#28429) (Boshen)
- 1b5a171 parser: Reuse export kind classification (#28424) (Boshen)
- 179a432 parser: Factor return type identifier parsing (#28416) (Boshen)
- 553dd1d parser: Inline hot paths and fold function dispatch (#28404) (Boshen)
- de75d56 parser: Combine parenthesized arrow lookahead (#28412) (Boshen)
- a768a0c parser: Reuse comment annotations after rewind (#28408) (Boshen)
- 563d92a parser: Skip redundant source cursor updates (#28409) (Boshen)
- 7941ca9 parser: Factor tuple identifier parsing (#28398) (Boshen)
- 426c151 parser: Construct completed tokens without intermediate writes (#28291) (Boshen)
- df42953 minifier: Don't request another pass for block unwrapping (#28315) (Dunqing)
- c2d663d parser: Avoid vectors for single parenthesized expressions (#28374) (Boshen)
- 50bd0a9 parser: Size delimited lists after the first element (#28373) (Boshen)
- bd869b5 parser: Bypass redundant operand parsing (#28372) (Boshen)
- 455fc09 parser: Skip keyword checks for plain identifier expressions (#28371) (Boshen)
- 61303fb parser: Fast-path identifier operands (#28306) (Boshen)
- 6cf5b1a parser: Guard arrow and conditional parsing (#28305) (Boshen)
- 3666939 parser: Specialize identifier reference parsing (#28303) (Boshen)
- 0d6641a parser: Skip inapplicable expression parsing paths (#28294) (Boshen)
- 3be7997 parser: Reduce lexer search batch size (#28292) (Boshen)
- ab5655a regex: Remove redundant character-class and quantifier checks (#28288) (Boshen)
- ec8e8d4 parser: Remove redundant grammar and lexer checks (#28287) (Boshen)
- c903f5c parser: Specialize known-token parsing (#28286) (Boshen)
- 2683225 str: `static_ident!` and `static_str!` macros guarantee const evaluation (#28340) (overlookmotel)
- df90836 ast: Reduce compile time of `#[ast]` macro (#28336) (overlookmotel)
- 8239dac parser: Replace dragonbox_ecma with zmij_ecma (#28282) (Boshen)
2026-11-02 19:40:44 +00:00

11 KiB

Changelog

All notable changes to this package will be documented in this file.

The format is based on Keep a Changelog.

[0.157.0] - 2026-11-02

🐛 Bug Fixes

  • 052bca9 ast: Prevent greyed out fields in AST types in IDEs (#28335) (overlookmotel)

⚡ Performance

  • df90836 ast: Reduce compile time of #[ast] macro (#28336) (overlookmotel)

[0.154.0] - 2026-10-13

💥 BREAKING CHANGES

  • 7730e14 ast: [BREAKING] Refactor comment attachment storage (#27512) (camc314)
  • c904b61 ast: [BREAKING] Add comment attachment storage (#27393) (camc314)

[0.149.0] - 2026-09-07

🚀 Features

  • 1d9b9d3 ast: Add GetNodeId trait (#26145) (camc314)

[0.144.0] - 2026-08-10

💥 BREAKING CHANGES

  • a33788e ast: [BREAKING] Group class heritage into ClassHeritage (#25360) (camc314)
  • 6be314f ast: [BREAKING] Remove duplicated VariableDeclarator::kind (#25319) (camc314)
  • 44fd320 ast: [BREAKING] Split TS external modules & Namespace Declarations (#25284) (camc314)

[0.143.0] - 2026-08-03

💥 BREAKING CHANGES

  • 1bdedd1 ast: [BREAKING] Introduce ExportDeclaration, ExportFromDeclaration (#25095) (camc314)
  • c917f20 ast: [BREAKING] Introduce ArrowFunctionBody enum (#24987) (camc314)

[0.141.0] - 2026-07-20

💥 BREAKING CHANGES

  • 54cc121 ast: [BREAKING] Split MetaProperty into ImportMeta and NewTarget (#24557) (camc314)

[0.139.0] - 2026-07-06

🚀 Features

  • 7db7a29 allocator: Add ReplaceWith trait (#24012) (overlookmotel)

📚 Documentation

  • 37cbf88 ast_macros: Document fields of StructDetails (#23959) (overlookmotel)

[0.135.0] - 2026-06-08

💥 BREAKING CHANGES

  • ee4dc73 ast: [BREAKING] Add #[non_exhaustive] to AST nodes (#23046) (overlookmotel)

[0.128.0] - 2026-04-27

💥 BREAKING CHANGES

  • c5b3deb syntax: [BREAKING] Remove CommentNodeId (#21679) (overlookmotel)

[0.125.0] - 2026-04-13

⚡ Performance

  • 8c51121 napi/parser, linter/plugins: Raw transfer deserialize Span fields as i32s (#21135) (overlookmotel)

[0.122.0] - 2026-03-23

⚡ Performance

  • c6ea0a0 ast: Place NodeId field after Span in structs (#20584) (overlookmotel)

[0.116.0] - 2026-03-02

⚡ Performance

  • 6a6513c linter/plugins: Use Oxc tokens in plugins (#19498) (camc314)

[0.114.0] - 2026-02-16

🚀 Features

  • ebb80b3 ast: Add node_id field to all AST struct nodes (#18138) (Boshen)

[0.111.0] - 2026-01-26

🚀 Features

  • 8db0e78 linter/plugins: Handle BOMs (#18376) (overlookmotel)

[0.109.0] - 2026-01-19

💥 BREAKING CHANGES

  • 9135b0b ast: [BREAKING] Move scope from TSEnumDeclaration to TSEnumBody (#18058) (Boshen)

🐛 Bug Fixes

  • 7a0ca99 linter/plugins: Use correct ScriptKind for tokens (#17185) (Peter Wagenet)

[0.104.0] - 2025-12-19

⚡ Performance

  • 1f3b19b ast: #[ast] macro use #[repr(transparent)] for single-field structs (#17052) (overlookmotel)

[0.99.0] - 2025-11-24

💥 BREAKING CHANGES

  • cbb27fd ast: [BREAKING] Add TSGlobalDeclaration type (#15712) (overlookmotel)

[0.98.0] - 2025-11-17

🚀 Features

  • 8a61cfd allocator, ast: Introduce UnstableAddress trait (#15700) (overlookmotel)

[0.96.0] - 2025-10-30

🚀 Features

  • bec7a7d semantic: Add scope to TSConstructorType (#14676) (camc314)

[0.91.0] - 2025-09-22

💼 Other

  • fb347da crates: V0.91.0 (#13961) (Boshen)

[0.82.3] - 2025-08-20

🐛 Bug Fixes

  • d676e04 ast_macros: Do not panic in macro (#13102) (overlookmotel)

[0.82.2] - 2025-08-17

🚜 Refactor

  • c63c944 ast_macros: Simplify code (#13101) (overlookmotel)

[0.81.0] - 2025-08-06

💥 BREAKING CHANGES

  • 50b91ac ast: [BREAKING] Remove IdentifierReference from qualifier field of TSImportType (#12799) (camc314)

[0.80.0] - 2025-08-03

💥 BREAKING CHANGES

  • cd93174 ast: [BREAKING] Introduce WithClauseKeyword (#12741) (overlookmotel)

📚 Documentation

  • de1de35 rust: Add comprehensive README.md documentation for all Rust crates (#12706) (Copilot)

[0.79.0] - 2025-07-30

🚜 Refactor

  • f0b1f0d napi/oxlint, napi/parser: Remove source length from RawTransferMetadata (#12483) (overlookmotel)

[0.78.0] - 2025-07-24

🚀 Features

  • dee25f4 ast: Add pife field to Function (#12469) (sapphi-red)

[0.77.3] - 2025-07-20

🚀 Features

  • 0920e98 codegen: Keep arrow function PIFEs (#12353) (sapphi-red)
  • b0db2d7 allocator: FixedSizeAllocator store flag recording if owned by both Rust and JS (#12381) (overlookmotel)
  • bc0fbe5 allocator: AllocatorPool store IDs in Allocators (#12310) (overlookmotel)

🚜 Refactor

  • c5dff1e linter, napi/parser: Add source_len field to RawTransferMetadata (#12383) (overlookmotel)
  • 5e3b415 linter: Duplicate RawTransferMetadata in oxc_linter crate (#12382) (overlookmotel)
  • 319fc3b allocator/fixed-size: Store alloc_ptr in the memory block backing the allocator (#12380) (overlookmotel)

[0.77.1] - 2025-07-16

🚜 Refactor

  • 5fba91c napi/parser: Raw transfer: introduce metadata struct (#12269) (overlookmotel)

Changelog

All notable changes to this package will be documented in this file.

The format is based on Keep a Changelog, and this project does not adhere to Semantic Versioning until v1.0.0.

[0.72.3] - 2025-06-06

Bug Fixes

  • 5c32b7c ast/estree: Make error objects via raw transfer match standard transfer (#11481) (overlookmotel)

[0.72.0] - 2025-05-24

Features

  • c2c0268 syntax: Introduce CommentNodeId (#11214) (overlookmotel)

[0.71.0] - 2025-05-20

Features

  • 9e90e00 ast_tools: Introduce #[js_only] attr for struct fields and converters (#11160) (overlookmotel)

Bug Fixes

  • ec96e76 ast_macros: Fix missing syn feature "clone-impls" (#11181) (Boshen)

Performance

  • 6571b9b ast: Use bitflags for storing comment newline state (#11096) (camchenry)
  • 2b0a69f ast: Re-order struct fields to reduce padding (#11056) (overlookmotel)

[0.70.0] - 2025-05-15

Refactor

  • c1e6c9b ast_macros: Move logic out of generated code (#11049) (overlookmotel)
  • 2a403cb ast_macros: Rename generated file (#11047) (overlookmotel)

[0.69.0] - 2025-05-09

Styling

  • 62c3a4a ast_tools: Add full stop to end of generated comments (#10809) (overlookmotel)

[0.62.0] - 2025-04-01

Features

  • 8cd7430 allocator: TakeIn trait (#9969) (overlookmotel)

[0.52.0] - 2025-02-21

Features

  • 3e7b21c ast_tools: Add #[builder(default)] attribute for structs and enums (#9203) (overlookmotel)

[0.51.0] - 2025-02-15

Features

  • f74d462 ast_tools: Introduce meta types (#9117) (overlookmotel)

[0.49.0] - 2025-02-10

  • b7ff7e1 span: [BREAKING] Export ContentEq trait from root of oxc_span crate (#8869) (overlookmotel)

Features

  • 8f0b865 ast_tools: Generate mapping of trait name to crate in oxc_ast_macros (#8870) (overlookmotel)
  • e693ff3 ast_tools: Generate list of helper attributes in oxc_ast_macros crate (#8852) (overlookmotel)

Documentation

  • 4cabc16 ast_macros: Update docs (#8853) (overlookmotel)

Refactor

  • 893339d ast: Record plural names in #[plural] attr (#8889) (overlookmotel)
  • caa651c ast: #[content_eq(skip)] attr (#8875) (overlookmotel)

[0.47.0] - 2025-01-18

  • 7066d1c ast, span, syntax, regular_expression: [BREAKING] Remove ContentHash (#8512) (overlookmotel)

Features

[0.38.0] - 2024-11-26

Features

  • eb70219 ast: Derive GetAddress on all enum types (#7472) (overlookmotel)

Documentation

  • 63f4d6c ast_tools: Reformat docs for #[ast] proc macro (#7437) (overlookmotel)
  • bc0e8bc ast_tools: Update and reformat docs for #[ast] proc macro (#7436) (overlookmotel)

Refactor

  • cf0b3bc ast_tools: Remove tsify helper attr from Ast derive macro (#7435) (overlookmotel)

[0.35.0] - 2024-11-04

Features

  • 854870e ast: Label AST fields with #[ts] (#6987) (ottomated)

[0.32.0] - 2024-10-19

Features

  • e310e52 parser: Generate Serialize impls in ast_tools (#6404) (ottomated)

[0.30.0] - 2024-09-23

Refactor

  • 17cd903 ast: Move functions to top level in ast macro (#5793) (overlookmotel)
  • cf97f6d ast: Import syn types in ast macro (#5792) (overlookmotel)
  • dc10eaf ast: Split ast macro into multiple files (#5791) (overlookmotel)

[0.27.0] - 2024-09-06

Features

  • 90facd3 ast: Add ContentHash trait; remove noop Hash implementation from Span (#5451) (rzvxa)
  • 23285f4 ast: Add ContentEq trait. (#5427) (rzvxa)

Refactor

  • 9f6e0ed ast: Simplify ContentEq trait definition. (#5468) (rzvxa)
  • b47aca0 syntax: Use generate_derive for CloneIn in types outside of oxc_ast crate. (#5280) (rzvxa)

[0.24.3] - 2024-08-18

Documentation

  • 47c9552 ast, ast_macros, ast_tools: Better documentation for Ast helper attributes. (#4856) (rzvxa)

[0.24.2] - 2024-08-12

Refactor

  • 0ea697b ast, ast_codegen: CloneIn implementations now initialize semantic related cells with Default value. (#4819) (rzvxa)

[0.24.1] - 2024-08-10

Bug Fixes

  • f5eeebd ast_macros: Raise compile error on invalid generate_derive input. (#4766) (rzvxa)

Refactor

  • 7ea058d ast_codegen: Replace Windows-style line breaks with Unix-style (#4769) (overlookmotel)

[0.24.0] - 2024-08-08

Features

  • eae401c ast, ast_macros: Apply stable repr to all #[ast] enums (#4373) (rzvxa)
  • 2e91ad6 ast_codegen: Support for generate_derive marker. (#4728) (rzvxa)
  • 6a36616 syntax: Derive CloneIn for the AST-related items. (#4730) (rzvxa)

Bug Fixes

  • 94d3c31 minifier: Avoid removing function declaration from KeepVar (#4722) (Boshen)
  • f290191 oxc_ast_macros: Fix syn lacking features to build (Boshen)
  • a40a217 parser: Parse assert keyword in TSImportAttributes (#4610) (Boshen)

Refactor

  • 3f53b6f ast: Make AST structs repr(C). (#4614) (rzvxa)
  • 452e0ee ast: Remove defunct visit_as + visit_args attrs from #[ast] macro (#4599) (overlookmotel)

[0.23.1] - 2024-08-06

Features

  • eae401c ast, ast_macros: Apply stable repr to all #[ast] enums (#4373) (rzvxa)

Bug Fixes

  • a40a217 parser: Parse assert keyword in TSImportAttributes (#4610) (Boshen)

Refactor

  • 3f53b6f ast: Make AST structs repr(C). (#4614) (rzvxa)
  • 452e0ee ast: Remove defunct visit_as + visit_args attrs from #[ast] macro (#4599) (overlookmotel)

[0.22.0] - 2024-07-23

Refactor

  • abfccbd ast: Reduce #[cfg_attr] boilerplate in AST type defs (#4375) (overlookmotel)
  • 5f1c7ec ast: Rename the visited_node marker to ast. (#4289) (rzvxa)

[0.17.0] - 2024-07-05

Features

  • 1854a52 ast_codegen: Introduce the #[span] hint. (#4012) (rzvxa)
  • 7538af1 ast_codegen: Add visit generator (#3954) (rzvxa)

[0.16.0] - 2024-06-26

Refactor

  • fcd21a6 traverse: Indicate scope entry point with scope(enter_before) attr (#3882) (overlookmotel)

[0.13.0] - 2024-05-14

Features

  • be87ca8 transform: oxc_traverse crate (#3169) (overlookmotel)