oxc/crates/oxc_minifier/CHANGELOG.md
oxc-bot a727ee8aca
release(oxc): crates v0.28.0 (#5696)
## [0.28.0] - 2024-09-11

- afc4548 ast: [**BREAKING**] Educe byte size of
`TaggedTemplateExpression::quasi` by `Boxing` it (#5679) (Boshen)

- 7415e85 ast: [**BREAKING**] Reduce byte size of
`TSImportType::attributes` by `Box`ing it (#5678) (Boshen)

- ee4fb42 ast: [**BREAKING**] Reduce size of `WithClause` by `Box`ing it
(#5677) (Boshen)

- 1fa3e56 semantic: [**BREAKING**] Rename `SymbolTable::iter` to
`symbol_ids` (#5621) (overlookmotel)

- 96a1552 semantic: [**BREAKING**] Remove `SymbolTable::iter_rev`
(#5620) (overlookmotel)

- 4a8aec1 span: [**BREAKING**] Change `SourceType::js` to
`SourceType::cjs` and `SourceType::mjs` (#5606) (Boshen)

- 603817b oxc: [**BREAKING**] Add `SourceType::Unambiguous`; parse `.js`
as unambiguous (#5557) (Boshen)

- b060525 semantic: [**BREAKING**] Remove `source_type` argument from
`SemanticBuilder::new` (#5553) (Boshen)

### Features

- 2da5ad1 ast: Add `JSXElementName::get_identifier` method (#5556)
(overlookmotel)
- 2016bae coverage: Add regular expression idempotency test (#5676)
(Boshen)
- 68c3cf5 minifier: Fold `void 1` -> `void 0` (#5670) (Boshen)
- c6bbf94 minifier: Constant fold unary expression (#5669) (Boshen)
- 86256ea minifier: Constant fold `typeof` (#5666) (Boshen)
- e698418 napi/transform: Align output `SourceMap` with Rollup's
`ExistingRawSourceMap` (#5657) (Boshen)
- aba9194 napi/transform: Export react refresh options (#5533)
(underfin)
- 642295c semantic: Add `SymbolTable::delete_resolved_reference` method
(#5558) (overlookmotel)
- b3cbd56 span: `format_compact_str!` macro (#5610) (overlookmotel)
- 95a6d99 transformer: Enable the react refresh plugin in enable_all
(#5630) (Dunqing)
- 7b543df transformer/react: Handle `refresh_sig` and `refresh_reg`
options correctly (#5638) (Dunqing)
- 17226dd traverse: Add methods for deleting references (#5559)
(overlookmotel)

### Bug Fixes

- d62defb codegen: Do not print trailing commas for `ArrayExpression`
(#5551) (Boshen)
- 1bc08e2 coverage: Parse babel unambiguously (#5579) (Boshen)
- 28b934c coverage: Apply `always_strict` to test262 and typescript per
the specifcation (#5555) (Boshen)
- b9bf544 isolated-declarations: False positive for setter method in
`interface` (#5681) (Dunqing)
- 6e8409a isolated-declarations: Bindings referenced in
`TSModuleDeclaration` are removed incorrectly (#5680) (Dunqing)
- b8f8dd6 minifier/replace_global_defines: Do not replace shadowed
identifiers (#5691) (Boshen)
- 304ce25 regular_expression: Keep LegacyOctalEscape raw digits for
`to_string` (#5692) (leaysgur)
- 0511d55 regular_expression: Report more MayContainStrings error in
(nested)class (#5661) (leaysgur)
- 41582ea regular_expression: Improve RegExp `to_string()` results
(#5635) (leaysgur)
- 28aad28 regular_expression: Handle `-` in `/[\-]/u` as escaped
character (#5631) (leaysgur)
- f9e3a41 semantic: Bind `SymbolId` to function name in `if (foo)
function id() {}` (#5673) (Boshen)
- f49e6eb span: Treat `.js` as `module` file (reverts the previous
breaking change) (#5612) (Boshen)
- 919d17f transform_conformance: Only print semantic mismatch errors
when output is correct (#5589) (Boshen)
- 505d064 transformer: JSX transform delete references for
`JSXClosingElement`s (#5560) (overlookmotel)
- 9b7ecc7 transformer: RegExp transform only set span on final
expression (#5508) (overlookmotel)
- d1ece19 transformer: RegExp transform handle `Term::Quantifier`
(#5501) (overlookmotel)
- a1afd48 transformer/react: Incorrect scope_id for var hoisted in fast
refresh plugin (#5695) (Dunqing)
- f2f5e5a transformer/react: Missing scope_id for function in fast
refresh plugin (#5693) (Dunqing)
- a891c31 transformer/react: Refresh plugin has incorrect reference
flags (#5656) (Dunqing)
- 3e8b96f transformer/react: The refresh plugin cannot handle member
expressions with React hooks (#5655) (Dunqing)
- 0739b5f transformer/react: Don't transform declaration of function
overloads (#5642) (Dunqing)
- 3bf6aaf transformer/react: Support `emit_full_signatures` option in
refresh plugin (#5629) (Dunqing)
- 36d864a transformer/react: Don't transform if the variable does not
have a value reference (#5528) (Dunqing)

### Performance

- e8013d2 traverse: Faster string operations generating UIDs (#5626)
(overlookmotel)
- 4996874 traverse: `generate_uid` cache available binding names (#5611)
(overlookmotel)

### Documentation

- fefbbc1 sourcemap: Add trailing newline to README (#5539)
(overlookmotel)
- 9282647 transformer: Comment on RegExp transform for potential
improvement (#5514) (overlookmotel)
- 1c051ae traverse: Correct code comment 2 (#5607) (overlookmotel)
- 2e24a15 traverse: Correct code comment (#5604) (overlookmotel)

### Refactor

- 14ee086 ast: Inline `AstKind::as_*` methods (#5547) (overlookmotel)
- 2de6ea0 index, traverse: Remove unnecessary type annotations (#5650)
(overlookmotel)
- 0ac420d linter: Use meaningful names for diagnostic parameters (#5564)
(Don Isaac)
- 2da42ef regular_expression: Improve AST docs with refactoring
may_contain_strings (#5665) (leaysgur)
- dec1395 regular_expression: Align diagnostics (#5543) (leaysgur)
- 731ffaa semantic: Compare nodes by pointer equality (#5686)
(overlookmotel)
- 067f9b5 semantic: Introduce `IsGlobalReference` trait (#5672) (Boshen)
- d22a9b7 semantic: `SymbolTable::is_empty` use `is_empty` (#5622)
(overlookmotel)
- 3d190a5 span: Move `CompactStr` into separate file (#5609)
(overlookmotel)
- 5532628 span: Put types and impl in the same mod file (Boshen)
- ce71982 transformer: Shorten code in JSX transform (#5554)
(overlookmotel)
- 758a10c transformer: RegExp transform reuse var (#5527)
(overlookmotel)
- fad0a05 transformer: RegExp transform unbox early (#5504)
(overlookmotel)
- 19cdcc5 traverse: Revert changes to `walk.rs` (#5652) (overlookmotel)-
26d9235 Enable clippy::ref_as_ptr (#5577) (夕舞八弦)

### Styling

- e52d006 traverse: Fix formatting of traverse codegen (#5651)
(overlookmotel)
- 97e99bd traverse: Remove excess line break (#5603) (overlookmotel)-
694f032 Add trailing line breaks to `package.json` files (#5542)
(overlookmotel)

### Testing

- 2e367c9 traverse: Enable tests for `oxc_traverse` crate (#5625)
(overlookmotel)- dc92489 Add trailing line breaks to conformance
fixtures (#5541) (overlookmotel)

---------

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-09-11 17:57:55 +08:00

11 KiB

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.28.0] - 2024-09-11

  • ee4fb42 ast: [BREAKING] Reduce size of WithClause by Boxing it (#5677) (Boshen)

  • 4a8aec1 span: [BREAKING] Change SourceType::js to SourceType::cjs and SourceType::mjs (#5606) (Boshen)

  • b060525 semantic: [BREAKING] Remove source_type argument from SemanticBuilder::new (#5553) (Boshen)

Features

  • 68c3cf5 minifier: Fold void 1 -> void 0 (#5670) (Boshen)
  • c6bbf94 minifier: Constant fold unary expression (#5669) (Boshen)
  • 86256ea minifier: Constant fold typeof (#5666) (Boshen)

Bug Fixes

  • b8f8dd6 minifier/replace_global_defines: Do not replace shadowed identifiers (#5691) (Boshen)

Performance

Refactor

  • 067f9b5 semantic: Introduce IsGlobalReference trait (#5672) (Boshen)

[0.27.0] - 2024-09-06

Features

  • ba4b68c minifier: Remove parenthesized expression for dce (#5439) (Boshen)

[0.25.0] - 2024-08-23

  • 78f135d ast: [BREAKING] Remove ReferenceFlag from IdentifierReference (#5077) (Boshen)

  • c4c08a7 ast: [BREAKING] Rename IdentifierReference::reference_flags field (#5024) (overlookmotel)

  • d262a58 syntax: [BREAKING] Rename ReferenceFlag to ReferenceFlags (#5023) (overlookmotel)

  • ce4d469 codegen: [BREAKING] Remove const generic MINIFY (#5001) (Boshen)

Features

  • 2b21be3 oxc_minifier: Define plugin with postfix wildcard (#4979) (IWANABETHATGUY)

Refactor

  • 0f64d10 minifier: Remove duplicated helper move_out_expression (#5007) (IWANABETHATGUY)
  • b4407c4 oxc,mangler: oxc crate add mangler; mangler use options API (Boshen)

[0.24.3] - 2024-08-18

Bug Fixes

  • 46cb1c1 minifier: Handle Object.definedPropert(exports for @babel/types/lib/index.js (#4933) (Boshen)
  • 81fd637 minifier: Do not fold 0 && (module.exports = {}) for cjs-module-lexer (#4878) (Boshen)
  • 879a271 minifier: Do not join require calls for cjs-module-lexer (#4875) (Boshen)

[0.24.2] - 2024-08-12

Performance

  • 504ac0b minifier: InjectGlobalVariables only add to replaced_dot_defines once for each (#4803) (overlookmotel)
  • 35f2742 minifier: Avoid repeated Atom creation in InjectGlobalVariables (#4802) (overlookmotel)

[0.24.1] - 2024-08-10

Features

  • c519295 minifier: Add InjectGlobalVariables plugin (@rollup/plugin-inject) (#4759) (Boshen)

[0.24.0] - 2024-08-08

Features

  • 229a0e9 minifier: Implement dot define for member expressions (#3959) (camc314)

Bug Fixes

  • 94d3c31 minifier: Avoid removing function declaration from KeepVar (#4722) (Boshen)
  • bf43148 minifier: Do not remove_syntax in dead_code_elimination (Boshen)
  • bf48c7f minifier: Fix keep_var keeping vars from arrow functions (#4680) (Boshen)
  • 9be29af minifier: Temporarily fix shadowed undefined variable (#4678) (Boshen)
  • e8b662a minifier: Various fixes to pass minifier conformance (#4667) (Boshen)

Performance

  • 0f5e982 minifier: Only visit arrow expression after dropping console.log (#4677) (Boshen)

Refactor

  • fbfd852 minifier: Add NodeUtil trait for accessing symbols on ast nodes (#4734) (Boshen)
  • e0832f8 minifier: Use oxc_traverse for AST passes (#4725) (Boshen)
  • 17602db minifier: Move tests and files around (Boshen)
  • 3289477 minifier: Clean up tests (#4724) (Boshen)
  • e78cba6 minifier: Ast passes infrastructure (#4625) (Boshen)

[0.23.1] - 2024-08-06

Features

  • 229a0e9 minifier: Implement dot define for member expressions (#3959) (camc314)

Bug Fixes

  • bf48c7f minifier: Fix keep_var keeping vars from arrow functions (#4680) (Boshen)
  • 9be29af minifier: Temporarily fix shadowed undefined variable (#4678) (Boshen)
  • e8b662a minifier: Various fixes to pass minifier conformance (#4667) (Boshen)

Performance

  • 0f5e982 minifier: Only visit arrow expression after dropping console.log (#4677) (Boshen)

Refactor

  • e78cba6 minifier: Ast passes infrastructure (#4625) (Boshen)

[0.23.0] - 2024-08-01

Features

  • a558492 codegen: Implement BinaryExpressionVisitor (#4548) (Boshen)

Bug Fixes

  • 6a94e3f codegen: Fixes for esbuild test cases (#4503) (Boshen)

[0.22.0] - 2024-07-23

Features

  • 0deb027 minfier: Dce if (xxx) else if (false) { REMOVE } (#4407) (Boshen)
  • e33ec18 minifier: Compress typeof foo == "undefined" into typeof foo > "u" (#4412) (Boshen)

Bug Fixes

  • 267f7c4 minifier: Skip Object.defineProperty(exports, ...) for cjs-module-lexer (#4409) (Boshen)

[0.21.0] - 2024-07-18

Features

  • 83c2c62 codegen: Add option for choosing quotes; remove slow choose_quot method (#4219) (Boshen)
  • 5d17675 mangler: Add debug mode (#4314) (Boshen)
  • e3e663b mangler: Initialize crate and integrate into minifier (#4197) (Boshen)
  • c818472 minifier: Dce conditional expression && or || (#4190) (Boshen)

Bug Fixes

  • e167ef7 codegen: Print parenthesis properly (#4245) (Boshen)
  • f144082 minifier: RemoveDeadCode should visit nested expression (#4268) (underfin)

Refactor

  • 2c7bb9f ast: Pass final ScopeFlags into visit_function (#4283) (overlookmotel)

[0.20.0] - 2024-07-11

Features

  • 54cd04a minifier: Implement dce with var hoisting (#4160) (Boshen)
  • 44a894a minifier: Implement return statement dce (#4155) (Boshen)

[0.19.0] - 2024-07-09

  • b936162 ast/ast_builder: [BREAKING] Shorter allocator utility method names. (#4122) (rzvxa)

Refactor

[0.18.0] - 2024-07-09

  • d347aed ast: [BREAKING] Generate ast_builder.rs. (#3890) (rzvxa)

Features

  • c6c16a5 minifier: Dce all conditional expressions (#4135) (Boshen)

[0.17.1] - 2024-07-06

Bug Fixes

  • 719fb96 minifier: Omit dce undefined which can be a shadowed variable (#4073) (Boshen)

[0.17.0] - 2024-07-05

Features

  • 0da9dfb minifier: Add constant folding to remove dead code (#4058) (Boshen)

Bug Fixes

  • aaac2d8 codegen: Preserve parentheses from AST instead calculating from operator precedence (#4055) (Boshen)

Refactor

  • edb557c minifier: Add a folder struct for constant folding (#4057) (Boshen)

[0.16.2] - 2024-06-30

Performance

  • 1eac3d2 semantic: Use Atom<'a> for References (#3972) (Don Isaac)

[0.16.0] - 2024-06-26

  • 6796891 ast: [BREAKING] Rename all instances of BigintLiteral to BigIntLiteral. (#3898) (rzvxa)

Features

  • dd540c8 minifier: Add skeleton for ReplaceGlobalDefines ast pass (#3803) (Boshen)
  • f3c3970 minifier: Add skeleton for RemoveDeadCode ast pass (#3802) (Boshen)

Bug Fixes

Refactor

  • 8027b1e minifier: Change prepass to ast_passes::remove_parens (#3801) (Boshen)

[0.15.0] - 2024-06-18

  • 5c38a0f codegen: [BREAKING] New code gen API (#3740) (Boshen)

  • 534242a codegen: [BREAKING] Remove CodegenOptions::enable_typescript (#3674) (Boshen)

Features

  • 38a75e5 coverage: Improve codegen (#3729) (Boshen)

Bug Fixes

  • 8f64d99 minifier: Respect join_vars: false option (#3724) (mysteryven)

[0.14.0] - 2024-06-12

Refactor

  • e90e6a2 minifier: Make Prepass Copy (#3603) (overlookmotel)

[0.13.4] - 2024-06-07

Bug Fixes

  • affb2c8 codegen: Print indentation before directive (#3512) (Dunqing)

[0.13.2] - 2024-06-03

Features

  • 0cdb45a oxc_codegen: Preserve annotate comment (#3465) (IWANABETHATGUY)

[0.13.1] - 2024-05-22

Features

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

[0.13.0] - 2024-05-14

Refactor

  • 7e1fe36 ast: Squash nested enums (#3115) (overlookmotel)
  • a8af5de syntax: Move number related functions to number module (#3130) (Boshen)

[0.11.0] - 2024-03-30

Refactor

  • fc38783 ast: Add walk_mut functions (#2776) (Ali Rezvani)
  • d9b77d8 sourcemap: Change sourcemap name to take a reference (#2779) (underfin)

[0.10.0] - 2024-03-14

Features

  • 4f9dd98 span: Remove From<String> and From<Cow> API because they create memory leak (#2628) (Boshen)

Refactor

  • cbc2f5f Remove unused dependencies (#2718) (Boshen)- 8001b2f Make CompactStr immutable (#2620) (overlookmotel)- 0646bf3 Rename CompactString to CompactStr (#2619) (overlookmotel)

[0.9.0] - 2024-03-05

Refactor

  • ef932a3 codegen: Clean up API around building sourcemaps (#2602) (Boshen)
  • 903f17c span: Move base54 method to mangler (#2523) (Boshen)

[0.8.0] - 2024-02-26

Features

  • 6b3b260 Codegen: Improve codegen (#2460) (Andrew McClenaghan)
  • e6d536c codegen: Configurable typescript codegen (#2443) (Andrew McClenaghan)

Refactor

  • d08abc6 ast: S/NumberLiteral/NumericLiteral to align with estree (Boshen)
  • e6b391a ast: S/ArrowExpression/ArrowFunctionExpression to align estree (Boshen)- a2c173d Remove panic! from examples (#2454) (Boshen)- 70a0076 Remove global allocator from non-user facing apps (#2401) (Boshen)

[0.7.0] - 2024-02-09

Refactor

  • 1822cfe ast: Fix BigInt memory leak by removing it (#2293) (Boshen)

[0.6.0] - 2024-02-03

Features

  • 1ee6d8c codegen: Move string test to codegen (#2150) (Wenzhe Wang)
  • 18a58d4 minifier: Handle more expressions for side effects (#2062) (Bradley Farias)

Bug Fixes

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

[0.4.0] - 2023-12-08

Features

  • c6ad660 semantic: Support scope descendents starting from a certain scope. (#1629) (Miles Johnson)

Refactor

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

[0.3.0] - 2023-11-06

Features

  • e0ca09b codegen: Implement the basics of non-minifying codegen (#987) (Boshen)
  • 809f050 codegen: Move minifying printer to codegen crate (#985) (Boshen)
  • ef8aaa7 minifier: Re-enable mangler (#972) (Boshen)
  • 14e1dac minifier: Reenable minifier tests (#969) (Boshen)
  • f0029d5 minifier: Reenable mangler (Boshen)
  • 55b2f03 minifier: Partially re-enable minifier (#963) (Boshen)
  • 5b1e1e5 parser: TypeScript 5.2 (#811) (Cameron)
  • 2e2b758 playground: Add transform and minify (#993) (Boshen)
  • ce79bc1 transform_conformance: Move Formatter to codegen (#986) (Boshen)
  • 678db1d transformer: ES2020 Nullish Coalescing Operator (#1004) (Boshen)
  • 0f72066 transformer: Finish 2016 exponentiation operator (#996) (Boshen)- 0e91044 Adjust the order of print semicolon (#1003) (Wenzhe Wang)

Refactor

  • 4787220 ast: Clean up some methods (Boshen)
  • 903854d ast: Fix the lifetime annotations around Vist and VisitMut (#973) (Boshen)
  • db5417f clippy: Allow clippy::too_many_lines (Boshen)
  • eaeb630 clippy: Allow struct_excessive_bools (Boshen)
  • 801d78a minifier: Make the minifier api only accept an ast (#990) (Boshen)
  • 110059f rust: Change RefCell.clone().into_inner() to RefCell.get() (Boshen)

[0.2.0] - 2023-09-14

Features

  • 027a67d minifier: Constant addition expression folding (#882) (Don Isaac)
  • e090b56 minifier: Initialize conditions folding (#658) (阿良仔)
  • c5ff534 semantic: Add node_id to Reference (#689) (Makoto Tateno)

Refactor

  • 3516759 ast: Use atom for Directive and Hashbang (#701) (Yunfei He)