swc/CHANGELOG.md
2023-12-02 11:43:08 +00:00

78 KiB

Changelog

[unreleased]

Bug Fixes

  • (bindings/node) Support TsSatisfiesExpression (#7317) (761ef83)

  • (bindings/type) Update types of jsc.experimental (#7972) (e40fccb)

  • (ci) Fix CI (#8079) (7073e83)

  • (ci) Set tag for wasm publish actions (#8200) (8db80b8)

  • (common) Workaround the Arc and rkyv issue (#7321) (577f81e)

  • (common) Disable tracing/release_max_level_info (#7401) (95291f2)

  • (common) Fix logic for excluding FileName from source maps (#7900) (aa64955)

  • (css/ast) Make .hash() of Token not recursive (#8151) (8d7894c)

  • (css/modules) Don't drop the correct selector (#7450) (d370324)

  • (css/modules) Fix :local and :global (#7600) (f0ab5b3)

  • (css/modules) Preserve attr selectors used with :global (#7670) (11b4679)

  • (css/modules) Aggregate class names when composes is chained. (#7917) (0db25a2)

  • (css/modules) Support composes when using multiple subclass selectors (#7949) (05ca19b)

  • (css/modules) Allow out-of-order class names for composes (#8218) (aeb9caf)

  • (css/modules) Fix handling of :global() selector (#8219) (02cd7c2)

  • (es) Fix a crash related to source map (#7307) (e7f7b01)

  • (es) Init filesystem cache only if plugin exists (#7436) (786cf3a)

  • (es) Ignore input sourcemap error (#7446) (0c92e53)

  • (es) Accept parse option for minify() (#7543) (1d84e95)

  • (es) Fix typo in a warning (#7740) (22e06cc)

  • (es) Resolve jsc.baseUrl for .swcrc specified by --config-file (#7801) (fe1ca26)

  • (es) Fix default value of jsc.minify.format.comments (#7853) (64e51d3)

  • (es) Enable resolver if jsc.baseUrl is specified (#7998) (f374ad9)

  • (es/ast) Bump version (#7793) (13bedc0)

  • (es/codegen) Fix codegen of TsModuleDecl (#7319) (0ca05d8)

  • (es/codegen) Emit type arguments for call expressions (#7335) (7e99e5f)

  • (es/codegen) Do not create duplicate source map entry (#7309) (40ba242)

  • (es/codegen) Emit ; for TsImportEqualsDecl (#7464) (3935d02)

  • (es/codegen) Remove extra spaces in AssignPatProp and KeyValuePatProp (#7488) (064bcf4)

  • (es/codegen) Emit type arguments of jsx element names (#7522) (a0da02d)

  • (es/codegen) Fix regression of source maps (#7523) (f27838d)

  • (es/codegen) Don't strip necessary escape characters (#7687) (b45649b)

  • (es/codegen) Add quotes to property names when ascii_only is true (#7820) (04921f3)

  • (es/codegen) Fix placing of comments of yield arguments (#7858) (122d14c)

  • (es/codegen) Emit leading comments for ExprStmt (#7916) (2da5895)

  • (es/codegen) Use emitAssertForImportAttributes (#7936) (dac8888)

  • (es/codegen) Fix codegen of unicode surrogates (#7985) (39c680d)

  • (es/codegen) Fix codegen of optional chaining expr with a comment (#8005) (f07bb48)

  • (es/codegen) Fix codegen of type-only imports (#8070) (6f45b46)

  • (es/codegen) Check for trailing comments while emitting an arrow (#8257) (0faa2c4)

  • (es/codegen) Fix codegen of type args of an import type and a type query (#8296) (369fb21)

  • (es/codegen) Fix get_ascii_only_ident (#8287) (07c8935)

  • (es/codegen) Fix panic due to \\ud (#8346) (1891afa)

  • (es/codegen) Wrap quote for length greater than one (#8351) (2cdea3f)

  • (es/compat) Transform curried function call with optional chaining (#7313) (66b5b11)

  • (es/compat) Fix is_setter in parameters pass (#7348) (e0de83e)

  • (es/compat) Mark reserved function names private (#7298) (dba78a0)

  • (es/compat) Fix destructuring handling of block_scoping (#7425) (66d52ec)

  • (es/compat) Fix stage 3 decorator pass (#7392) (97d0f79)

  • (es/compat) Fix variable scoping of object rest pass. (#7437) (f3d660f)

  • (es/compat) Make stage 3 decorator pass use correct state for inner classes (#7508) (cc4146c)

  • (es/compat) Fix handling of this of optional chaining pass (#7527) (4644d00)

  • (es/compat) Fix optional chaining (#7530) (990e48e)

  • (es/compat) Visit arrow body from optional chaining pass (#7549) (bc6e950)

  • (es/compat) Visit transformed expression in optional chaining pass (#7614) (c087c82)

  • (es/compat) Visit children of while statement in the generator pass (#7624) (d2ac2c1)

  • (es/compat) Fix loose mode of the spread pass (#7608) (a7daa5b)

  • (es/compat) Fix handling of private members in optional chaining pass (#7610) (7ba7b6e)

  • (es/compat) Fix loose mode of the spread pass (#7760) (b69ae8f)

  • (es/compat) Revert #7610 (#7813) (42dec55)

  • (es/compat) Remove wrong logic for object patterns in object_rest (#7788) (3766a7c)

  • (es/compat) Apply transforms for explicit resource management (#7881) (3180e68)

  • (es/compat) Make SwitchCase handler of block-scoping stateless (#7888) (4b33d41)

  • (es/compat) Visit assign expr in generator (#7932) (97068e1)

  • (es/compat) Handle single expression case in static block (#7944) (a80aec4)

  • (es/compat) Handle PrivateName in logical_assignments (#7958) (28318f0)

  • (es/compat) Handle nullish in fn expr scope (#7980) (5050f58)

  • (es/compat) Skip function scope in block-scoped-fns pass (#7975) (d91a554)

  • (es/compat) Use return statements for method and setter decorator (#8017) (38bc710)

  • (es/compat) Generate OptCall for OptCall for private fields (#8031) (06b6eb9)

  • (es/compat) Fix scoping of explicit-resource-management (#8044) (96a7a4d)

  • (es/compat) Transform default-exported class decorators correctly (#8050) (a751f1c)

  • (es/compat) Use async and await correctly in block-scoping pass (#8056) (8318ea8)

  • (es/compat) Handle __proto__ edge case in shorthand pass (#8077) (a912937)

  • (es/compat) Handle export default decorator only if not empty (#8099) (bf523f5)

  • (es/compat) Don't add pure annotations to dummy spans (#8172) (9ceb57b)

  • (es/compat) Make block-scoping pass rename exports correctly (#8175) (b13bc32)

  • (es/compat) Use dummy span for blocks in parameters (#8202) (c1b255a)

  • (es/compat) Handle private names from class properties pass (#8090) (83a5a0c)

  • (es/decorators) Fix a regression about class expressions (#8102) (cb4361f)

  • (es/decorators) Minimize class declarations transformation (#8245) (6992d83)

  • (es/decorators) Resolve enum for design:returntype (#8320) (91ef7c9)

  • (es/dep-graph) Analyze import type children (#7883) (057bd5f)

  • (es/fixer) Don't change default decls to default expr exports (#7585) (e272545)

  • (es/fixer) Wrap yield expression in await expression (#8357) (ff719f0)

  • (es/helpers) Remove unnecessary parameters in helper_expr! macro (#7296) (38dfb91)

  • (es/helpers) Add src/*.mjs entry back (#7328) (84af855)

  • (es/helpers) Override mistake in _interop_require_wildcard (#8076) (1346528)

  • (es/minifier) Fix remapping of vars upon inlining (#7362) (1dced17)

  • (es/minifier) Mark all function params as potential property mutation (#7409) (5dbbbea)

  • (es/minifier) Prevent inlining vars assigned outside current function scope (#7414) (40d2bf7)

  • (es/minifier) Don't generate generator arrows (#7466) (e506635)

  • (es/minifier) Infect mutation when assigning a property (#7503) (7f9f0b8)

  • (es/minifier) Don't drop assignments to unused top-level variables (#7581) (a685c88)

  • (es/minifier) Add usage to inlined ident eagerly (#7597) (4f866de)

  • (es/minifier) Don't drop unused properties of top-level vars (#7638) (19ba714)

  • (es/minifier) Fix a bug about eval of name mangler (#7615) (6be1f70)

  • (es/minifier) Do not reuse identifier used for import bindings (#7639) (a65be14)

  • (es/minifier) Only cast global Infinity/undefined/NaN (#7684) (241c04a)

  • (es/minifier) Drop line comments starting with ! (#7689) (951138c)

  • (es/minifier) Abort seq inliner using visitor (#7699) (a26dbce)

  • (es/minifier) Do not drop used properties (#7702) (f901b41)

  • (es/minifier) Handle synthesized export default expression (#7707) (5ea6f27)

  • (es/minifier) Mark args of news as references (#7743) (3873f58)

  • (es/minifier) Abort on Array.slice with start >= end (#7745) (36ccbec)

  • (es/minifier) Abort seq inliner if a same var is defined in outer scope (#7772) (ef8d121)

  • (es/minifier) Do not drop properties used via this (#7785) (552d9aa)

  • (es/minifier) Preserve cooked while compressing template literals (#7773) (05990a9)

  • (es/minifier) Abort seq inliner if var is not fn_local or reassigned (#7804) (f8ca366)

  • (es/minifier) Preserve more analysis data upon inlining (#7823) (31de19e)

  • (es/minifier) Don't inline properties if the var is not fn-local (#7839) (7fe01e6)

  • (es/minifier) Don't remove exports (#7856) (ae8cd94)

  • (es/minifier) Report is_fn_local even if var is hoisted (#7876) (87a47bf)

  • (es/minifier) Parse a file as a module only if opts.module is true (#7943) (b87ac64)

  • (es/minifier) Handle ModuleDecl when transform const modules (#7959) (06ca1fe)

  • (es/minifier) Do not inline into a template literal with sequential inliner (#7971) (b3d3a7b)

  • (es/minifier) Check if object shorthand is skippable for seq inliner (#8036) (01391e3)

  • (es/minifier) Don't inline functions if keep_fnames is enabled (#8093) (94bb42e)

  • (es/minifier) Abort seq inliner if b can short-circuit (#8128) (111de26)

  • (es/minifier) Abort function inliner if keep_fnames is true (#8145) (35601e4)

  • (es/minifier) Always consider reassigned when inlining (#8168) (c26a225)

  • (es/minifier) Use cooked while converting tpls into strings (#8248) (be748f0)

  • (es/minifier) Enable seq inliner for const declarations (#8255) (ebcd825)

  • (es/minifier) Keep class with a static block (#8283) (20fb5ba)

  • (es/minifier) Respect pure_funcs for tagged tpls (#8280) (1ccfc07)

  • (es/minifier) Make Finalizer inline literals (#8285) (73fec94)

  • (es/minifier) Remove hack for built-in class names (#8293) (7985e02)

  • (es/minifier) Apply new SyntaxContext to inlined Arrow (#8301) (c18a959)

  • (es/minifier) Apply new SyntaxContext to inlined Arrow correctly (#8312) (572ad63)

  • (es/minifier) Fix if_return bug related to await and yield (#8328) (01e2c7f)

  • (es/minifier) Give up terminate merge if in try with finally (#8342) (ed5a9b3)

  • (es/module) Add "use strict" while preserving directives (#7537) (f42fdd2)

  • (es/module) Skip CJS and AMD transformations for Script (#7661) (a2d0408)

  • (es/module) Do not determine module name for modules without exports in UMD (#7718) (40136f7)

  • (es/module) Fix handling of continuous assignments in systemjs (#7741) (f713f6a)

  • (es/module) Use jsc.baseUrl while resolving absolute paths (#7775) (5c4bfa6)

  • (es/module) Make jsc.paths work for a nest.js app (#7852) (d33a973)

  • (es/module) Fix logic for exact matches in jsc.paths (#7860) (52a1ee7)

  • (es/module) Don't resolve as node_modules from TscResolver (#7866) (11ebae1)

  • (es/module) Don't create absolute paths for jsc.paths on Windows (#7892) (5fbc251)

  • (es/module) Make jsc.paths fully resolve TypeScript files (#7901) (c714dd2)

  • (es/module) Revert #7901 (#7906) (85d6e9b)

  • (es/module) Fix jsc.paths for projects using pnpm (#7918) (a86e9f3)

  • (es/module) Preserve import specifier if resolving fails (#7955) (be5b02a)

  • (es/module) Sort the exported ESM bindings (#8024) (990ca06)

  • (es/module) Handle directives (#8048) (4d8e101)

  • (es/module) Read link if an import is resolved as symlink (#8297) (7dfdc12)

  • (es/modules) Support jsc.baseUrl without jsc.paths (#7302) (9c279b8)

  • (es/parser) Fix handling of in and out of typescript (#7308) (6f81cb9)

  • (es/parser) Parse decorators after export (#7340) (985f0ca)

  • (es/parser) Fix >= with type instantiate (#7388) (fa7a352)

  • (es/parser) Fix parsing of module identifier (#7400) (1d3f320)

  • (es/parser) Fix parsing of > in typescript mode (#7407) (57ad722)

  • (es/parser) Reset class context (#7433) (1cab43f)

  • (es/parser) Allow using package as a parameter name in interface (#7438) (33a922b)

  • (es/parser) Fix parsing of tsx with a type annotation in a conditional expression (#7440) (a37d59a)

  • (es/parser) Fix parsing of generic jsx element name (#7449) (77850dd)

  • (es/parser) Adjust context while parsing type arguments of TypeScript type queries (#7582) (9d5dda1)

  • (es/parser) Re-lex << as two <-s if required (#7439) (6850372)

  • (es/parser) Revert lexer fix for << (#7807) (e527c12)

  • (es/parser) Fix parsing of await using (#8101) (e1043fa)

  • (es/parser) Skip this parameters in setter (#8158) (826386f)

  • (es/parser) Consider ASI while parsing TypeScript type aliases (#8263) (e589126)

  • (es/parser) Adjust the context for cond expr while parsing JSX (#8261) (0678c3c)

  • (es/parser) Fix ASI hazard of static (#8262) (c128153)

  • (es/parser) Fix parsing of import type from from (#8309) (00b8839)

  • (es/parser) Report error for exported reserved name (#8313) (feb8a6d)

  • (es/parser) Wrap with OptChain across TsNonNull (#8332) (8af6ffb)

  • (es/parser) Fix conditional compilation (#8343) (a423681)

  • (es/parsing) Fix parsing of type satisfies = 0; (#8305) (51042e0)

  • (es/preset-env) Fix pass ordering (#7434) (2071f89)

  • (es/preset-env) Don't log Yield to the console (#7548) (8cfc4f9)

  • (es/proposal) Improve resolving of design:returntype (#8303) (fab51e1)

  • (es/react) Default to empty string when emitting refresh signature (#7514) (8e933c8)

  • (es/react) Visit children nodes in jsx-src pass (#8212) (47733a9)

  • (es/react) Make jsx with single spread child static (#8339) (58568fa)

  • (es/renamer) Allow globalThis to be shadowed (#8327) (3dd73a3)

  • (es/resolver) Resolve the super class before registering a class name (#7550) (1d9f972)

  • (es/resolver) Correctly resolve global value (#7893) (2db10e9)

  • (es/resolver) Ignore qualifiers of TsImportType (#8299) (2113bb3)

  • (es/transforms) Do not add PURE comment to BytePos(0) (#8207) (c061356)

  • (es/typescript) Fix typescript strip pass (#7342) (d061d29)

  • (es/typescript) Don't panic of @jsxFrag null (#7540) (76aa91f)

  • (es/typescript) Fix handling of optional chaining (#7660) (c017874)

  • (es/typescript) Handle DeclareCollect correctly (#8008) (9d08b8a)

  • (es/typescript) Handle qualified access in assign pat (#8012) (2f01aba)

  • (es/typescript) Rename wrong unresolved_mark (#8018) (5817268)

  • (es/typescript) Preserve default value of an exported binding in a namespace (#8029) (cf96171)

  • (es/typescript) Support ts_enum_is_mutable with const enums (#8171) (02d0613)

  • (es/typescript) Preserve const enum for named export (#8208) (abced23)

  • (es/typescript) Handle shebang with jsx pragma (#8318) (c25601d)

  • (es/utils) Fix string evaluation of array literals (#7731) (e8c58cf)

  • (es/utils) Ignore typeof Id while preserving side effects (#7763) (d57ac0d)

  • (es/utils) Skip var declarator name in RefRewriter (#8125) (fb81a36)

  • (es/utils) Fix regression of RefRewriter (#8153) (08cf1f7)

  • (estree/compat) Adjust loc.col (#7565) (d86f8f6)

  • (plugin/runner) Revert #7341 (#7344) (d6999ba)

  • (plugin/runner) Disable wasi_env cleanup (#7458) (1868d36)

  • (plugin/runner) Disable wasi env cleanup (#7607) (8209594)

  • (plugin/runner) Use fs cache properly (#7748) (1122de7)

  • (swc-info) Use correct path while getting local package versions (#7872) (67afaf1)

  • (swc_core) Correctly expose plugin with host (#7427) (558ca40)

  • (testing) Fix path normalization on windows for testing diffs (#7299) (3422923)

  • (xml/codegen) Escape < and > in child (#7351) (b180d09)

  • (xml/codegen) Fix wrong minification of spaces in a self-closing tag (#7595) (769d651)

  • (xtask) Fix nightly command (#8105) (db4ca65)

Documentation

  • (counter) Document the purpose of the package (#8032) (b6b5a4d)

Features

  • (bindings) Create a minifier-only package (#7993) (64d8f4b)

  • (common) Enable bytecheck for missing structs (#7465) (56ac9eb)

  • (css/ast) Support @scope at-rule (#7837) (a34f359)

  • (css/parser) Support @starting-style (#7677) (cfb7b51)

  • (css/parser) Store lexed comments (#8091) (d1097cc)

  • (es) Add a validation for a wrong config (#7704) (900701f)

  • (es) Alias format as output for minify() (#7746) (28dfc51)

  • (es) Add an option to disable builtin transforms (#7873) (71d01ec)

  • (es/ast) Expose Archived types (#7811) (478fa47)

  • (es/ast) Support import attributes proposal (#7868) (4d3fcb8)

  • (es/codegen) Add ability to set indentation string via rust api (#7494) (a343e7c)

  • (es/codegen) Support preamble (#7551) (6e5d8b3)

  • (es/codegen) Add an option to print assert for import attributes (#7914) (ee75756)

  • (es/codegen) Respect ascii_only: false for StrLit (#8217) (1a26be2)

  • (es/compat) Support export class from stage 3 decorator pass (#7363) (9c052db)

  • (es/compat) Partially support auto accessors (#7364) (97ec259)

  • (es/compat) Implement auto accessors fully (#7370) (cad18fa)

  • (es/compat) Implement transform for explicit resource management (#7376) (bcd5a1d)

  • (es/compat) Support pure_getters for optional_chaining (#7933) (c091c5e)

  • (es/compat) Implement decorator metadata proposal (#8097) (9c029ef)

  • (es/compat) Skip empty class static blocks (#8138) (e186b80)

  • (es/config) Accept jsc.experimental.keepImportAssertions (#7995) (4d777ee)

  • (es/minifier) Drop expressions using sequential inliner (#6936) (246300a)

  • (es/minifier) Inline for loop variables (#7445) (0cd2b61)

  • (es/minifier) Remove unused labels (#7478) (62075fa)

  • (es/minifier) Support __NO_SIDE_EFFECTS__ (#7532) (3ad07a7)

  • (es/minifier) Enable hoist_props by default (#7535) (07a8580)

  • (es/minifier) Inline constants even if they are exported (#7583) (398e922)

  • (es/minifier) Drop unused properties (#7534) (47d2edd)

  • (es/minifier) Compress common sub expressions in sequences (#7587) (ff1ad95)

  • (es/minifier) Drop recursively used var declaration (#7649) (04b0f6d)

  • (es/minifier) Support mangle.eval (#7777) (eff0cac)

  • (es/minifier) Evaluate more toFixed expressions (#8109) (7da3f52)

  • (es/minifier) Inline into the arguments of new using seq inliner (#8127) (4f67794)

  • (es/minifier) Drop empty static blocks (#8152) (8a461b8)

  • (es/minifier) Respect inline level and preserve native names (#8205) (dd805e9)

  • (es/minifier) Swap bin expr to save paren (#8277) (65c3d0e)

  • (es/minifier) Support format.inline_script (#8252) (f059270)

  • (es/module) Add export_interop_annotation flag (#7330) (caee073)

  • (es/module) Preserve custom use directives (#7528) (3e9dd88)

  • (es/module) Improve error message about relative jsc.baseUrl (#7827) (9099883)

  • (es/module) Add an option to make resolver fully resolve index.js (#7945) (7e8d72d)

  • (es/optimization) Support default imports for const modules (#7604) (ac02b84)

  • (es/parser) Implement explicit resource management (#7322) (041b491)

  • (es/parser) Disallow tagged tpl in optional chaining (#7515) (6c00a24)

  • (es/parser) Implement AsRef<str> for IdentLike (#8133) (bffe33a)

  • (es/preset-env) Update compat data (#7630) (7e9e84e)

  • (es/preset-env) Update builtin definitions for core-js imports (#7715) (b4f3332)

  • (es/preset-env) Update data (#7882) (a97d8b4)

  • (es/preset-env) Update compat data (#8194) (3dc4e1e)

  • (es/testing) Support babel-like fixture testing officially (#8190) (e960614)

  • (es/testing) Use __swc_snapshots__ for test! macro (#8191) (0aafa75)

  • (es/typescript) Add ts_enum_is_mutable to disable enum inlining (#8115) (57b171d)

  • (plugin) Enable bytecheck (#7280) (d2c1f45)

  • (plugin) Add versioned wrapper struct (#7382) (bba1fad)

  • (plugin/runner) Improve caching (#7341) (245163a)

  • (plugin/runner) Enable in-memory precompiled module cache (#7420) (f8fe365)

  • (plugin/runner) Support shared wasix runtime (#7504) (73929fc)

  • (plugin/runner) Update wasmer to v4 (#7576) (ab7b17c)

  • (plugin/runner) Share runtime Engine (#7590) (9512ea3)

  • (swc-info) Add a CLI to help issue reporting (#7871) (d6952ea)

  • (swc_core) Allow native env plugin to use memory cache (#7390) (e3868a7)

  • (swc_core) Expose plugin proxy to the host env (#7391) (05b4c11)

  • (swc_core) Expose visit/serde as serde feature (#7722) (2bc9637)

  • (testing) Add CARGO_TARGET_DIR and use it from other crates (#7552) (46fb461)

Miscellaneous Tasks

  • (atoms) Evaluate .into() in AtomStoreCell eagerly (#8363) (1e8edb4)

  • (bindings) Add @deprecated to JS plugins (#8132) (1e9b4e0)

  • (bindings/node) Upgrade jemalloc (#8227) (495268f)

  • (css/linter) Document rules require porting (#8352) (55da0bb)

  • (deps) Update memchr (#7891) (01cbd6e)

  • (deps) Update base64 to v0.21 (#8369) (c2d1a6c)

  • (es) Enable tracing spans for release builds (#7379) (166e77c)

  • (es/minifier) Fix script for extracting test cases from next.js app (#8092) (a2d0779)

  • (es/module) Remove serde(deny_unknown_fields) (#8163) (5be8e74)

  • (es/parser) Scope use of lexical to certain features (#7644) (a961090)

  • (es/preset-env) Update data (#7459) (e15adaf)

  • (es/preset-env) Add the repository url to Cargo.toml (#7941) (ca22359)

  • (es/preset-env) Ignore tp in the version of a browser version (#7968) (005ddc5)

  • (plugin) Update rkyv to v0.7.42 (#7397) (3a0565f)

Performance

  • (atoms) Replace string-cache with hstr (#8126) (aa22746)

  • (atoms) Update hstr to make global APIs fast (#8241) (c01454a)

  • (atoms) Introduce AtomStoreCell (#8232) (a5a6eb5)

  • (bindings) Enable share-generics to reduce binary size (#7482) (d623db4)

  • (css/parser) Use AtomStore (#8238) (a3c03b3)

  • (css/parser) Use AtomStoreCell (#8247) (302954e)

  • (css/prefixer) Convert macro to a function call to reduce binary size (#7507) (d545df6)

  • (es) Use &dyn Comments to reduce binary size (#7489) (2c3ac68)

  • (es) Use &dyn Comments for jsx and TypeScript (#7490) (abd62bc)

  • (es) Delete useless partition and extend in comments (#8214) (67e2c4a)

  • (es/compat) Improve time complexity of class_properties (#7786) (76c6258)

  • (es/lexer) Remove needless clones of Rc<RefCell<AtomStore>> (#8231) (37657b8)

  • (es/minifier) Make minifier not overly generic (#7483) (65ce5d1)

  • (es/minifier) Add has_flag to Comments (#8182) (7530e90)

  • (es/minifier) Remove needless operations for char freq analysis (#8222) (b745ed7)

  • (es/minifier) Improve format.inline_script (#8292) (7d1836d)

  • (es/parser) Remove needless strcmp ops (#8223) (3833cf4)

  • (es/parser) Improve performance (#8224) (e3e439d)

  • (es/parser) Use smarter lookup table for lexer (#8226) (d4ae44a)

  • (es/transforms) Remove wrong parallelism (#7889) (a505012)

  • (es/typescript) Visit ts import/export only once (#8213) (a00f575)

Refactor

  • (atoms) Remove usage of js_word! to drop string-cache (#7976) (84cec87)

  • (atoms) Improve APIs (#8249) (9a4bad4)

  • (bindingins) Create @swc/counter (#7991) (0acbb5f)

  • (bindings/node) Remove unused babelify type (#7625) (73c7769)

  • (cli) Make CLI testable/managable with swc-bump (#8045) (f717cf2)

  • (common) Derive ByteCheck for ArcString (#7380) (9b3a41c)

  • (common) Remove add_bitflags and update bitflags (#7571) (95ac74e)

  • (common) Make ahash optional (#7816) (981d7b1)

  • (common) Mark some methods of Input unsafe (#7848) (c657324)

  • (es) Extract parser/codegen code for swc::Compiler (#8030) (a13f5cb)

  • (es/ast) Reimplement optional chaining (#7441) (aa83584)

  • (es/ast) Remove unused fields (#7518) (3958f17)

  • (es/ast) Avoid transmute in impl of Hash for Number (#7771) (2258274)

  • (es/compat) Remove usage of box_patterns (#7613) (0a26066)

  • (es/compat) Split swc_ecma_transforms_compat (#8110) (affb6fb)

  • (es/helpers) Move packages for monorepo (#7833) (1ab406c)

  • (es/lint) Remove usage of box_patterns (#7966) (f7b5e16)

  • (es/minifier) Respect toplevel and module options (#7671) (9893bd2)

  • (es/minifier) Respect top-level when invoking IIFE (#7690) (bf72362)

  • (es/minifier) Support stable rustc (#7734) (f7afe7e)

  • (es/minifier) Pre-calculate reassigned (#7832) (65db1ba)

  • (es/minifier) Remove mutated and mutation_by_call_count (#7890) (8db968a)

  • (es/minifier) Move JS options to swc_ecma_minifier (#8028) (725f7f5)

  • (es/minifier) Decouple assign_count from reassigned (#8137) (13106e0)

  • (es/minifier) Simplify analyzer context (#8164) (bb02cdd)

  • (es/module) Reimplement some functions of module/typescript (#8063) (3e5b062)

  • (es/parser) Make stacker an optional dependency (#7720) (864bdef)

  • (es/parser) Do not use lexical (#7758) (e50cfde)

  • (es/parser) Do not validate top-level await with target (#7774) (5f97f86)

  • (es/parser) Don't attempt to handle shebangs in read_token_number_sign (#7803) (5e7834a)

  • (es/parser) Remove needless unsafe (#7818) (8b809db)

  • (es/parser) Introduce TokenKind along with Token (#8071) (9b9bc51)

  • (es/preset-env) Rename parameter to avoid confusion (#8106) (95eb147)

  • (es/types) Extract @swc/types as a small, reusable package (#7834) (f713f1b)

  • (es/typescript) Reimplement TypeScript pass (#7202) (9c9a538)

  • (plugin/runner) Refine cache location (#7346) (91a3fbe)

  • (plugin/runner) Revise cache, module loading (#7408) (ac5ab60)

  • (plugin/runner) Add attributes to the module bytes (#7419) (c03a74c)

  • (swc_core) Make common_plugin_transform agnostic to mode (#7422) (cfdd407)

  • (swc_node_base) Rename to swc_malloc (#8272) (9a0572b)

  • (visit) Reduce expanded LOCs (#7442) (e83368e)

  • Use ahash from swc_common in more places (#7815) (b43e38d)

  • Remove swc_ecma_dep_graph (#8290) (7bbe5e6)

Testing

Buiild

Build