NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #5141 most downloaded on crates.io
EcmaScript code minifier.
Last release today
03 Nov 2026
Ships on a steady schedule
a new release about every 1 weeks
Some releases are documented
notes for 22 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
5 years old
1373 releases · first in 2021
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Add manual Publish crates workflow
(es/minifier) Handle toExponential(undefined)
(es/minifier) Handle toExponential(undefined) (#11583) (cd94a31)
(es/minifier) Cap deep if_return conditional chains (#11758) (a92fa3e)
(es/minifier) Inline prop shorthand in computed props (#11760) (71feafb)
(es/regexp) Preserve source for wrapped named groups (#11757) (7e56fe5)
(html/codegen) Keep </p> for span-parent paragraphs (#11756) (ede9950)
(swc_common) Make eat_byte unsafe to prevent UTF-8 boundary violation (#11731) (669a659)
Nothing published for this version
Nothing published for this version
(es/decorators) Scope 2023-11 implicit-global rewrite to decorator-lifted exprs
(es/decorators) Scope 2023-11 implicit-global rewrite to decorator-lifted exprs (#11743) (1c01bbb)
(es/parser) Parse key Flow forms from #11729 (phase 1) (#11733) (886fe53)
(es/parser) Close remaining Flow parser gaps for #11729 (phase 2) (#11740) (8d36f05)
(es/minifier) Remove useless arguments for non inlined callee (#11645) (bab249e)
(react-compiler) Advance SWC parity for upstream fixtures (#11724) (468da70)
(react-compiler) Tighten core validation parity for upstream fixtures (#11734) (7e2cf8d)
(react-compiler) Improve SWC parity for early-return and hooks validation (#11738) (4739c58)
(react-compiler) M1 memo validators + lint gating alignment (#11739) (7e1ad26)
(react-compiler) Improve Stage A diagnostic parity and validation aggregation (#11745) (0e2075e)
(react-compiler) Continue swc parity for dependency handling (#11747) (83688c8)
(cli) Honor externalHelpers=false in rust binary
(cli) Honor externalHelpers=false in rust binary (#11693) (1be052e)
(cli) Skip mkdir when --out-file targets the current directory (#11720) (f3f4e51)
(es/decorators) Resolve 2022-03 issues #9565/#9078/#9079 and add regressions (#11698) (a025d2b)
(es/flow) Normalize module await bindings for Hermes parity (#11703) (73d8761)
(es/minifier) Fix compatibility for Wasm plugin (swc_ast_unknown) (#11641) (abd0e45)
(es/module) Avoid rewriting unknown relative extensions (#11713) (ed09218)
(es/regexp) Implement transform-named-capturing-groups-regex (#11642) (f62bfa9)
Update lz4_flex to resolve RUSTSEC-2026-0041 (#11701) (7528507)
(agents) Add AGENTS two-pass rules for es crates (#11634) (12af4a1)
Clarify workaround comment requirement in AGENTS (#11700) (e2ad6f6)
(bindings) Enable flow strip support in @swc/core (#11696) (93da89a)
(cli) Enable Flow strip support in swc_cli_impl (#11705) (0ea9950)
(dbg-swc) Add flow strip verification command (#11706) (77b7854)
(es) Add 2-pass transformer and minifier crates (#11632) (f70a4b7)
(es) Add TypeScript + React transforms and tsc corpus tests (#11635) (09a5d8d)
(es/helpers) Prevent recursive instanceof helper transforms (#11609) (cb755a3)
(es/parser) Add with_capacity for Capturing (#11679) (60df582)
(es/parser) Add flow syntax mode and strip integration (#11685) (015bbe8)
(es/parser) Finish flow strip support for core syntax gaps (#11689) (584a12f)
(es/parser) Extend flow declare export strip compatibility (#11691) (a8315aa)
(es/parser) Support Flow declare export default interface strip path (#11692) (588577c)
(es/parser) Add Hermes Flow parity harness and fixes (#11699) (918b6ac)
(es/parser) Complete Hermes Flow stripping parity (#11702) (f041f4c)
(es/proposal) Add decorators 2023-11 support (#11686) (e96eb6a)
(es/react-compiler) Scaffold SWC port of Babel entrypoint (#11687) (4a1d3ce)
(es/react-compiler) Phase1 crate API baseline and fixture harness (#11690) (31364dc)
(es/react-compiler) Strict upstream parity finalization (crate-only, WIP) (#11697) (a3994aa)
(es/react-compiler) Advance strict upstream parity (#11709) (9b3abe0)
(es/react-compiler) Advance upstream fixture parity pipeline (#11716) (33fe6f2)
(es/semantics) Add scope analysis and statement-level cfg (#11623) (86815b1)
(es_parser) Complete parity suite with zero ignores (#11615) (ee3fdd5)
(es_parser) Complete internal parser wiring without ecma runtime dep (#11622) (1c51891)
(react-compiler) Advance SWC upstream fixture parity (#11718) (e8d1696)
(swc_es_parser) Enforce full parity suite and extend grammar surface (#11611) (585f7d0)
(swc_es_parser) Complete lossless modeling for with/TS module/decorators (#11613) (59b1189)
(swc_es_parser) Close parity gaps with full core/large fixture pass-fail parity (#11614) (3085f52)
(es/modules) Avoid export sort key clones (#11669) (e74e17d)
(es/parser) Reduce JSX identifier rescan allocations (#11671) (f9214fe)
(es/parser) Optimize underscore stripping in numeric literal hot path (#11670) (874338b)
(es/transformer) Remove O(n^2) statement mutation hotspots (#11672) (bdc24b7)
(es_parser) Byte-search lexer optimization pass (#11616) (607f2db)
(es_parser) Reduce lookahead and allocation overhead (#11673) (becd9b0)
(ts/fast-strip) Avoid token capture in default transform path (#11668) (06aa0db)
(es/flow) Add flow strip corpus correctness test (#11694) (cd5ed81)
(es/parser) Enforce full ecma fixture parity (#11637) (0bf8a46)
(es/parser) Expand flow strip fixture coverage (#11695) (e231262)
(es_parser) De-arenaize ecma_reuse fixture snapshots (#11639) (aa6727a)
(es_parser) Recover swc_es_parser benchmark coverage (#11640) (0f24ee1)
Expand swc_es_parser snapshot suites (ecma-style) (#11621) (325170f)
Nothing published for this version
Emit ECMA-426 source map scopes behind experimental flag
(errors) Avoid panic on invalid diagnostic spans
(errors) Avoid panic on invalid diagnostic spans (#11561) (b24b8e0)
(es/helpers) Fix _object_without_properties crash on primitive values (#11571) (4f35904)
(es/minifier) Preserve array join("") nullish semantics (#11558) (d477f61)
(es/minifier) Inline side-effect-free default params (#11564) (1babda7)
(es/react) Preserve first-line leading whitespace with entities (#11568) (fc62617)
(es/regexp) Transpile unicode property escapes in RegExp constructor (#11554) (476d544)
(es/jsx) Preserve whitespace before HTML entities
(es/jsx) Preserve whitespace before HTML entities (#11521) (64be077)
(es/minifier) Do not merge if statements with different local variable values (#11518) (3e63627)
(es/minifier) Prevent convert_tpl_to_str when there's emoji under es5 (#11529) (ff6cf88)
(es/parser) Fix generic arrow function in TSX mode (#11549) (366a16b)
(es/minifier) Add unsafe_hoist_static_method_alias option (#11493) (6e7dbe2)
(es/minifier) Remove unused args for IIFE (#11536) (3cc286b)
(es/parser) Compare token kind rather than strings (#11531) (5872ffa)
(es/typescript) Run typescript transform in two passes (#11532) (b069558)
(es/typescript) Precompute namespace import-equals usage in semantic pass (#11534) (b7e87c7)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Replace deprecated cargo_bin function with cargo_bin! macro
(es/codegen) Emit leading comments for JSX elements, fragments, and empty expressions (#11488) (1520633)
(es/decorators) Invoke addInitializer callbacks for decorated fields (#11495) (11cfe4d)
(es/es3) Visit export decl body even if name is not reserved (#11473) (9113fff)
(es/minifier) Treat new expression with empty class as side-effect free (#11455) (a33a45e)
(es/minifier) Escape control characters when converting strings to template literals (#11464) (028551f)
(es/minifier) Handle unused parameters with default values (#11494) (6ed1ee9)
(es/module) Preserve ./ prefix for hidden directory imports (#11489) (a005391)
(es/parser) Validate dynamic import argument count (#11462) (2f67591)
(es/parser) Allow compilation with --no-default-features (#11460) (b70c5f8)
(es/parser) Skip emitting TS1102 in TypeScript mode (#11463) (e6f5b06)
(es/parser) Reject ambiguous generic arrow functions in TSX mode (#11491) (ac00915)
(es/parser) Disallow NumericLiteralSeparator with BigInts (#11510) (6b3644b)
(es/react) Preserve HTML entity-encoded whitespace in JSX (#11474) (7d433a9)
(es/renamer) Prevent duplicate parameter names with destructuring patterns (#11456) (e25a2c8)
(es/testing) Skip update when expected output has invalid code (#11469) (2be6b8a)
(es/typescript) Don't mark enums with opaque members as pure (#11452) (b713fae)
(preset-env) Distinguish unknown browser vs empty config (#11457) (1310957)
(cli) Add --root-mode argument for .swcrc resolution (#11501) (b53a0e2)
(es/module) Make module transforms optional via module feature (#11509) (b94a178)
(es/regexp) Implement unicode property escape transpilation (#11472) (a2e0ba0)
(es/transformer) Merge ES3 hooks into swc_ecma_transformer (#11503) (5efcac9)
(bindings) Optimize string handling by avoiding unnecessary clones (#11490) (81daaaa)
(es/codegen) Make commit_pending_semi explicit in write_punct (#11492) (5a27fc0)
(es/es2015) Port ES2015 transforms to hook-based visitors (#11484) (a54eb0e)
(es/es3) Use hooks pattern for single AST traversal (#11483) (a139fba)
(es/minifier) Add test case for merge_imports order preservation (#11458) (b874a05)
(es/parser) Add error tests for import.source and import.defer with too many args (#11466) (7313462)
(es/parser) Check handler.has_errors() in test error parsing (#11487) (fade647)
Replace deprecated cargo_bin function with cargo_bin! macro (#11461) (73f77b6)
Nothing published for this version
(es/minifier) Remove inlined IIFE arg and param
(ci) Handle merged PRs separately in milestone manager
(ci) Handle merged PRs separately in milestone manager (#11409) (3554268)
(es/compat) Preserve this context in nested arrow functions (#11423) (f2bdaf2)
(es/es2017) Replace this in arrow functions during async-to-generator (#11450) (a993da6)
(bindings/wasm) Enable ecma_lints feature to support semantic error detection (#11414) (1faa4a5)
(es/hooks) Implement VisitMutHook for Either type (#11428) (395c85e)
(es/hooks) Implement VisitMutHook for Option<H> (#11429) (0bf1954)
(es/hooks) Add VisitHook trait for immutable AST visitors (#11437) (3efb41d)
(es/minifier) Improve nested template literal evaluation (#11411) (147df2f)
(es/minifier) Remove inlined IIFE arg and param (#11436) (2bc5d40)
(helpers) Replace MagicString with ast-grep's built-in edit API (#11410) (a3f0d33)
(hstr/wtf8) Address legacy FIXME comments by switching to derives (#11416) (f03bfd8)
(es/codegen, es/utils) Migrate to dragonbox_ecma for faster Number::toString (#11412) (b7978cc)
(es/react) Optimize JSX transforms to reduce allocations (#11425) (2a20cb6)
(es) Improve TypeScript transform configuration structure (#11434) (f33a975)
(es/minifier) Migrate MinifierPass to Pass trait (#11442) (a41e631)
(es/transformer) Remove OptionalHook wrapper in favor of Option<H> (#11430) (72da6bd)
(es/transforms) Migrate TypeScript transform to Pass trait (#11439) (dd007c6)
claude[bot] PR review comments (affb6a2)(es/minifier) Evaluate TemplateLiteral in BinaryExpression
(es/minifier) Evaluate TemplateLiteral in BinaryExpression (#11406) (8d1b6f6)
(es/minifier) More strict check if cannot add ident when invoking IIFE (#11399) (03642aa)
(es/parser) Use byte_search to optimize scan_jsx_token (#11398) (f9b4da2)
Reduce binary size with panic=abort and ICU optimizations (#11401) (18088b2)
Nothing published for this version
Nothing published for this version
(es/minifier) Remove unused webpack-related code
(es/minifier) Prevent unsafe sequence merging in super() calls
(es/minifier) Prevent unsafe sequence merging in super() calls (#11381) (eb02780)
(es/transformer) Fix variable declaration for nullish coalescing in else-if branches (#11384) (6746002)
(es/transforms) Update _ts_rewrite_relative_import_extension helper code (#11382) (1ec444e)
(es/minifier) Support BinaryExpression for Evaluator (#11390) (6c76f0a)
(es/transformer) Merge private_properties_in_object (#11378) (769c9d2)
(es/minifier) Optimize data structures of ProgramData (#11374) (3639523)
(es/parser) Remove Iterator implementation for Lexer (#11393) (5941018)
(es/parser) Optimize do_outside_of_context and do_inside_of_context (#11394) (4210cf1)
(es/parser) Remove is_first in lexer state (#11395) (97d903b)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
(es/transformer) Fix missing var declaration in nullish coalescing with spreads
(es/compat) Preserve return value for single-property object destructuring
(es/compat) Preserve return value for single-property object destructuring (#11334) (847ad22)
(es/compat) Fix generator transform for compound assignments, for-in, and labeled break (#11339) (9b6bedd)
(es/compat) Destructuring evaluation order (#11337) (49d04c7)
(es/helpers) Avoid extra trap calls on excluded keys in object rest spread (#11338) (4662caf)
(es/minifier) Fix debug cargo feature
(es/transfomer) Prevent breaking change
Nothing published for this version
(es/ast) Fix unicode unpaired surrogates handling
(es/minifier) Fix inlining of hoisted functions
(es/codegen) Encode non-ASCII chars in regex with ascii_only option
(es/compat) Apply Array.prototype.slice to arguments in loose spread
(es/compat) Apply Array.prototype.slice to arguments in loose spread (#11122) (66428a2)
(es/compat) Handle sparse arrays correctly in generator transforms (#11131) (9cd4334)
(es/transforms) Check errors::HANDLER.is_set() before failing (#11130) (1c9ab27)
Nothing published for this version
(bindings) Introduce AST Viewer to improve debugging experience
(es/minifier) Preserve __proto__ shorthand property behavior
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →