NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4262 most downloaded on crates.io
TBD
Last release 4 days ago
30 Sep 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 58 of the last 60 stable releases
4 versions withdrawn
withdrawn after publishing
4 years old
1492 releases · first in 2022
One column per quarter.
(deploy) Fix musl binding test workflow
(deploy) Build package ts before Linux GNU binding tests (#11806) (a3d3ef3)
(es/flow) Fix Flow type-only modules in script transforms (#11817) (be38316)
(es/flow) Avoid restoring module context when flow syntax is enabled (#11819) (3ed7243)
(es/minifier) Preserve frozen spread registry keys (#11825) (347181c)
(es/parser) Align Flow generic arrow JSX disambiguation (#11821) (28a7fad)
(es/jsx) Preserve quoted JSX attribute newlines
(es/jsx) Preserve quoted JSX attribute newlines (#11796) (9fe56c8)
(es/minifier) Support full ES version parsing in minify (#11800) (af1f08f)
(es/module) Add opt-in symlink-preserving resolver (#11801) (6028240)
(es/parser) Allow return type annotation on Flow constructors (#11790) (d66b29c)
(es/parser) Support Flow anonymous keyof indexers (#11792) (452c4e5)
(es/parser) Add Flow strip RN and RNW regression corpus (#11799) (23a9109)
Nothing published for this version
(es/decorators) Preserve super in moved static members
(swc_common) Add SourceMapper.map_raw_pos
(es/typescript) Handle TypeScript expressions in enum transformation
(es/transforms) Rewrite class references in non-static members
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)
(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)
(malloc) Fallback to system allocator on linux gnu s390x/powerpc
Remove --no-verify flag from cargo mono publish
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)
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)
(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
(es/transformer) Fix missing var declaration in nullish coalescing with spreads
(es/transforms) Adjust import rewriter pass before inject helpers pass
(es/transformer) Fix pass order
(es/minifier) Optimize typeof x == "undefined" to typeof x > "u"
(es/transformer) Complete replace_this_in_expr implementation
(es/parser) Support no_paren parser option (#11359) (5b9d77c)
(es/parser) Revert no_paren parser option (#11362) (57a8731)
(es/transformer) Merge async_to_generator (#11358) (25f3a47)
(es/transformer) Merge object_rest_spread (#11357) (752188e)
(es/transformer) Merge nullish_coalescing (#11365) (5fb686a)
Nothing published for this version
(es/transformer) Merge async-to-generator
(es/parser) Handle TypeScript expressions in destructuring patterns
(es/compat) Fix parameter default value evaluation order with object rest
(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/fixer) Preserve parens around IFFE in binary expressions within sequences
(es/parser) Optimize byte_search!
(es/minifier) Remove unused arrow functions in dead code elimination
(es/plugin) Use #[cfg] to avoid compilation error
(es/transfomer) Prevent breaking change
(es/codegen) Restore missing top-level comments
(es/quote) Replace usage of swc_atoms with swc_core::atoms
(es/minifier) Prevent compress.comparisons from transforming expressions with side effects
(bindings/es) Respect filename option from print()
(es/minifier) Drop empty constructors during minification
(cli) Print filename to stderr when compiling
(es/minifier) Prevent array destructuring optimization in assignment contexts
(plugin) Avoid data copy when transformation finished
(cli) Update plugin template to use VisitMut API
Nothing published for this version
(atoms) Remove temporary allocations in rkyv serialize and deserialize
(es/parser) Remove had_line_break_before_last
(hstr) Fix unsoundness of wtf8's transmutation
(es/ast) Fix unicode unpaired surrogates handling
(bindings) Improve ARM64 and Alpine Linux (musl) binary loading and validation
(bindings) Improve ARM64 and Alpine Linux (musl) binary loading and validation (#11173) (f9be4d7)
(es/helpers) Fix SuppressedError argument order in explicit resource management (#11172) (7693fb9)
(es/minifier) Fix inlining of hoisted functions in param (#11161) (5a4088d)
(es/parser) Support literal computed property names in enums (#11163) (146c77c)
<!-- generated by git-cliff -->
(es/minifier) Fix inlining of hoisted functions
(es/react) Use correct span for @jsxFrag as null literal
(es/parser) Handle JSX attributes with keyword prefixes correctly
Your coding agent can read these notes before it upgrades. Set up the MCP server →