# Changelog

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0).

## [0.140.0] - 2026-07-13

### 🐛 Bug Fixes

- 058a62f semantic: Track ambient contexts in `SemanticBuilder` (#24327) (camc314)

## [0.138.0] - 2026-06-29

### 🐛 Bug Fixes

- da0e5bf minifier: Don't reorder a closed-over TDZ read when inlining a var (#23771) (Dunqing)

### 📚 Documentation

- 419ec80 syntax: Fix typo in doc comment (#23674) (overlookmotel)

## [0.128.0] - 2026-04-27

### 💥 BREAKING CHANGES

- c5b3deb syntax: [**BREAKING**] Remove `CommentNodeId` (#21679) (overlookmotel)

## [0.125.0] - 2026-04-13

### 💥 BREAKING CHANGES

- 382958a span: [**BREAKING**] Remove re-exports of string types from `oxc_span` crate (#21246) (overlookmotel)

### 🚀 Features

- 6dd061c semantic: Extend `MemberWriteTarget` to cover all property modification patterns (#21205) (Dunqing)
- 75663c0 semantic: Add enum member value evaluation for const enum support (#20602) (Dunqing)
- 3cfe8ed semantic: Add `MemberWriteTarget` flag to `ReferenceFlags` (#20772) (Dunqing)

## [0.124.0] - 2026-04-06

### 📚 Documentation

- c78a57a syntax: Fix typo (#21044) (camc314)

## [0.114.0] - 2026-02-16

### 🚀 Features

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

### ⚡ Performance

- c169c77 syntax: Optimize `is_identifier_name_patched` (#19386) (sapphi-red)

### 📚 Documentation

- 569aa61 rust: Add missing rustdocs and remove missing_docs lint attrs (#19306) (Boshen)

## [0.113.0] - 2026-02-10

### ⚡ Performance

- 9eb16b3 syntax: Pack ASCII identifier tables into single bitflag table (#19088) (Boshen)

## [0.109.0] - 2026-01-19

### 🚀 Features

- e2221e6 semantic: Store `scope_id` in `Reference` (#18053) (Dunqing)

## [0.103.0] - 2025-12-15

### 🚀 Features

- d221921 semantic: ScopeFlags::With (#16291) (Aapo Alasuutari)

## [0.102.0] - 2025-12-08

### 🐛 Bug Fixes

- 699406a napi/parser: Move `ExportEntry::module_request` field to first (#16412) (overlookmotel)
- 12bd794 napi/parser: Move `ExportEntry::module_request` field to last (#16403) (overlookmotel)



## [0.94.0] - 2025-10-06

### 🚀 Features

- 588acd5 transformer: Add ES2026 target for explicit resource management (#14330) (Boshen)
- 6374065 napi/parser: Raw transfer support `range` field (#14319) (overlookmotel)
- 3656908 rust: Oxc-index-vec v4.0 (#14254) (Boshen)


## [0.93.0] - 2025-09-28

### 🚜 Refactor

- 7e42b0a syntax: Use allocator HashMap in ModuleRecord fields (#14141) (Boshen)
- 0a9473d syntax: Remove unnecessary `#[estree(field_order)]` attr (#14142) (overlookmotel)



## [0.91.0] - 2025-09-22

### 💼 Other

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





## [0.88.0] - 2025-09-15

### 🐛 Bug Fixes

- ab51394 raw_transfer: Disable layout assertions on some 32-bit platforms (#13716) (overlookmotel)

### 🚜 Refactor

- babbaca all: Remove `pub` from modules with no exports (#13618) (overlookmotel)










## [0.82.0] - 2025-08-12

### 🚀 Features

- 33c0e9f ecmascript: Add global `isNaN`, `isFinite`, `parseFloat`, `parseInt` functions support to constant evaluation (#12954) (Copilot)


## [0.81.0] - 2025-08-06

### ⚡ Performance

- 2c4369a syntax,codegen: Replace `ryu_js` with `dragonbox_ecma` for floating point formatting (#12821) (Copilot)


## [0.80.0] - 2025-08-03

### 📚 Documentation

- 45e2fe8 rust: Fix typos and grammar mistakes in Rust documentation comments (#12715) (Copilot)
- de1de35 rust: Add comprehensive README.md documentation for all Rust crates (#12706) (Copilot)




## [0.78.0] - 2025-07-24

### 💥 BREAKING CHANGES

- ccbcf3e transformer, minifier, syntax: [**BREAKING**] Remove `ESTarget::ES5` (#12448) (Dunqing)





## [0.77.0] - 2025-07-12

### 🚜 Refactor

- 228cff5 semantic,linter: Assert that Program is always the first node (#12123) (Ulrich Stark)



## [0.75.1] - 2025-07-03

### 🚜 Refactor

- 016634f ast/estree: Introduce `serialize_span` method (#12013) (overlookmotel)
- 754f01d ast/estree: Move `start` and `end` fields to last (#12012) (overlookmotel)
- 4597311 ast/estree: Remove temp vars for `ranges` from serializer (#12007) (overlookmotel)


## [0.75.0] - 2025-06-25

### 💥 BREAKING CHANGES

- 9a2548a napi/parser: [**BREAKING**] Add `range` option (#11728) (Bacary Bruno Bodian)






# Changelog

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project does not adhere to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) until v1.0.0.

## [0.72.2] - 2025-05-31

### Refactor

- 1d1ebd6 ast_tools/estree: Order `type` and `span` fields first by default (#11361) (overlookmotel)

## [0.72.0] - 2025-05-24

### Features

- 3eb027b formatter: Support printing binary like expression (#11185) (Dunqing)
- c2c0268 syntax: Introduce `CommentNodeId` (#11214) (overlookmotel)

## [0.71.0] - 2025-05-20

- 5d9344f rust: [**BREAKING**] Clippy avoid-breaking-exported-api = false (#11088) (Boshen)

### Performance

- 2b0a69f ast: Re-order struct fields to reduce padding (#11056) (overlookmotel)

### Refactor


## [0.69.0] - 2025-05-09

### Features

- d066516 ast_tools: Support `#[estree(prepend_to)]` (#10849) (overlookmotel)

### Bug Fixes

- 6e47699 semantic, syntax: TS value module cannot be referenced as type (#10918) (Dunqing)

### Refactor

- b16331e ast/estree: Generalize concatenating fields with `Concat2` (#10848) (overlookmotel)
- faf0a95 syntax: Rename `NameSpaceModule` to `NamespaceModule` (#10917) (Dunqing)

### Styling

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

## [0.68.0] - 2025-05-03

### Features

- d0ba83c ast_tools: Support `#[estree(via)]` on fieldless enum variants (#10746) (overlookmotel)

## [0.67.0] - 2025-04-27

### Refactor

- d22c1ae syntax: Move `CloneIn` impls (#10571) (overlookmotel)

## [0.65.0] - 2025-04-21

### Bug Fixes

- 4f1343b parser: Fix missing type export in module information (#10516) (Ulrich Stark)
- 33a2625 transformer/typescript: Namespaces disappeared and do not transform when a type-only namespace followed by a value module namespace (#10511) (Dunqing)

## [0.64.0] - 2025-04-17

### Features

- 1a37e3f semantic: Add `SymbolFlags::Ambient` for declaration with `declare` modifier (#10355) (Dunqing)

### Bug Fixes

- dd2aef0 semantic: Incorrect `SymbolFlags` of `TSModuleDeclaration` (#10350) (Dunqing)

### Refactor

- 032377d transformer/typescript: Do not need to go through `TSModuleDeclaration` if is a `NamespaceModule` (#10366) (Dunqing)

## [0.63.0] - 2025-04-08

### Performance

- fa0e455 cfg, diagnostics, lexer, syntax, tasks: Remove `write!` macro where unnecessary (#10236) (overlookmotel)

## [0.62.0] - 2025-04-01

### Features

- 8cd7430 allocator: `TakeIn` trait (#9969) (overlookmotel)

### Refactor

- dc3602c semantic: Align handling of declaring symbol for `class` with TypeScript (#10094) (Dunqing)
- 5d829c2 semantic: Align handling of declaring symbol for function with TypeScript (#10086) (Dunqing)
- 0fa58d7 semantic: Always use `SymbolFlags::Function` for function id (#7479) (Dunqing)

## [0.61.2] - 2025-03-23

### Refactor

- d3d7d98 ast: Shorten generated code for `CloneIn` (#9939) (overlookmotel)
- 28179cd ast_tools: Simplify `CloneIn` derive (#9938) (overlookmotel)

## [0.61.1] - 2025-03-21

### Features

- bc0670c tasks,oxc_allocator: Add new method clone_in_with_semantic_ids for `CloneIn` trait (#9894) (IWANABETHATGUY)

## [0.61.0] - 2025-03-20

### Features

- 38ad787 data_structures: Add `assert_unchecked!` macro (#9885) (overlookmotel)

## [0.56.0] - 2025-03-06

### Bug Fixes

- bbb4f98 semantic: Insert binding into correct scope for TSInferType (#9567) (camc314)

## [0.55.0] - 2025-03-05

### Features

- d55dbe2 ast/estree: Raw transfer (experimental) (#9516) (overlookmotel)

## [0.54.0] - 2025-03-04

### Performance

- b0a0a82 ast/estree: Reduce overhead serializing static strings (#9396) (overlookmotel)

### Refactor

- dcff40c ast_tools: Generate layout assertions in multiple crates (#9448) (overlookmotel)

## [0.53.0] - 2025-02-26

### Refactor

- 55ed1df ast/estree: Shorten `ESTree` impls for enums (#9275) (overlookmotel)
- 12e89e0 syntax: Reduce scope of `unsafe` blocks (#9322) (overlookmotel)

## [0.52.0] - 2025-02-21

- 216b33f ast/estree: [**BREAKING**] Replace `serde` with custom `ESTree` serializer (#9256) (overlookmotel)

### Features

- 3e7b21c ast_tools: Add `#[builder(default)]` attribute for structs and enums (#9203) (overlookmotel)
- dde05e3 mangler: Opt-out of direct eval (#9191) (Boshen)

### Refactor

- 9f36181 rust: Apply `cllippy::nursery` rules (#9232) (Boshen)
- 5640611 syntax: Shorten `Serialize` impls (#9248) (overlookmotel)

## [0.51.0] - 2025-02-15

### Features

- b5eb6e5 minifier: Improve `remove_unused_expression` (#9071) (Boshen)

### Bug Fixes

- 15f23f1 napi/parser: Utf16 span for module record (#9093) (hi-ogawa)

### Styling

- 23f53c0 syntax: Name trait method param without underscore (#9119) (overlookmotel)

## [0.49.0] - 2025-02-10

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

### Bug Fixes

- 7e6a537 ast: Include `directives` in `body` (#8981) (hi-ogawa)

### Refactor

- cbb4e9c ast: Generated `Serialize` impls flatten struct fields (#8904) (overlookmotel)
- 6628e1d ast: Move `#[estree(skip)]` to types (#8877) (overlookmotel)
- 3407d47 ast: Move `#[clone_in(default)]` to types (#8876) (overlookmotel)
- caa651c ast: `#[content_eq(skip)]` attr (#8875) (overlookmotel)
- abfe5bf ast: Shorten generated code for numbers (#8864) (overlookmotel)
- f69de07 ast: Remove unneeded lint attrs from generated code (#8862) (overlookmotel)
- 768ad4f syntax: Add `#[ast]` attr to semantic ID types (#8867) (overlookmotel)

### Styling

- a4a8e7d all: Replace `#[allow]` with `#[expect]` (#8930) (overlookmotel)

## [0.48.2] - 2025-02-02

### Bug Fixes

- 8a6ae8a minifier: Do not change `const` to `let` if assignment to constant variable. (#8761) (Boshen)

### Refactor

- 0568210 ast: Remove excess line breaks from generated code (#8830) (overlookmotel)

## [0.48.0] - 2025-01-24

### Refactor

- 23b49a6 linter: Use `cow_to_ascii_lowercase` instead `cow_to_lowercase` (#8678) (Boshen)
- b8d9a51 span: Deal only in owned `Atom`s (#8641) (overlookmotel)

## [0.47.0] - 2025-01-18

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

### Features

- c479a58 napi/parser: Expose dynamic import expressions (#8540) (Boshen)

## [0.46.0] - 2025-01-14

- 7eb6ccd ast: [**BREAKING**] Remove unused and not useful `ContentHash` (#8483) (Boshen)

### Features


## [0.45.0] - 2025-01-11

### Features

- 41ddf60 minfier: Add `CompressOptions::target` (#8179) (Boshen)
- ec88c68 minifier: Compress `a || (a = b)` to `a ||= b` (#8315) (sapphi-red)
- e6fe84d minifier: Compress `a = a + b` to `a += b` (#8314) (sapphi-red)
- 7f19211 minifier: Minimize unary expression statements (#8256) (camc314)
- 2331ea8 minifier: `typeof foo === 'number'` => `typeof foo == 'number'` (#8112) (Boshen)

### Bug Fixes

- c0a3dda minifier: `instanceof` has error throwing side effect (#8378) (Boshen)

## [0.44.0] - 2024-12-25

### Features

- be4feb4 syntax: Add `SymbolId::new` method (#8041) (overlookmotel)

## [0.43.0] - 2024-12-21

### Refactor

- e7476a1 semantic: Remove `serialize` (#8015) (Boshen)

## [0.42.0] - 2024-12-18

- 84b75a0 semantic: [**BREAKING**] Remove `ScopeFlags::Modifiers` (#7935) (overlookmotel)

### Refactor

- 3858221 global: Sort imports (#7883) (overlookmotel)
- 8cf9766 semantic, syntax, wasm: Remove `#![expect(non_snake_case)]` (#7863) (overlookmotel)

### Styling

- 7fb9d47 rust: `cargo +nightly fmt` (#7877) (Boshen)

## [0.41.0] - 2024-12-13

### Refactor

- 0f367e5 semantic: Improve the logic of resolving references to be cleaner (#7829) (Dunqing)

## [0.40.0] - 2024-12-10

### Features

- 00fea92 napi/parser: Expose span positions of `import.meta` (#7677) (Boshen)
- b8dc333 syntax: Add `ExportEntry::is_type` (#7676) (Boshen)

### Refactor

- c6a19aa linter: Remove unused `serde` features (#7738) (Boshen)

## [0.39.0] - 2024-12-04

- c2ced15 parser,linter: [**BREAKING**] Use a different `ModuleRecord` for linter (#7554) (Boshen)

- 8a788b8 parser: [**BREAKING**] Build `ModuleRecord` directly in parser (#7546) (Boshen)

### Features

- 7c62a33 napi/parser: Return esm info (#7602) (Boshen)
- 33e5a49 syntax: Add statement span to `ImportEntry` and `ExportEntry` (#7583) (Boshen)

### Performance

- 4a98230 syntax: Use `FxDashMap` for exported bindings (#7525) (overlookmotel)

### Refactor

- 169b8bf linter, syntax: Introduce type alias `FxDashMap` (#7520) (overlookmotel)
- f0e7acc syntax: Change `ModuleRecord::not_esm` to `has_module_syntax` (#7579) (Boshen)
- 18519de syntax: Remove `ModuleRecord::export_default` (#7578) (Boshen)
- d476660 syntax: Remove `ModuleRecord::exported_bindings_duplicated` because it is a syntax error (#7577) (Boshen)
- 17663f5 syntax: Remove `ModuleRecord::export_default_duplicated` because it is a syntax error (#7576) (Boshen)
- 79014ff syntax: Clean up `ModuleRecord` (#7568) (Boshen)

## [0.38.0] - 2024-11-26

- 27b2268 semantic: [**BREAKING**] Remove `SymbolFlags::Export` (#7414) (Dunqing)

- 6f0fe38 semantic: [**BREAKING**] Correct all `ReferenceFlags::Write` according to the spec (#7388) (Dunqing)

### Bug Fixes


### Refactor

- d7d0735 semantic: Remove `SymbolFlags::TypeLiteral` (#7415) (Dunqing)

## [0.37.0] - 2024-11-21

### Features

- 2534cde syntax: Add `AssignmentOperator::to_logical_operator` and `to_binary_operator` methods (#7350) (overlookmotel)

### Performance

- c335f92 syntax: Reorder operator enum variants (#7351) (overlookmotel)

### Documentation

- 9b9d020 semantic: Document the meaning of `ReferenceFlags::Read` and `Write` (#7368) (Boshen)
- b3d5802 syntax: More comments for `ReferenceFlags` (#7392) (overlookmotel)

### Styling

- b5a2027 syntax: Improve formatting (#7349) (overlookmotel)

## [0.36.0] - 2024-11-09

### Features

- dc0215c ast_tools: Add #[estree(append_to)], remove some custom serialization code (#7149) (ottomated)

## [0.35.0] - 2024-11-04

### Features

- 169fa22 ast_tools: Default enums to rename_all = "camelCase" (#6933) (ottomated)

## [0.34.0] - 2024-10-26

### Features

- 1145341 ast_tools: Output typescript to a separate package (#6755) (ottomated)

### Refactor

- 423d54c rust: Remove the annoying `clippy::wildcard_imports` (#6860) (Boshen)

## [0.33.0] - 2024-10-24

### Refactor

- 85e69a1 ast_tools: Add line breaks to generated code for `ESTree` derive (#6680) (overlookmotel)
- ad8e293 ast_tools: Shorten generated code for `impl Serialize` (#6684) (overlookmotel)
- 9ba2b0e ast_tools: Move `#[allow]` attrs to top of generated files (#6679) (overlookmotel)

## [0.32.0] - 2024-10-19

### Features

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

### Bug Fixes

- 2ce3e5f identifier: Add `ZWSP` to `is_irregular_whitespace` (#6662) (Boshen)
- 1d3d256 transformer: Correctly trim JSX (#6639) (magic-akari)

### Documentation

- 335b7f2 syntax: Enable lint warnings on missing docs, and add a lot of documentation (#6611) (DonIsaac)

### Refactor

- 856cab5 ecmascript: Move ToInt32 from `oxc_syntax` to `oxc_ecmascript` (#6471) (Boshen)

## [0.31.0] - 2024-10-08

### Refactor

- 03bc041 syntax: Remove some unsafe code creating IDs (#6324) (overlookmotel)

## [0.30.3] - 2024-09-27

### Bug Fixes

- 933a743 semantic: Add interfaces and functions to `SymbolFlags::ClassExcludes`  (#6057) (DonIsaac)

## [0.30.2] - 2024-09-27

### Bug Fixes

- e0a8959 minifier: Compute `void number` as `undefined` (#6028) (Boshen)

## [0.30.0] - 2024-09-23

- c96b712 syntax: [**BREAKING**] Remove `SymbolFlags::ArrowFunction` (#5857) (overlookmotel)

### Documentation

- 1ccf290 semantic: Document `AstNode` and `AstNodes` (#5872) (DonIsaac)
- e04841c syntax: Add ModuleRecord documentation (#5818) (DonIsaac)

### Refactor


## [0.29.0] - 2024-09-13

### Bug Fixes

- 042afa9 syntax: Correctly check for valid `RedeclarationId`s (#5759) (overlookmotel)

### Refactor

- cc0408b semantic: S/AstNodeId/NodeId (#5740) (Boshen)

## [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)

### Performance

- bfabd8f syntax: Further optimize `is_identifier_name` (#5426) (overlookmotel)
- aeda84f syntax: Optimize `is_identifier_name` (#5425) (overlookmotel)

### Refactor

- ccc8a27 ast, ast_tools: Use full method path for generated derives trait calls. (#5462) (rzvxa)
- e4ed41d semantic: Change the reference flag to `ReferenceFlags::Type` if it is used within a `TSTypeQuery` (#5444) (Dunqing)
- b47aca0 syntax: Use `generate_derive` for `CloneIn` in types outside of `oxc_ast` crate. (#5280) (rzvxa)

## [0.25.0] - 2024-08-23

- d262a58 syntax: [**BREAKING**] Rename `ReferenceFlag` to `ReferenceFlags` (#5023) (overlookmotel)

### Refactor


## [0.24.3] - 2024-08-18

### Features

- 48821c0 semantic,syntax: Add SymbolFlags::ArrowFunction (#4946) (DonIsaac)

### Documentation

- 0a01a47 semantic: Improve documentation (#4850) (DonIsaac)

### Refactor

- 48a1c32 syntax: Inline trivial bitflags methods (#4877) (overlookmotel)

## [0.24.0] - 2024-08-08

### Features

- 82e2f6b ast_codegen: Process AST-related `syntax` types. (#4694) (rzvxa)
- 6a36616 syntax: Derive `CloneIn` for the AST-related items. (#4730) (rzvxa)

### Bug Fixes

- 9f8f299 syntax: Prevent creating invalid u32 IDs (#4675) (overlookmotel)

### Refactor

- e24fb5b syntax: Add explicit enum discriminants to AST related types. (#4691) (rzvxa)
- 3f3cb62 syntax, span: Reduce #[cfg_attr] boilerplate in type defs (#4698) (overlookmotel)

## [0.23.1] - 2024-08-06

### Bug Fixes

- 9f8f299 syntax: Prevent creating invalid u32 IDs (#4675) (overlookmotel)

## [0.23.0] - 2024-08-01

### Features

- a558492 codegen: Implement `BinaryExpressionVisitor` (#4548) (Boshen)
- 35654e6 codegen: Align operator precedence with esbuild (#4509) (Boshen)
- b952942 linter: Add eslint/no-unused-vars (⭐ attempt 3.2) (#4445) (DonIsaac)

## [0.22.1] - 2024-07-27

### Bug Fixes

- 1667491 syntax: Correct `is_reserved_keyword_or_global_object`'s incorrect function calling. (#4484) (Ethan Goh)
- 82ba2a0 syntax: Fix unsound use of `NonZeroU32` (#4466) (overlookmotel)

### Performance

- 24beaeb semantic: Give `AstNodeId` a niche (#4469) (overlookmotel)
- 6a9f4db semantic: Reduce storage size for symbol redeclarations (#4463) (overlookmotel)

### Refactor

- c99b3eb syntax: Give `ScopeId` a niche (#4468) (overlookmotel)
- 96fc94f syntax: Use `NonMaxU32` for IDs (#4467) (overlookmotel)

## [0.22.0] - 2024-07-23

### Bug Fixes

- f8565ae transformer/typescript: Unexpectedly removed class binding from ExportNamedDeclaration (#4351) (Dunqing)

## [0.21.0] - 2024-07-18

### Features

- 92ee774 semantic: Add `ScopeFlags::CatchClause` for use in CatchClause (#4205) (Dunqing)

### Bug Fixes

- 95e15b6 semantic: Incorrect resolve references for `ExportSpecifier` (#4320) (Dunqing)
- 1108f2a semantic: Resolve references to the incorrect symbol (#4280) (Dunqing)

### Performance

- 8fad7db semantic: Reduce `AstNodeId` to `u32` (#4264) (overlookmotel)

### Refactor

- fc0b17d syntax: Turn the `AstNodeId::dummy` into a constant field. (#4308) (rzvxa)

## [0.16.3] - 2024-07-02

### Bug Fixes

- d995f94 semantic: Resolve reference incorrectly when a parameter references a parameter that hasn't been defined yet (#4004) (Dunqing)

## [0.16.2] - 2024-06-30

### Performance

- 0c81fbe syntax: Use `NonZeroU32` for `SymbolId` and `ReferenceId` (#3970) (Boshen)

## [0.16.0] - 2024-06-26

### Bug Fixes

- 99a40ce semantic: `export default foo` should have `ExportLocalName::Default(NameSpan)` entry (#3823) (Boshen)

## [0.13.4] - 2024-06-07

### Bug Fixes

- c00598b transformer: JSX set `reference_id` on refs to imports (#3524) (overlookmotel)

## [0.13.1] - 2024-05-22

### Features

- e2dd8ac syntax: Export `is_reserved_keyword` and `is_global_object` method (#3384) (Boshen)

### Bug Fixes

- b4fa27a transformer: Do no add __self when the jsx is inside constructor (#3258) (Dunqing)

## [0.13.0] - 2024-05-14

### Features

- f1ccbd4 syntax: Add `ToInt32` trait for f64 (#3132) (Boshen)
- 870d11f syntax: Add `ToJsString` trait for f64 (#3131) (Boshen)
- 46c02ae traverse: Add scope flags to `TraverseCtx` (#3229) (overlookmotel)

### Bug Fixes

- 4e20b04 traverse: Create scope for function nested in class method (#3234) (overlookmotel)

### Refactor

- a8af5de syntax: Move number related functions to number module (#3130) (Boshen)
- ae65613 syntax: Use `FxHashMap` for `ModuleRecord::request_modules` (#3124) (Boshen)

## [0.12.5] - 2024-04-22

### Features

- e6d11c6 syntax: Module graph visitor. (#3062) (Ali Rezvani)

### Bug Fixes

- 1f7033e semantic: Correctly resolve identifiers inside parameter initializers (#3046) (Boshen)

### Refactor

- 1249c6c ast: Implement same traits on all fieldless enums (#3031) (overlookmotel)

## [0.12.2] - 2024-04-08

### Bug Fixes

- 1ea24ea semantic: Symbols inside functions and classes incorrectly flagged as exported (#2896) (Don Isaac)

## [0.12.1] - 2024-04-03

### Features

- 7710d8c transformer: Add compiler assumptions (#2872) (Boshen)

## [0.11.0] - 2024-03-30

### Features

- 712b3d2 semantic: Distinguish type imports in ModuleRecord (#2785) (Dunqing)

### Bug Fixes

- df62828 linter/import: Ignore export declaration in no-duplicates (#2863) (Dunqing)

### Refactor

- 1b5e544 semantic: Distinguish whether requested_modules is type imports/exports (#2848) (Dunqing)

## [0.10.0] - 2024-03-14

### Features

- 366a879 linter: Resolve ESM star exports (#2682) (Boshen)- 697b6b7 Merge features `serde` and `wasm` to `serialize` (#2716) (Boshen)

### Refactor

- cba1e2f ast: Import `Tsify` to shorten code (#2665) (overlookmotel)
- 6b5723c ast: Shorten manual TS defs (#2638) (overlookmotel)- 89e8d15 Derive `SerAttrs` on all AST types (#2698) (overlookmotel)- 3c1e0db Reduce `cfg_attr` boilerplate with `SerAttrs` derive (#2669) (overlookmotel)- d76ee6b "wasm" feature enable "serde" feature (#2639) (overlookmotel)- 0646bf3 Rename `CompactString` to `CompactStr` (#2619) (overlookmotel)

## [0.9.0] - 2024-03-05

### Features

- d41dcc3 linter: Remove all commonjs logic for import plugin (#2537) (Boshen)

## [0.8.0] - 2024-02-26

### Features

- 6b3b260 Codegen: Improve codegen (#2460) (Andrew McClenaghan)
- f64c7e0 linter: Handle cjs `module.exports.foo = bar` and `exports.foo = bar` (#2492) (Boshen)
- 950298d semantic: Add static property, ElementKind::Getter, ElementKind::Setter in ClassTable (#2445) (Dunqing)
- 3e1794d syntax: Implement `Debug` for `ModuleRecord` (#2488) (Boshen)

### Bug Fixes

- fba66dc linter: Improve import/no-named-as-default (#2494) (Boshen)

### Refactor

- 67d7a46 linter: Get arrow expression by scope_id in no_render_return_value (#2424) (Dunqing)

## [0.7.0] - 2024-02-09

### Bug Fixes

- 540b2a0 semantic: Remove unnecessary SymbolFlags::Import (#2311) (Dunqing)

## [0.6.0] - 2024-02-03

### Features

- f673e41 ast: Remove serde skip for symbol_id and reference_id (#2220) (Dunqing)
- cd5026c ast: TypeScript definition for wasm target (#2158) (Nicholas Roberts)
- ead4e8d transformer/typescript: Remove import if only have type reference (#2001) (Dunqing)

### Bug Fixes

- 29dc5e6 codegen: Add parenthesis in binary expression by precedence (#2067) (Wenzhe Wang)

### Refactor

- bc7ea0b parser: Make `is_identifier` methods consistent (overlookmotel)
- 0dc1804 syntax: Don't re-export `unicode_id_start` (overlookmotel)
- 27aaff2 syntax: ASCII tables static not const (#2128) (overlookmotel)
- 4f59c4f syntax: Reformat identifier byte tables (#2111) (overlookmotel)

## [0.5.0] - 2024-01-12

### Features

- 90524c8 linter: Add eslint-plugin-import(export) rule (#1654) (Wenzhe Wang)
- f1b433b playground: Visualize symbol (#1886) (Dunqing)
- 3b4fe0e semantic: Allow reserved keyword defined in ts module block (#1907) (Dunqing)
- b9bdf36 semantic: Improve check super implementation, reduce access nodes (#1827) (Dunqing)
- ca04312 semantic: Add ClassTable (#1793) (Dunqing)

### Refactor

- 6c5b22f semantic: Improve ClassTable implmention and merge properties and methods to elements (#1902) (Dunqing)

## [0.4.0] - 2023-12-08

### Features

- da87b9b prettier: Binaryish expressions with parens (#1597) (Boshen)
- 1bd1c5b prettier: Check parens for `(let)[a] = 1` (#1585) (Boshen)
- f19032e prettier: Support quoteProps option in PropertyKey (#1578) (Dunqing)

### Refactor

- 1a576f6 rust: Move to workspace lint table (#1444) (Boshen)

## [0.3.0] - 2023-11-06

### Features

- 55b2f03 minifier: Partially re-enable minifier (#963) (Boshen)
- 1661385 semantic: Check non-simple lhs expression of assignment expression (#994) (Boshen)
- 5863f8f transformer: Logical assignment operators (#923) (Boshen)
- 1051f15 transformer/jsx: Escape xhtml in jsx attributes (#1088) (Boshen)
- 1b3b100 transformer_conformance: Read plugins options from babel `options.json` (#1006) (Boshen)

## [0.2.0] - 2023-09-14

### Features

- e7c2313 ast: Add `SymbolId` and `ReferenceId` (#755) (Yunfei He)
- e090b56 minifier: Initialize conditions folding (#658) (阿良仔)
- 75d928a syntax: Add loaded_modules to ModuleRecord (Boshen)

### Performance

- 6628fc8 linter: Reduce mallocs (#654) (Don Isaac)

### Refactor
- 12798e0 Improve code coverage a little bit (Boshen)- fdf288c Improve code coverage in various places (#721) (Boshen)

