swc/CHANGELOG.md
2024-10-29 11:30:46 +09:00

67 KiB

Changelog

[unreleased]

Features

  • (es/minifier) Optimize switch with side effect and termination tests (#9677) (7344a63)

  • (es/parser) Ability to get script's potential module errors (#9682) (2bbd1e8)

Performance

  • (visit) Introduce Pass API and adjust visitor APIs for it (#9680) (581aafb)

[1.7.40] - 2024-10-26

Bug Fixes

  • (bindings) Update napi to handle string with \0 (#9665) (8f45eaf)

  • (bindings/node) Add VisitTsPropertySignature (#9670) (715c42c)

  • (es/codegen) Improve EndsWithAlphaNum (#9675) (ba2a942)

  • (es/renamer) Check preserved in normal renaming mode (#9666) (87b4e10)

  • (typescript) Check whether the method is abstract when checking is_overload (#9678) (78500af)

Documentation

Miscellaneous Tasks

  • (deps) Update dependency swc-plugin-coverage-instrument to ^0.0.25 (#9676) (b8d255b)

[1.7.39] - 2024-10-22

Bug Fixes

  • (es/compat) Add missing visit children for destructuring (#9658) (32116a0)

  • (es/parser) Correct > and < when exit type context (#9653) (abffc07)

  • (es/proposal) Use tsc version of explicit resource management (#9585) (f735108)

  • (wasm-typescript) Fix option types of functions (#9662) (4cbe33c)

Features

  • (es/minifier) Implement optional catch binding (#9657) (f70b842)

Miscellaneous Tasks

  • (es/typescript) Improve enum comments and sourcemap (#9652) (31fe3b6)

[1.7.36] - 2024-10-15

Bug Fixes

  • (es) Run esnext transforms on esnext target (#9644) (8a19201)

  • (es/codegen) Emit space after div if rhs has leading comment (#9631) (f2be26e)

  • (es/lints) Correct the false positive error of TS2309 (#9635) (f74c1f3)

  • (es/minifier) Only merge last if return (#9633) (6f52949)

  • (es/minifier) Check type of assignment target before merging assignments (#9617) (4436621)

Features

  • (es) Introduce runPluginFirst for Wasm plugins (#9645) (3d3e434)

  • (es/minifier) Support unary negate in cast_to_number (#9642) (88a2186)

Miscellaneous Tasks

  • (deps) Update dependency magic-string to v0.30.12 (#9634) (085bc19)

[1.7.35] - 2024-10-10

Bug Fixes

  • (ci) Fix target triples (#9622) (f625035)

  • (es/codegen) Fix source map so it works with Sentry (#9627) (9c90a73)

  • (es/minifier) Compress consecutive return statements properly (#9620) (8263da1)

  • (es/module) Allow TypeScript nodes for Rewriter (#9606) (4ee45ac)

  • (es/testing) Revert #9264 (#9621) (85f5e5b)

  • (html/minifier) Fix HTML minifier TS types (#9615) (7b98bb5)

Features

  • (bindings/html) Accept Buffer|string instead of Buffer (#9625) (62edb36)

  • (es/preset-env) Update preset-env data (#9573) (9a11d34)

  • (es/testing) Parse test code as a Program instead of a Module (#9264) (166b858)

  • (es/testing) Parse test code as a Program instead of a Module (#9623) (bfea322)

Miscellaneous Tasks

Performance

  • (es) Avoid needless string comparisons (#9613) (ec0a62c)

  • (es/codegen) Reduce usage of tracing::instrument (#9604) (2f06fc5)

  • (es/transforms) Copy benchmarks from oxc (#9602) (24c3a0c)

  • (es/typescript) Reduce unnecessary visits (#9605) (866af6c)

Refactor

  • (es/typescript) Simplifying enum and namespace transforms (#9558) (2480bb0)

Build

[1.7.29] - 2024-10-01

Bug Fixes

  • (deps) Update cargo (patch) (#9454) (b28047a)

  • (es/codegen) Emit .d.ts when using --out-file (#9582) (3d9d641)

  • (es/minifier) Ignore using declarations (#9598) (1659c21)

  • (es/module) Fix jsc.paths using absolute paths with dots in a filename for an alias (#9595) (74e3d04)

  • (es/parser) Fix failure of TS instantiation followed by satisfies (#9583) (77900d8)

Features

  • (es) Add options to disable all esnext transforms and lints (#9597) (f2b0766)

Miscellaneous Tasks

[1.7.28] - 2024-09-24

Bug Fixes

  • (ast) Add archive(check_bytes) to all relevant AST types (#9574) (185d6f5)

  • (cli) Exclude non-files from get_files_list (#9560) (85cc2bd)

  • (es/codegen) Fix wrong sourcemap when there are new lines in tpl (#9578) (cf74382)

  • (es/compat) Skip getter and setter as FlowHelper function do (#9580) (14cfd70)

  • (es/isolated-dts) Preserve comments (#9572) (6d15d9c)

  • (es/minifier) Avoid decl name when mangle with eval (#9546) (e2242c4)

  • (es/minifier) Check variable type while optimizing += (#9575) (04016e9)

  • (es/module) Rewrite import specifier in type declaration (#9577) (fc0ba2a)

  • (plugin) Don't panic when ast byte not match (#9562) (c36871a)

Miscellaneous Tasks

Testing

[1.7.25] - 2024-09-11

Bug Fixes

  • (es/codegen) Handle minify number (#9541) (8b1e442)

  • (es/codegen) Ensure decorators are emitted first in TS paramters (#9545) (47ef38d)

Features

  • (es/common) Introduce pure Span and BytePos to handle #__PURE__ (#9539) (f63a481)

Miscellaneous Tasks

  • (bindings/node) Fix type definition (64ec111)

[1.7.24] - 2024-09-08

Bug Fixes

  • (es/compat) Handle label block in constructor (#9528) (c43dbad)

  • (es/decorator) Add support for private access expressions in legacy decorators (#9535) (62ed065)

  • (es/minifier) typeof class should be function (#9522) (c7fdd6b)

  • (es/minifier) Prevent removing side effects from accessing getter (#9530) (8513816)

  • (es/typescript) Handle enum in single statement (#9532) (84b0043)

[1.7.23] - 2024-09-02

Bug Fixes

Performance

  • (es/compat) Reimplement constructor transform (#9519) (4b85a92)

  • (es/utils) Rewrite inject_after_super (#9496) (c562cfa)

[1.7.22] - 2024-08-30

Bug Fixes

  • (es/minifier) Iterate object properties in reverse direction while inlining property access (#9507) (f584ef7)

[1.7.21] - 2024-08-28

Bug Fixes

[1.7.19] - 2024-08-28

Bug Fixes

  • (es/minifier) Track if a var is used with in (#9508) (7d6269e)

Features

Miscellaneous Tasks

  • (es/codegen) Bump minimum required swc_allocator version to 0.1.8 (#9492) (5258763)

Refactor

[1.7.17] - 2024-08-23

Bug Fixes

  • (bindings/wasm) Fix typing (#9469) (8c007c4)

  • (ci) FIx pattern for actions/download-artifact (ac7bd31)

  • (es/minifier) Force rename synthesized identifiers (#9473) (c72b5f8)

  • (es/minifier) Mark LHS of for-in/of as update (#9474) (ac432c4)

  • (es/typescript) Correctly handle deep import chains (#9487) (50d70d3)

  • (es/typescript) Correctly handle ESM context (#9490) (fc0483c)

  • (html) Fix html binding (eefae1c)

Features

  • (bindings/html) Allow using lightningcss as minfiier (#9462) (74d6478)

  • (es/minifier) Drop more patterns with PURE marker (#9478) (ede1a52)

  • (es/parser) Disallow let let (#9484) (1121bc0)

  • (visit) Add experimental traverse APIs (#9464) (3ee8980)

Miscellaneous Tasks

  • (html) Use binding_html_node instead of html_node (bdea5cb)

  • (html) Fix publish action (f30fd4f)

  • (plugin/runner) Fix benchmark (#9477) (b0b5e36)

Performance

Refactor

  • (common) Simplify SyntaxContext and Mark (#9476) (4bee30a)

[1.7.14] - 2024-08-19

Bug Fixes

  • (common) Use SourceMap::adjust_mappings in correct order (#9447) (05961eb)

  • (es) Preserve more comments (#9449) (673655c)

Features

  • (es/decorators) Groundwork for stage 3 decorator (#9450) (238ba8b)

Refactor

[1.7.12] - 2024-08-19

Bug Fixes

  • (common) Do not use adjust_mappings from sourcemap crate (#9437) (563c162)

  • (es) Mark TypeScript nodes as reachable from Evaluator (#9440) (308e5ec)

  • (es/compat) Init this in sub class constructor for async (#9446) (bfaf31b)

  • (es/decorators) Fix metadata for accessors (#9444) (99738ef)

Miscellaneous Tasks

  • (deps) Update rust crate arrayvec to v0.7.6 (#9436) (08dd948)

[1.7.11] - 2024-08-14

Bug Fixes

Features

  • (es/typescript) Add native_class_properties to skip reordering of class properties inits (#9421) (d2929d1)

  • (estree/compat) Remove dependency on rayon (#9393) (34d1b27)

  • (html/minifier) Support using custom css minifier (#9425) (970cc81)

Miscellaneous Tasks

[1.7.10] - 2024-08-09

Bug Fixes

  • (es/typescript) Strip optional mark and definite mark (#9411) (8c161a0)

  • (es/typescript) Strip exported default overload function declaration (#9412) (b395f48)

  • (es/typescript) Strip this param in getter/setter (#9414) (442fb7b)

  • (es/typescript) Update ts-strip type definition (#9415) (165c8fa)

[1.7.9] - 2024-08-09

Bug Fixes

[1.7.8] - 2024-08-09

Bug Fixes

  • (common) Do not generate invalid source map (#9050) (9d65c77)

  • (common) Require newer version of allocator (#9386) (4e854c7)

  • (common) Remove unused import (#9387) (f530476)

  • (es/minifier) Preserve function length (#9389) (679682c)

  • (es/module) Drop the level of a few tracing events (#9380) (95af253)

  • (es/parser) Fix span of EOF errors (#9378) (f702657)

  • (es/typescript) Enable Injector to process JSX (#9395) (e24e2ff)

  • (es/typescript) Strip declaration of exported function overloads (#9397) (5c8aa52)

  • (visit) Fix regression (#9404) (041a7b7)

Features

  • (visit) Make kind() accessible without swc_visit (#9382) (021e41d)

Miscellaneous Tasks

Testing

  • (es/typescript) Verify TypeScript stripped output (#9398) (4c4c860)

[1.7.6] - 2024-08-04

Bug Fixes

  • (es/codegen) Print the missing abstract in class expression (#9372) (c2e3021)

  • (es/decorators) Use correct class name reference (#9375) (badd6a9)

  • (es/typescript) Strip declare export in strip-only mode (#9374) (c53cce4)

[1.7.5] - 2024-08-02

Bug Fixes

  • (common) Fix StringInput.end_pos (#9362) (5368e18)

  • (es/parser) Fix span for unterminated block comments (#9361) (dc1b87e)

  • (es/parser) Make UnterminatedBlockComment stick to the EOF (#9366) (4f0fc6e)

  • (es/typescript) Handle single type statement in if/for/while (#9364) (2217730)

  • (es/typescript) Handle backtick in ASI issue (#9367) (6f1716c)

  • (es/typescript) Analyze import chain (#9369) (4f9116f)

Miscellaneous Tasks

  • (deps) Update rust crate toml to v0.8.19 (#9360) (9cd51ce)

[1.7.4] - 2024-07-31

Bug Fixes

  • (es/codegen) Emit question token for class methods (#9342) (636585b)

  • (es/minifier) Fix detection of this (#9339) (77da7cf)

  • (es/minifier) Fix analysis of for-in/of (#9340) (1454ab5)

  • (es/minifier) Preserve flags while dropping elements of SeqExpr (#8907) (24e8798)

  • (es/typescript) Fix ASI in expression for fast strip (#9358) (3ee82e2)

Documentation

  • (contributing) Add warning for test --all (#9338) (234bb97)

Miscellaneous Tasks

  • (deps) Update rust crate toml to v0.8.16 (#9327) (67aadfa)

  • (deps) Update dependency magic-string to v0.30.11 (#9345) (ced06e2)

  • (deps) Update rust crate toml to v0.8.17 (#9349) (d5472cc)

[1.7.3] - 2024-07-27

Bug Fixes

  • (es/decorators) Fix TypeScript syntax assertion (#9336) (acb3952)

[1.7.2] - 2024-07-25

Bug Fixes

  • (es/ast) Accept any case of EsVersion during deserialization (#9329) (56da6be)

  • (es/typescrupt) Fix ASI issue in fast ts strip (#9332) (57146cf)

  • (swc_core) Remove unused preset_env (#9333) (75bc7bf)

Documentation

  • (bindings/wasm) Document supported TypeScript version (#9334) (66f31c0)

[1.7.1] - 2024-07-24

Bug Fixes

Features

Miscellaneous Tasks

Performance

Refactor

Build

[1.7.0] - 2024-07-18

Bug Fixes

  • (allocator) Fix allocator & add benchmark (#9234) (037dad5)

  • (allocator) Remove wrong assertions and add tests (#9252) (d8e8b04)

  • (ci) Fix CI of `peff (#9216) (602e0e5)

  • (es/codegen) Fix codegen of large numeric literals (#9226) (fba79e6)

  • (es/compat) Consider only the variables used in the closure (#9151) (1357531)

  • (es/compat) Add support for destructuring with BigInts (#9215) (2cc7028)

  • (es/fixer) Wrap in expr in for-in head (#9209) (5cd837f)

  • (es/minifier) Fix case matching (#9208) (f81fa6e)

  • (es/minifier) Fix compress pow NaN (#9210) (2b361e6)

  • (es/minifier) Fix variable declaration in default branch (#9220) (a7c82bd)

  • (es/minifier) Check this in function params (#9229) (da4866d)

  • (es/minifier) Remove optimization for array pattern (#9241) (521161e)

  • (es/minifier) Fix exponentiate operator (#9251) (06bb533)

  • (es/minifier) Fix panic in bitwise logic and incorrect values (#9258) (baeb9e2)

  • (es/minifier) Collect raw str values for new Tpl element (#9261) (6ddbfa0)

  • (es/modules) Fix lint issue (#9206) (efb8636)

  • (es/quote) Fix macro (#9270) (93d9e44)

  • (es/typescript) Handle unicode for fast ts strip (#9202) (096bfe3)

  • (es/typescript) Fix transform mode (#9243) (0e79a5b)

  • (es/typescript) Workaround wasm-bindgen (#9272) (6b1d2ff)

Documentation

  • (allocator) Mention oxc_allocator (be99ce0)

  • (contributing) Fix deno installation url (#9249) (ff5bbda)

  • (es/minifier) Add contributing section (e22f3ba)

Features

Miscellaneous Tasks

  • (es) Bump unicode-id-start to v1.2.0 (#9177) (9904a53)

  • (es/typescript) Improve decorator handling of fast strip (#9178) (962170f)

Performance

Refactor

Testing

Pers

[1.6.13] - 2024-07-06

Bug Fixes

Features

Testing

[1.6.12] - 2024-07-06

Bug Fixes

  • (ci) Restore disabled CI checks (#9002) (cdfd4c8)

  • (es/decorators) Fix bugs of 2022-03 implementation (#9145) (8a3ae44)

  • (es/loader) Exclude .json from default extension list (#9134) (e94e5e7)

  • (es/minifier) Fix undefined judgement (#9146) (1a739b7)

  • (es/renamer) Fix renaming of default-exported declarations (#9135) (45f671d)

  • (es/renamer) Remove FastJsWord (#9136) (42b4caf)

  • (es/typescript) Fix tricky cases in TS fast strip (#9159) (2bc51b8)

  • (es/typescript) Fix replacement logic of fast TS strip (#9163) (c5acafe)

Features

Performance

  • (es) Reduce allocations for dynamic stacks (#9133) (648830a)

Refactor

[1.6.7] - 2024-07-03

Bug Fixes

Documentation

  • Use @swc/counter for 3rd-party download count (026ff7e)

Features

  • (binding) Create Wasm package for stripping only TypeScript (#9124) (6b3c0da)

  • (es/minifier) Handle more indexing expression (#8750) (570c47a)

  • (preset-env) Upgrade browserslist-rs (#9023) (18d6277)

Performance

  • (es/lexer) Do not use memchr::memmem in parser (#9118) (72021de)

Refactor

  • (es/typescript) Extract type annotation proposal out (#9127) (dfee5f8)

Testing

Build

  • (bindings) Fix build of typescript binding (#9125) (f409bc0)

[1.6.6] - 2024-06-29

Bug Fixes

Performance

[1.6.4] - 2024-06-22

Features

  • (cli) Support generating .d.ts files (#9097) (e71b6d3)

  • (common) Add fallible methods to swc_common::SourceMap (#9090) (e423d1b)

  • (es/transform) Add experimental .d.ts generation (#9093) (51a2702)

  • (swc_core) Reexport swc_typescript (#9092) (a2645e2)

  • (typescript) Implement Isolated Declaration (#9086) (a855159)

Miscellaneous Tasks

Performance

  • (es/lexer) Apply various optimizations (#9095) (2f02630)

  • (es/lexer) Use memchr::memmem for lexing block comments (#9096) (1b3672f)

Refactor

  • (es/parser) Rename EsConfig and TsConfig (#9094) (5520b23)

[1.6.3] - 2024-06-19

Bug Fixes

  • (css/minifier) Don't tranform rotate deg (#9072) (8d37dae)

  • (es/decorators) Reduce the number of sourcemap mappings (#9074) (cfe3ba3)

Performance

  • (common) Use Chars in StringInput (#9073) (7698eaa)

  • (es/lexer) Optimize lexer (#9075) (6426928)

  • (es/lexer) Make lexing of string literals faster (#9077) (373bac5)

  • (es/lexer) Reduce allocation while lexing identifiers (#9076) (69f00b8)

  • (es/lexer) Add a fast-path to template literal lexer (#9080) (238f1c5)

  • (es/lexer) Add fast-path to jsx lexer (#9081) (af58606)

Refactor

  • (common) Simplify StringInput implementation (#9071) (c3a8c0b)

[1.6.1] - 2024-06-16

Bug Fixes

  • (common) Revert Use SourceMap::adjust_mappings (#9058) (cdd20cd)

Performance

  • (es/parser) Reduce allocations while lexing numbers (#9057) (ca26eb7)

[1.6.0] - 2024-06-15

Features

Performance

  • (es/lints) Avoid needless allocations in no-dupe-args (#9041) (e560198)

  • (es/parser) Do not track raw by hand (#9047) (60fe5f0)

  • (es/parser) Reduce allocations for raw while lexing numbers (#9056) (bc8ec62)

Refactor

Testing

[1.5.29] - 2024-06-13

Bug Fixes

Performance

  • (es/minifier) Do not visit var init multiple times (#9039) (675916c)

  • (es/parser) Optimize lexing of template literals (#9036) (6ab19a1)

  • (es/parser) Optimize lexing of template literals, again (#9037) (5bffd0f)

[1.5.28] - 2024-06-11

Bug Fixes

  • (es/minifier) Fix typescript enum detection (#9031) (6669343)

[1.5.26] - 2024-06-10

Bug Fixes

  • (es/es2015) Remove needless unreachable! (#9021) (555e71c)

Features

  • (es) Integrate experimental data API (#9027) (825749f)

  • (es/minifier) Support module: "unknown" (#9026) (cada50b)

  • (es/renamer) Workaround a bug of Safari (#9029) (54ac992)

  • (es/transforms) Add experimental output API for transforms (#9000) (6fa79be)

  • (es/transforms) Add an API for returning metadata to JS (#9022) (6ce112c)

[1.5.25] - 2024-06-05

Bug Fixes

  • (es/es2015) Fix injection location of this for getter/setter properties (#8993) (09121a6)

  • (es/minifier) Preserve unused special properties (#9005) (e764ff6)

  • (es/minifier) Fix comparison of -0.0 (#9012) (8a29577)

  • (es/minifier) Do not index a string with a surrogate pair (#9013) (2879a4d)

  • (es/minifier) Fix evaluation of -0 as a string (#9011) (9f8e24a)

  • (es/resolver) Fix hoisting of const and let (#8987) (0d9ecf3)

Features

  • (es/minifier) Detect TypeScript enum initialization pattern (#8986) (cc8c155)

  • (x) Initialize project (#8999) (da70ebe)

Performance

  • (es/parser) Add feature named tracing-spans (#9019) (3bf3114)

[1.5.23] - 2024-05-30

Bug Fixes