What swc-project/swc shipped
Written by FoxPlug from the repository's own releases; not affiliated with SWC. Paste your own repository in the box below and FoxPlug writes the same weekly update for your product. This page is an automatic summary of the releases, pull requests and commits in github.com/swc-project/swc; SWC did not write it and does not use or endorse FoxPlug. Every line links to the change it describes.
Get a weekly update like this for your product, free
Week of October 5, 2026
What shipped
- Fixed code generation so a TypeScript non-null assertion is not merged with a following equality or assignment operator. Pull request #12504
- Fixed code generation so TSX generic arrow functions can no longer be printed in a form that is ambiguous with JSX. Pull request #12505
- Native addon loading on Unix now retries in the canonicalized system temporary directory when the user cache root is unusable. Pull request #12500
- Minifier now checks declarations for side effects, a breaking change that fixes an incorrect removal. Pull request #12501
- Raised the minimum supported Rust version for the native addon crates to 1.85 so the Windows MSRV check can parse dependencies. Pull request #12491
- Repaired an empty crate release changeset so cargo bump could update crate versions again. Pull request #12499
- Set release build flags so s390x builds assemble psm with the z10 baseline instead of failing. Pull request #12489
- Removed cold-load performance limits on every OS from the shared runtime validator and final release gate. Pull request #12502
- Added a repository rule against using issue-linked pull requests or other people's SWC forks as references. Pull request #12513
- Reverted configurable output indentation after internal discussion decided to leave it unsupported. Pull request #12493
Why it matters
This week fixed code generation bugs that could change the meaning of TypeScript non-null assertions and produce ambiguous TSX, and the minifier now checks declarations for side effects. It also unblocked releases by fixing the crate changeset, raising the native addon MSRV, correcting s390x build flags, and removing cold-load performance limits that blocked native releases.
Changelog entry
- Fix(es/codegen): preserve non-null token boundaries Pull request #12504
- Fix(es/codegen): disambiguate TSX generic arrows Pull request #12505
- Fix(bindings): fall back to a safe cache root on Unix Pull request #12500
- Fix(es/minifier): check decl for side effect Pull request #12501
- Fix(ci): raise native addon MSRV to Rust 1.85 Pull request #12491
- Fix(ci): repair empty crate release changeset Pull request #12499
- Fix(ci): match Rust's z10 baseline in s390x release builds Pull request #12489
- Chore(ci): remove cold-load performance limits on all OSes Pull request #12502
- Docs: prohibit references to issue-linked PRs and external SWC forks Pull request #12513
- Revert feat(es/codegen)!: support configurable output indentation Pull request #12493
- Release: v1.16.18 Release
- Release: swc_core@v82.0.2 Release
This week: non-null assertion and TSX generic arrow codegen fixes, a minifier side-effect check, Unix native binding cache fallback, native addon MSRV raised to Rust 1.85, s390x release build fix, and a repaired crate release changeset.
This week brought several fixes across the compiler. Code generation now preserves non-null assertion boundaries so equality and assignment operators are not merged, and TSX generic arrow output is disambiguated from JSX. The minifier checks declarations for side effects. On bindings, native addon loading on Unix falls back to the system temporary directory when the cache root is unusable. Release work included repairing an empty crate release changeset, raising the native addon MSRV to Rust 1.85, matching Rust's z10 baseline in s390x builds, and removing cold-load performance limits on all OSes.
Week of September 28, 2026
What shipped
- JSX sequence expressions now preserve parentheses in expression containers and spread correctly across returns, statements, and arrow bodies. Pull request #12485
- Consecutive loop labels are now preserved when lowering for...of loops instead of moving outer labels to the enclosing try block. Pull request #12472
- Source map paths in --out-dir output are now resolved relative to the output directory instead of the current working directory. Pull request #12481
- Template literal scanning now uses byte search to skip 32-byte batches of ordinary text instead of scanning one byte at a time. Pull request #12474
- For-await loops in native async functions now lower correctly for targets like Chrome 60 that support async but not async iteration. Pull request #12414
- Minifier now accounts for shorthand property expansion when inlining to reduce bundle size in complex object scenarios. Pull request #12428
- React compiler mode now applies fast checks before AST conversion to prevent stack overflow on long call chains in non-React files. Pull request #12473
- Configuration deserialization errors now report the actual serde error for object values instead of a generic message. Pull request #12441
- Windows native binding loading now falls back to a secure profile cache when the default LocalAppData cache has permission issues. Pull request #12452
- Unix native addon loading can now skip cache root security checks with SWC_NATIVE_BINDING_CACHE_SKIP_SECURITY_CHECK=1 for isolated environments. Pull request #12469
Why it matters
This week includes fixes for JSX rendering, source maps, loop transformations, and template parsing that improve correctness across common use cases. Performance improvements to template scanning and minification, plus better error messages for configuration issues, help developers debug problems faster. Native binding loading improvements address real deployment pain points in Windows and Unix environments.
Changelog entry
- Fix(es/fixer): preserve parentheses in JSX sequence expressions Pull request #12485
- Fix(es/compat): preserve consecutive loop labels when lowering for...of Pull request #12472
- Fix(cli): resolve out-dir source map paths relative to output Pull request #12481
- Perf(es/parser): scan template literals with byte search Pull request #12474
- Fix(es/preset-env): lower for-await in native async functions Pull request #12414
- Feat(es/minifier): account for shorthand expansion when inlining Pull request #12428
- Fix(react-compiler): protect long call chains from stack overflow Pull request #12473
- Fix(
swc_config): show why an options object failed to deserialize Pull request #12441 - Fix(bindings): fall back to a secure Windows profile cache Pull request #12452
- Fix(bindings): allow opting out of Unix cache root security checks Pull request #12469
SWC shipped fixes for JSX parentheses, for-await lowering, source maps, loop labels, template scanning, and minifier inlining. Plus improvements to native bindings for Windows and Unix deployments.
This week's SWC updates focus on correctness and performance across compilation and tooling. JSX sequence expressions now preserve parentheses correctly, consecutive loop labels stay intact during transformation, and for-await properly lowers in async functions. Template literal scanning got a 32-byte vectorized boost, and the minifier better accounts for property expansion. Configuration errors now show real serde messages. Windows and Unix native binding loading both gained fallback paths for permission issues.
Week of September 21, 2026
What shipped
- Released
swc_corev81.0.0 Release - Fixed HTML minification to preserve adjacent script and SVG script elements, preventing evaluation boundary changes and CSP hash mismatches Pull request #12411
- Added parsing support for optional renamed Flow component parameters like foo as bar?: T Pull request #12410
- Fixed HTML parser to preserve customizable select markup and rich option content instead of dropping them as stray tags Pull request #12413
- Fixed minifier bug where arrow functions with this references were incorrectly inlined when used as arguments Pull request #12409
- Fixed tree shaker to keep function and class declarations whose self-references are dropped Pull request #12401
- Fixed minifier to mark properties assigned through destructuring targets as mutated, preventing invalid JavaScript generation Pull request #12398
- Added support for escaped keywords as property names, such as ({ br\u0065ak: 42 }).br\u0065ak Pull request #12358
- Completed Node.js/Amaro REPL support APIs so static imports properly declare bindings for later REPL inputs Pull request #12395
- Reverted per-site pure comment handling for property reads and unused member access optimization Pull request #12419
Why it matters
This week addresses critical correctness issues in minification, HTML parsing, and property handling that were producing invalid or unexpected JavaScript. Parser improvements for Flow syntax and escaped keywords expand language coverage, while the new REPL support completes a Node.js integration feature.
Changelog entry
- Swc_core v81.0.0 released Release
- Fix(html/minifier): Preserve adjacent script and SVG script elements during minification Pull request #12411
- Fix(es/parser): Parse optional renamed Flow component parameters Pull request #12410
- Fix(html/parser): Preserve customizable select markup and rich option content Pull request #12413
- Fix(es/minifier): Avoid inlining arrow functions with this when used as arguments Pull request #12409
- Fix(es/parser): Allow escaped keywords as property and import/export names Pull request #12358
- Fix(es/minifier): Keep function and class declarations with dropped self-references Pull request #12401
- Fix(es/minifier): Mark properties assigned through destructuring targets as mutated Pull request #12398
- Fix(nodejs): Complete Amaro REPL support APIs for Node.js imports Pull request #12395
- Revert(es/minifier): Revert per-site pure comment handling and unused member access optimization Pull request #12419
Swc v81.0.0 ships fixes for script element merging, destructuring property mutations, function self-references, and escaped keywords. HTML parsing now preserves select markup correctly.
Swc v81.0.0 is out with significant correctness fixes: HTML minifier now preserves adjacent script elements to maintain evaluation boundaries and CSP hashes, the minifier tracks destructuring assignments to prevent invalid code generation, and the tree shaker keeps functions whose self-references are removed. Parser improvements add Flow component parameter support and escaped keyword handling.