<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[SWC: The Rust-based platform for the Web]]></title><description><![CDATA[SWC: The Rust-based platform for the Web]]></description><link>https://blog.swc.rs</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Apr 2026 11:27:36 GMT</lastBuildDate><atom:link href="https://blog.swc.rs/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Announcing Backward Compatibility for Wasm plugins]]></title><description><![CDATA[We are thrilled to announce a major quality-of-life improvement for the entire SWC ecosystem. Starting from @swc/core v1.15.0, our Wasm plugins are now backward-compatible!
Previously, developers using Wasm plugins often had to update them with each ...]]></description><link>https://blog.swc.rs/2025-11-4-wasm-backward-compatibility</link><guid isPermaLink="true">https://blog.swc.rs/2025-11-4-wasm-backward-compatibility</guid><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Tue, 04 Nov 2025 10:18:31 GMT</pubDate><content:encoded><![CDATA[<p>We are thrilled to announce a major quality-of-life improvement for the entire SWC ecosystem. <strong>Starting from</strong> <code>@swc/core</code> v1.15.0, our Wasm plugins are now backward-compatible!</p>
<p>Previously, developers using Wasm plugins often had to update them with each new release of <code>@swc/core</code> to ensure compatibility. This created friction, added maintenance overhead, and could disrupt development workflows.</p>
<p>Thanks to the introduction of a stable Application Binary Interface (ABI), this is no longer the case. A Wasm plugin compiled against v1.15.0 will now work seamlessly with future versions of SWC. This change dramatically improves stability and reduces the maintenance burden for both plugin authors and end-users.</p>
<p>This significant achievement was made possible by the incredible work on <a target="_blank" href="https://github.com/swc-project/swc/pull/11198">PR #11198</a>. We want to extend our heartfelt gratitude to <a target="_blank" href="http://github.com/quininer">quininer on Github</a> and the rspack team for their pivotal contributions and dedication.</p>
<p>This enhancement will directly improve the developer experience for everyone using the SWC project, as well as for users of downstream projects such as rspack and next.js.</p>
<p>Upgrade to v1.15.0 today and enjoy a more stable and seamless plugin experience!</p>
<blockquote>
<p>Note: Still, some changes are not backward-compatible, but it’s now much easier to avoid a breaking chnage and we will.</p>
</blockquote>
]]></content:encoded></item><item><title><![CDATA[SWC plugin registry]]></title><description><![CDATA[Recently, I've been preoccupied with Wasm plugin compatibility issues in swc. I realized that backward compatibility would be difficult to achieve right now, so I decided to create a plugin registry that I had been putting off.
The first thing that d...]]></description><link>https://blog.swc.rs/2024-8-27-swc-plugin-registry</link><guid isPermaLink="true">https://blog.swc.rs/2024-8-27-swc-plugin-registry</guid><category><![CDATA[swc]]></category><category><![CDATA[wasm]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Mon, 26 Aug 2024 15:00:00 GMT</pubDate><content:encoded><![CDATA[<p>Recently, I've been preoccupied with Wasm plugin compatibility issues in swc. I realized that backward compatibility would be difficult to achieve right now, so I decided to create a plugin registry that I had been putting off.</p>
<p>The first thing that determines if a Wasm plugin and host runtime are compatible is the version of <code>swc_core</code>. The version of <code>swc_core</code> used by the host and the Wasm plugin must be in the same <em>range</em>, but previously, these ranges were only documented, making it overly complicated for users to figure out which version of the plugin they should use.</p>
<p>It was also quite annoying for me, as the official SWC npm package (<code>@swc/core</code>) and the latest version of <code>next.js</code> often had different plugin versions supported by the latest version, which was problematic.</p>
<p>So, I decided to create a plugin registry. As a first step, I entered the data of compatible <code>swc_core</code> versions into the DB as static data. I named the model <strong><em>Compat Range</em></strong>. Then, I wrote a script to determine which version of <code>swc_core</code> each package can run SWC Wasm plugins, such as <code>@swc/core</code>, <code>next.js</code>, and <code>rspack</code>, uses. By cloning the repo and traversing all the git tags to find the dependency versions, I was able to put all the versions of <code>swc_core</code> that each version uses into the DB.</p>
<p>From this point on, I was able to do package name + version =&gt; <code>swc_core</code> version =&gt; <strong><em>Compat Range</em></strong>. But I wanted to include a link in the error message for <code>swc_plugin_runner</code> that would open the page for that <em>Compat Range</em> directly, so I scraped all the versions of <code>swc_plugin_runner</code>, <code>swc_core</code>, and put these crates from the <a target="_blank" href="http://crates.io">crates.io</a> index into the DB. <em>Compat Range</em> can now be found by <code>swc_plugin_runner</code> version, so I included the version information in the error message for <code>swc_plugin_runner</code> and put a link directly to the <em>Compat Range</em> page.</p>
<p>Now I'm thinking about how to include the version data of the <code>swc_core</code> used by the Wasm plugin in the <em>Compat Range</em>. This would allow the <em>Compat Range</em> page that `swc_plugin_runner` shows when a compatibility issue pops up to also show which version of the Wasm plugin is compatible with the runtime the user is using.</p>
<p>However, since Wasm plugins are mostly small projects, some don't use git tags, so using git tags was not an option. Even the official plugins the SWC project team maintains don't use git tags. So, I decided to traverse the entire git log.</p>
<p>It's a bit complicated.</p>
<ol>
<li><p>Write down the repository URL and the names of the npm packages in a yaml file.</p>
</li>
<li><p>Make a git clone of the source code.</p>
</li>
<li><p>Check out the first commit.</p>
</li>
<li><p>Advance the commits one by one, looking for all <code>package.json</code> files and see if there is a <code>package.json</code> file for the SWC Wasm plugin.</p>
</li>
<li><p>If it does, treat that commit as a “deploy” commit.</p>
</li>
<li><p>Once we've traversed to the most recent commit, we cache the information we found.</p>
</li>
<li><p>Now that you have a list of “deployment” commits, traverse through them to find the <code>Cargo.lock</code> file.</p>
<ol>
<li><p>If the repository root has a <code>Cargo.lock</code> file, use it via <code>git show</code>.</p>
</li>
<li><p>If not, check out that commit and look for all files named <code>Cargo.lock</code> in that repository.</p>
</li>
</ol>
</li>
<li><p>If there is only one <code>Cargo.lock</code> file, or if all <code>Cargo.lock</code> files have the same <code>swc_core</code> version, use that version.</p>
</li>
<li><p>Cache the commit =&gt; the <code>swc_core</code> version map.</p>
</li>
</ol>
<p>I did this because when a new version of the plugin is released, we only need to check the newly added commits. For reference, the source code is publicly available at <a target="_blank" href="https://github.com/swc-project/crawl-core-version">https://github.com/swc-project/crawl-core-version</a>.</p>
<p>I haven't put the Wasm plugins' versions on the website yet, but I'll do that tomorrow, and it shouldn't take long. In the meantime, I apologize for making you worry about the <code>swc_core</code> version. That shouldn't be the case now. We won't be able to fix the compatibility issues anytime soon, but we'll do our best to ensure you can use the Wasm plugins without too much trouble.</p>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.100]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Bugfixes
ES parser

https://github.com/swc-project/swc/pull/8332

ES codegen

https://github.com/swc-project/swc/pull/8346

https://github.com/swc-project/swc/pull/8351


ES: fixer pass

https://github.com/swc-project/...]]></description><link>https://blog.swc.rs/changelog-v1-3-100</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-100</guid><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Thu, 30 Nov 2023 05:22:12 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/d19de29937b4a336412e076e862d0aa63be245a7/CHANGELOG.md#13100---2023-11-30">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/458?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h1 id="heading-bugfixes">Bugfixes</h1>
<h2 id="heading-es-parser">ES parser</h2>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8332">https://github.com/swc-project/swc/pull/8332</a></li>
</ul>
<h2 id="heading-es-codegen">ES codegen</h2>
<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8346">https://github.com/swc-project/swc/pull/8346</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8351">https://github.com/swc-project/swc/pull/8351</a></p>
</li>
</ul>
<h2 id="heading-es-fixer-pass">ES: <code>fixer</code> pass</h2>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8357">https://github.com/swc-project/swc/pull/8357</a></li>
</ul>
<h2 id="heading-es-decorators-pass">ES: <code>decorators</code> pass</h2>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8320">https://github.com/swc-project/swc/pull/8320</a></li>
</ul>
<h2 id="heading-es-jsx-pass">ES: <code>jsx</code> pass</h2>
<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8339">https://github.com/swc-project/swc/pull/8339</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8318">https://github.com/swc-project/swc/pull/8318</a></p>
</li>
</ul>
<h2 id="heading-es-renamer-pass">ES: <code>renamer</code> pass</h2>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8327">https://github.com/swc-project/swc/pull/8327</a></li>
</ul>
<h2 id="heading-es-minifier">ES Minifier</h2>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8342">https://github.com/swc-project/swc/pull/8342</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.99]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Note: v1.3.98 is skipped because CI failed, and we want to keep git tags immutable.

This is a very large release. So please check the links above.]]></description><link>https://blog.swc.rs/changelog-v1-3-99</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-99</guid><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Tue, 21 Nov 2023 08:43:52 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/23fdaf13f88c754c7e610f96712092684f7a2dd0/CHANGELOG.md#1398---2023-11-21">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/457?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<p>Note: <code>v1.3.98</code> is skipped because CI failed, and we want to keep git tags immutable.</p>
<hr />
<p>This is a very large release. So please check the links above.</p>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.97]]></title><description><![CDATA[CHAGNELOG.md

Full ChangeLog



This patch is mostly about the performance improvement.
Bugfix: ascii_only: false

PR: https://github.com/swc-project/swc/pull/8217

Performance improvements
hstr instead of string-cache

PR: https://github.com/swc-pro...]]></description><link>https://blog.swc.rs/changelog-v1-3-97</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-97</guid><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Thu, 09 Nov 2023 06:20:49 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/60455b0e3abee6112c50c3bf6895503a45c6d53e/CHANGELOG.md#1397---2023-11-09">CHAGNELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/455?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<p>This patch is mostly about the performance improvement.</p>
<h1 id="heading-bugfix-asciionly-false">Bugfix: <code>ascii_only: false</code></h1>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8217">https://github.com/swc-project/swc/pull/8217</a></li>
</ul>
<h1 id="heading-performance-improvements">Performance improvements</h1>
<h2 id="heading-hstr-instead-of-string-cache"><code>hstr</code> instead of <code>string-cache</code></h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/issues/8126">https://github.com/swc-project/swc/issues/8126</a></li>
</ul>
<p><code>hstr</code> is a new string interning library designed for the Rust-side compilers. This is designed to avoid costly operations like <code>strcmp</code> as much as possible.</p>
<p>I'll write a detailed post about it in the near future.</p>
<h2 id="heading-parser-trivial-optimizations">Parser trivial optimizations</h2>
<h3 id="heading-removal-of-rcclone">Removal of <code>Rc::clone</code></h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8231">https://github.com/swc-project/swc/pull/8231</a></li>
</ul>
<h3 id="heading-removal-of-strcmp">Removal of <code>strcmp</code></h3>
<ul>
<li>PR:<a target="_blank" href="https://github.com/swc-project/swc/pull/8223">https://github.com/swc-project/swc/pull/8223</a></li>
</ul>
<h3 id="heading-really-trivial-ones">Really trivial ones</h3>
<ul>
<li>PR:<a target="_blank" href="https://github.com/swc-project/swc/pull/8224">https://github.com/swc-project/swc/pull/8224</a></li>
</ul>
<h3 id="heading-smarter-lookup-table">Smarter lookup table</h3>
<ul>
<li>PR:<a target="_blank" href="https://github.com/swc-project/swc/pull/8226">https://github.com/swc-project/swc/pull/8226</a></li>
</ul>
<h2 id="heading-minifier-trivial-optimizations">Minifier trivial optimizations</h2>
<h3 id="heading-removal-of-needless-operations-in-the-name-mangler">Removal of needless operations in the name mangler</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8222">https://github.com/swc-project/swc/pull/8222</a></li>
</ul>
<h2 id="heading-transform-trivial-optimizations">Transform trivial optimizations</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8213">https://github.com/swc-project/swc/pull/8213</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[Welcome the new core team members]]></title><description><![CDATA[Today we have some very exciting news to share: two people are joining the core team, both of whom have contributed a great deal to SWC, one of whom goes by the username @magic-akari and the other by the username @Austaras. They are both very deservi...]]></description><link>https://blog.swc.rs/welcome-the-new-core-team-members</link><guid isPermaLink="true">https://blog.swc.rs/welcome-the-new-core-team-members</guid><category><![CDATA[swc]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Sun, 05 Nov 2023 01:41:37 GMT</pubDate><content:encoded><![CDATA[<p>Today we have some very exciting news to share: two people are joining the core team, both of whom have contributed a great deal to SWC, one of whom goes by the username <a target="_blank" href="https://github.com/magic-akari"><code>@magic-akari</code></a> and the other by the username <a target="_blank" href="https://github.com/Austaras"><code>@Austaras</code></a>. They are both very deserving of being on the core team, and I think we should have invited them to join the core team a long time ago, but due to my (<a target="_blank" href="http://github.com/kdy1"><code>@kdy1</code></a>) personal circumstances, it was put on hold.</p>
<p>We want to improve the documentation, we want to provide more plugins, and we want to do community management as a team.</p>
<p>I started the SWC project by myself a long time ago, but SWC has already outgrown the size of one person. I am only able to maintain the SWC project now because of the help of many people.</p>
<p>The goal is to make SWC a project that is stable enough and supports a lot of use cases so that any company or organization can adopt it without too much worry. We will also be expanding its functionality further to match the name Speedy Web Compiler and its original goals.</p>
<p>SWC has implemented libraries for handling CSS, XML, and HTML, which are so high quality that they pass all web standards test cases except for the weird ones where the behavior is different in different browsers. We'll be making these modules available as npm packages as well. We'll also be implementing a semver solver to reduce compilation time for people using SWC on the Rust side.</p>
<p>It's a lot of work, but I'm not trying to do it all myself, so if you're interested, please reach out to me on Twitter <a target="_blank" href="https://twitter.com/kdy1dev">@kdy1dev</a> or at <a target="_blank" href="mailto:kdy.1997.dev@gmail.com">kdy.1997.dev@gmail.com</a>.</p>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.96]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Patches for transform()
Bugfixes
block-scoping

PR: https://github.com/swc-project/swc/pull/8175

PURE comment of parameters pass

PR: https://github.com/swc-project/swc/pull/8202

PURE comment of BytePos(0)

PR: https...]]></description><link>https://blog.swc.rs/changelog-v1-3-96</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-96</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Fri, 03 Nov 2023 21:51:43 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/808547f59267e4bec5c7f6ec3f3c8acb04c6f305/CHANGELOG.md#1396---2023-11-03">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/454?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h1 id="heading-patches-for-transform">Patches for <code>transform()</code></h1>
<h2 id="heading-bugfixes">Bugfixes</h2>
<h3 id="heading-block-scoping"><code>block-scoping</code></h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8175">https://github.com/swc-project/swc/pull/8175</a></li>
</ul>
<h3 id="heading-pure-comment-of-parameters-pass"><code>PURE</code> comment of <code>parameters</code> pass</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8202">https://github.com/swc-project/swc/pull/8202</a></li>
</ul>
<h3 id="heading-pure-comment-of-bytepos0"><code>PURE</code> comment of <code>BytePos(0)</code></h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8207">https://github.com/swc-project/swc/pull/8207</a></li>
</ul>
<h3 id="heading-private-properties-with-optional-chaining">private properties with optional chaining</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8090">https://github.com/swc-project/swc/pull/8090</a></li>
</ul>
<h3 id="heading-debugging-mode-of-jsx">Debugging mode of JSX</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8212">https://github.com/swc-project/swc/pull/8212</a></li>
</ul>
<h1 id="heading-patches-for-minify">Patches for <code>minify()</code></h1>
<h2 id="heading-bugfixes-1">Bugfixes</h2>
<h3 id="heading-analyzer-refactoring">Analyzer refactoring</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8164">https://github.com/swc-project/swc/pull/8164</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.95]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



CVE Update

PR: https://github.com/swc-project/swc/pull/8174

This does not apply to the most of the users because SWC is a compiler and the input to the hash function is quite restricted.
Minifier bugfix

PR: https://...]]></description><link>https://blog.swc.rs/changelog-v1-3-95</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-95</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Tue, 24 Oct 2023 15:22:08 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/dc21f791769a218ecf94f78df85a685ccdf5f328/CHANGELOG.md#1395---2023-10-24">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/453?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h1 id="heading-cve-update">CVE Update</h1>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8174">https://github.com/swc-project/swc/pull/8174</a></li>
</ul>
<p>This does not apply to the most of the users because SWC is a compiler and the input to the hash function is quite restricted.</p>
<h1 id="heading-minifier-bugfix">Minifier bugfix</h1>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8168">https://github.com/swc-project/swc/pull/8168</a></li>
</ul>
<h1 id="heading-compat-bugfix">Compat bugfix</h1>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8172">https://github.com/swc-project/swc/pull/8172</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v.1.3.94]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Minifier bugfixes
There were a bunch of minifier bug fixes.

https://github.com/swc-project/swc/pull/8128

https://github.com/swc-project/swc/pull/8145


Minifier improvements

https://github.com/swc-project/swc/pull/8...]]></description><link>https://blog.swc.rs/changelog-v1-3-94</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-94</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Fri, 20 Oct 2023 19:00:00 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/5c8a14bd695dc610306fcb9c47ede9fbc4d017a4/CHANGELOG.md#1394---2023-10-21">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/452?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h1 id="heading-minifier-bugfixes">Minifier bugfixes</h1>
<p>There were a bunch of minifier bug fixes.</p>
<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8128">https://github.com/swc-project/swc/pull/8128</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8145">https://github.com/swc-project/swc/pull/8145</a></p>
</li>
</ul>
<h1 id="heading-minifier-improvements">Minifier improvements</h1>
<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8109">https://github.com/swc-project/swc/pull/8109</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8127">https://github.com/swc-project/swc/pull/8127</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8152">https://github.com/swc-project/swc/pull/8152</a></p>
</li>
</ul>
<h1 id="heading-compat-bugfixes">Compat bugfixes</h1>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8158">https://github.com/swc-project/swc/pull/8158</a></li>
</ul>
<h1 id="heading-compat-improvements">Compat improvements</h1>
<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8097">https://github.com/swc-project/swc/pull/8097</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8138">https://github.com/swc-project/swc/pull/8138</a></p>
</li>
</ul>
<h1 id="heading-api-improvement">API Improvement</h1>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8163">https://github.com/swc-project/swc/pull/8163</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.93]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Bugfixes for transpiler
await using

PR: https://github.com/swc-project/swc/pull/8101

Helpers

PR: https://github.com/swc-project/swc/pull/8076

Decorators

PR: https://github.com/swc-project/swc/pull/8102

PR: https:...]]></description><link>https://blog.swc.rs/changelog-v1-3-93</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-93</guid><category><![CDATA[Changelog]]></category><category><![CDATA[swc]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Fri, 13 Oct 2023 05:57:52 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/787a465d8d87ac5a10dbf93f950c0af812e5364f/CHANGELOG.md#1393---2023-10-13">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/451?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h1 id="heading-bugfixes-for-transpiler">Bugfixes for transpiler</h1>
<h2 id="heading-await-using"><code>await using</code></h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8101">https://github.com/swc-project/swc/pull/8101</a></li>
</ul>
<h2 id="heading-helpers">Helpers</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8076">https://github.com/swc-project/swc/pull/8076</a></li>
</ul>
<h2 id="heading-decorators">Decorators</h2>
<ul>
<li><p>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8102">https://github.com/swc-project/swc/pull/8102</a></p>
</li>
<li><p>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8099">https://github.com/swc-project/swc/pull/8099</a></p>
</li>
</ul>
<h2 id="heading-shorthand">Shorthand</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8077">https://github.com/swc-project/swc/pull/8077</a></li>
</ul>
<h1 id="heading-bugfixes-for-minifier">Bugfixes for minifier</h1>
<h2 id="heading-better-support-for-keepfnames">Better support for <code>keep_fnames</code></h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8093">https://github.com/swc-project/swc/pull/8093</a></li>
</ul>
<p>The inliner now aborts correctly if the option is enabled, and the inline source is a function to avoid name conflict.</p>
]]></content:encoded></item><item><title><![CDATA[nightly builds of @swc/core are now available]]></title><description><![CDATA[Today, we configured the build pipeline for nightly builds of @swc/core. You can try it by running the command below in your terminal.
# npm
npm i -D @swc/core@nightly
# yarn
yarn add -D @swc/core@nightly
# pnpm
pnpm i -D @swc/core@nightly

nightly b...]]></description><link>https://blog.swc.rs/2023-10-12-nightly-builds-of-swc-core</link><guid isPermaLink="true">https://blog.swc.rs/2023-10-12-nightly-builds-of-swc-core</guid><category><![CDATA[swc]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Thu, 12 Oct 2023 03:25:23 GMT</pubDate><content:encoded><![CDATA[<p>Today, we configured the build pipeline for nightly builds of <code>@swc/core</code>. You can try it by running the command below in your terminal.</p>
<pre><code class="lang-bash"><span class="hljs-comment"># npm</span>
npm i -D @swc/core@nightly
<span class="hljs-comment"># yarn</span>
yarn add -D @swc/core@nightly
<span class="hljs-comment"># pnpm</span>
pnpm i -D @swc/core@nightly
</code></pre>
<p><code>nightly</code> builds are automatically published once per day, and we are going to prolong the release cycle of <code>latest</code> builds.</p>
<p>(Special thanks to GitHub and Microsoft, for sponsoring enormous amount of computing time for all OSS projects)</p>
<hr />
<p>In the future, we are going to use this to improve the stability of <code>@swc/core</code>. The users can check if a newer version of <code>@swc/core</code> has a bug that can break their app, without building <code>@swc/core</code> by themselves. But this also applies to the core team. We are going to build a huge CI that runs periodically and check if the app breaks with the nightly version of <code>@swc/core</code>.</p>
<p>Honestly, I (<a class="user-mention" href="https://hashnode.com/@kdy1">DongYoon Kang</a> ) wanted to add telemetry or automatic error reporting for <code>unreachable!()</code>s because they will help prioritize issues, but I think we will go with opt-in telemetry, even in case we add one.</p>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.92]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Fixes for transpiler
Decorator

PR: https://github.com/swc-project/swc/pull/8050

Module

PR: https://github.com/swc-project/swc/pull/8048

Variable scoping
async/await

PR: https://github.com/swc-project/swc/pull/8056...]]></description><link>https://blog.swc.rs/changelog-v1-3-92</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-92</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Thu, 05 Oct 2023 07:31:40 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/a35fed015fdb3bdf7d388f50b9edeef46016b01d/CHANGELOG.md#1392---2023-10-05">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/450?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h1 id="heading-fixes-for-transpiler">Fixes for transpiler</h1>
<h2 id="heading-decorator">Decorator</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8050">https://github.com/swc-project/swc/pull/8050</a></li>
</ul>
<h2 id="heading-module">Module</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8048">https://github.com/swc-project/swc/pull/8048</a></li>
</ul>
<h2 id="heading-variable-scoping">Variable scoping</h2>
<h3 id="heading-asyncawait">async/await</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8056">https://github.com/swc-project/swc/pull/8056</a></li>
</ul>
<h3 id="heading-explicit-resource-management">Explicit resource management</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8044">https://github.com/swc-project/swc/pull/8044</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.91]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Experiment: @swc/minifier
We are experimenting with a smaller package, namely @swc/minifier. It only contains the code required for the minification of ECMAScript.
@swc/html & @swc/xml (future)
We will publish our HTML...]]></description><link>https://blog.swc.rs/changelog-v1-3-91</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-91</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Sun, 01 Oct 2023 12:03:23 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/13161c45cd981b584e6d0bc3077ebe36154485e4/CHANGELOG.md#1391---2023-10-01">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/449?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h1 id="heading-experiment-swcminifier">Experiment: <code>@swc/minifier</code></h1>
<p>We are experimenting with a smaller package, namely <code>@swc/minifier</code>. It only contains the code required for the minification of ECMAScript.</p>
<h2 id="heading-swchtml-amp-swcxml-future"><code>@swc/html</code> &amp; <code>@swc/xml</code> (future)</h2>
<p>We will publish our HTML / XML processing module as npm packages soon.</p>
<h1 id="heading-bugfixes">Bugfixes</h1>
<h2 id="heading-typescript">TypeScript</h2>
<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8029">https://github.com/swc-project/swc/pull/8029</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/pull/8018">https://github.com/swc-project/swc/pull/8018</a></p>
</li>
</ul>
<p>These are continuous works to fix regressions caused by the implementation.</p>
<h2 id="heading-es-minifier">ES Minifier</h2>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8036">https://github.com/swc-project/swc/pull/8036</a></li>
</ul>
<h2 id="heading-es-transpiler">ES Transpiler</h2>
<h3 id="heading-private-field-with-optional-chaining">Private field with optional chaining</h3>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8031">https://github.com/swc-project/swc/pull/8031</a></li>
</ul>
<h3 id="heading-decorators">Decorators</h3>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8017">https://github.com/swc-project/swc/pull/8017</a></li>
</ul>
<h3 id="heading-more-conformance-to-esm-specification">More conformance to ESM specification</h3>
<ul>
<li><a target="_blank" href="https://github.com/swc-project/swc/pull/8024">https://github.com/swc-project/swc/pull/8024</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.90]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Fix for TypeScript regression of the previous version

PR: https://github.com/swc-project/swc/pull/8008

PR: https://github.com/swc-project/swc/pull/8012


As the previous version was a complete implementation of the T...]]></description><link>https://blog.swc.rs/changelog-v1-3-90</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-90</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Wed, 27 Sep 2023 01:46:36 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/8231f874e759ad32ef75a79b18afc4ae163381b8/CHANGELOG.md#1390---2023-09-27">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/448?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h3 id="heading-fix-for-typescript-regression-of-the-previous-version">Fix for TypeScript regression of the previous version</h3>
<ul>
<li><p>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8008">https://github.com/swc-project/swc/pull/8008</a></p>
</li>
<li><p>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8012">https://github.com/swc-project/swc/pull/8012</a></p>
</li>
</ul>
<p>As the previous version was a complete implementation of the TypeScript pass, it introduced a few bugs. And those are fixed right away.</p>
<h3 id="heading-fix-for-codegen-of-optional-chaining">Fix for codegen of optional chaining</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/8005">https://github.com/swc-project/swc/pull/8005</a></li>
</ul>
<p>The issue was about TypeScript type case, but the problem was the ES code generator not checking the <code>base</code> of <code>OptChainExpr</code>s.</p>
<h3 id="heading-fix-for-codegen-of-unicode-surrogates">Fix for codegen of unicode surrogates</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7985">https://github.com/swc-project/swc/pull/7985</a></li>
</ul>
<p>Personally, this is a type of coding I'm very vulnerable to, but I dit solve it well.</p>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.89]]></title><description><![CDATA[CHANGELOG.MD

Full ChangeLog



jsc.baseUrl now works without jsc.paths

PR: https://github.com/swc-project/swc/pull/7998


Block-scoped functions are mostly preserved

PR: https://github.com/swc-project/swc/pull/7975


TypeScript passes are reimplem...]]></description><link>https://blog.swc.rs/changelog-v1-3-89</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-89</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Mon, 25 Sep 2023 13:26:55 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/243d68d8dcefd76f2af685095ff5eb7346a1b85b/CHANGELOG.md#1389---2023-09-25">CHANGELOG.MD</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/447?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h2 id="heading-jscbaseurl-now-works-without-jscpaths"><code>jsc.baseUrl</code> now works without <code>jsc.paths</code></h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7998">https://github.com/swc-project/swc/pull/7998</a></li>
</ul>
<hr />
<h3 id="heading-block-scoped-functions-are-mostly-preserved">Block-scoped functions are mostly preserved</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7975">https://github.com/swc-project/swc/pull/7975</a></li>
</ul>
<hr />
<h3 id="heading-typescript-passes-are-reimplemented">TypeScript passes are reimplemented</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7202">https://github.com/swc-project/swc/pull/7202</a></li>
</ul>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.88]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Return of jsc.experimental.keepImportAssertions

PR: https://github.com/swc-project/swc/pull/7995

To help ts-node users, I added an alias for an experimental option back.
@swc/counter : The download counter

PR: https...]]></description><link>https://blog.swc.rs/changelog-v1-3-88</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-88</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Sun, 24 Sep 2023 05:02:56 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/489797f1cfed5f04021d0f8a1d7f8b02ffd310ad/CHANGELOG.md#1388---2023-09-24"><strong>CHANGELOG.md</strong></a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/445?closed=1"><strong>Full ChangeLog</strong></a></p>
</li>
</ul>
<hr />
<h3 id="heading-return-of-jscexperimentalkeepimportassertions">Return of <code>jsc.experimental.keepImportAssertions</code></h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7995">https://github.com/swc-project/swc/pull/7995</a></li>
</ul>
<p>To help <code>ts-node</code> users, I added an alias for an experimental option back.</p>
<h3 id="heading-swccounter-the-download-counter"><code>@swc/counter</code> : The download counter</h3>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7991">https://github.com/swc-project/swc/pull/7991</a></li>
</ul>
<p>If you are writing a tool that uses SWC under the hood (in runtime) and published to npm, please considering depending on <code>@swc/counter</code></p>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.87]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Fix for nullish coalescing

PR: https://github.com/swc-project/swc/pull/7980

Previously SWC produced an invalid code if an arrow function is mixed with ?? operator.
Fix for minification of template literals

PR: https...]]></description><link>https://blog.swc.rs/changelog-v1-3-87</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-87</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Fri, 22 Sep 2023 02:13:50 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/276be28ae132758d4584f81a4c9d857f2725ae4c/CHANGELOG.md#1387---2023-09-22">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/444?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h2 id="heading-fix-for-nullish-coalescing">Fix for nullish coalescing</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7980">https://github.com/swc-project/swc/pull/7980</a></li>
</ul>
<p>Previously SWC produced an invalid code if an arrow function is mixed with <code>??</code> operator.</p>
<h2 id="heading-fix-for-minification-of-template-literals">Fix for minification of template literals</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7971">https://github.com/swc-project/swc/pull/7971</a></li>
</ul>
<p>SWC minifier has multiple kinds of inliner, and one of them inlined variables into the template literals even though it shouldn't. It's now fixed.</p>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.86]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Static-linked msvc runtime

PR: https://github.com/swc-project/swc/pull/7965

This PR will make user without msvc runtime installed happy.
Preserve instead of panic for jsc.paths

PR: https://github.com/swc-project/swc...]]></description><link>https://blog.swc.rs/changelog-v1-3-86</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-86</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Mon, 18 Sep 2023 15:00:00 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/199a13847af99c6072a2fb57c4d12ae938c5f52b/CHANGELOG.md#1386---2023-09-18">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/443?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h2 id="heading-static-linked-msvc-runtime">Static-linked msvc runtime</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7965">https://github.com/swc-project/swc/pull/7965</a></li>
</ul>
<p>This PR will make user without msvc runtime installed happy.</p>
<h2 id="heading-preserve-instead-of-panic-for-jscpaths">Preserve instead of panic for <code>jsc.paths</code></h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7955">https://github.com/swc-project/swc/pull/7955</a></li>
</ul>
<p>SWC now preserves the original import specifier if the resolver for <code>jsc.paths</code> fails to resolve.</p>
<h2 id="heading-private-name-andamp-logical-assignments">Private name &amp; logical assignments</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7958">https://github.com/swc-project/swc/pull/7958</a></li>
</ul>
<p><code>chrome 74</code> is a bizarre target because <code>class_property</code> is not required but <code>logical_assignments</code> is required.</p>
<p>This caused an issue to SWC, but it's now fixed.</p>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.85]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



minify() now support scripts

PR: https://github.com/swc-project/swc/pull/7943

The JavaScript API of minify() had module: bool for a long time, but the swc minifier didn't respect it. It's now fixed, and it's now resp...]]></description><link>https://blog.swc.rs/changelog-v1-3-85</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-85</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Fri, 15 Sep 2023 07:37:22 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/01fefd32f7e3017de8e9c679e6ab230d75ea55e1/CHANGELOG.md#1385---2023-09-15">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/442?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h2 id="heading-minify-now-support-scripts"><code>minify()</code> now support scripts</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7943">https://github.com/swc-project/swc/pull/7943</a></li>
</ul>
<p>The JavaScript API of <code>minify()</code> had <code>module: bool</code> for a long time, but the swc minifier didn't respect it. It's now fixed, and it's now respected.</p>
<h2 id="heading-an-option-to-configure-module-resolver">An option to configure module resolver</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7945">https://github.com/swc-project/swc/pull/7945</a></li>
</ul>
<pre><code class="lang-json">{
    <span class="hljs-attr">"jsc"</span>: {
        <span class="hljs-attr">"parser"</span>: {
            <span class="hljs-attr">"syntax"</span>: <span class="hljs-string">"typescript"</span>
        },
        <span class="hljs-attr">"target"</span>: <span class="hljs-string">"es2020"</span>,
        <span class="hljs-attr">"baseUrl"</span>: <span class="hljs-string">"."</span>,
        <span class="hljs-attr">"paths"</span>: {
            <span class="hljs-attr">"@print/a"</span>: [
                <span class="hljs-string">"./packages/a/src/index.ts"</span>
            ]
        }
    },
    <span class="hljs-attr">"module"</span>: {
        <span class="hljs-attr">"type"</span>: <span class="hljs-string">"commonjs"</span>,
        <span class="hljs-attr">"resolveFully"</span>: <span class="hljs-literal">true</span>
    }
}
</code></pre>
<p><code>jsc.module.resolveFully</code> is added to various module types to support resolving dependencies with <code>/index.js</code> included.</p>
<h2 id="heading-optimization-for-optional-chaining">Optimization for optional chaining</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7933">https://github.com/swc-project/swc/pull/7933</a></li>
</ul>
<p>Now the <code>optional-chaining</code> pass works just like <code>pure_getters</code> are enabled.</p>
<h2 id="heading-optimization-for-static-blocks">Optimization for static blocks</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7944">https://github.com/swc-project/swc/pull/7944</a></li>
</ul>
<pre><code class="lang-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Foo</span> </span>{
  <span class="hljs-keyword">static</span> x = <span class="hljs-number">1</span>;
}
</code></pre>
<p>was compiled as, which is not ideal. It's now</p>
<pre><code class="lang-javascript"><span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">Foo</span> </span>{
}
Foo.x = <span class="hljs-number">1</span>;
</code></pre>
]]></content:encoded></item><item><title><![CDATA[ChangeLog: v1.3.84]]></title><description><![CDATA[CHANGELOG.md

Full ChangeLog



Fix for generator

PR: https://github.com/swc-project/swc/pull/7932

Fix for emitAssertForImportAttributes

PR: https://github.com/swc-project/swc/pull/7936

This PR also adds format.emitAssertForImportAttributes to mi...]]></description><link>https://blog.swc.rs/changelog-v1-3-84</link><guid isPermaLink="true">https://blog.swc.rs/changelog-v1-3-84</guid><category><![CDATA[Changelog]]></category><dc:creator><![CDATA[DongYoon Kang]]></dc:creator><pubDate>Thu, 14 Sep 2023 01:27:56 GMT</pubDate><content:encoded><![CDATA[<ul>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/blob/26b01bd01b7399d11faf9909e87e7c775aa49689/CHANGELOG.md#1384---2023-09-11">CHANGELOG.md</a></p>
</li>
<li><p><a target="_blank" href="https://github.com/swc-project/swc/milestone/441?closed=1">Full ChangeLog</a></p>
</li>
</ul>
<hr />
<h2 id="heading-fix-for-generator">Fix for <code>generator</code></h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7932">https://github.com/swc-project/swc/pull/7932</a></li>
</ul>
<h2 id="heading-fix-for-emitassertforimportattributes">Fix for <code>emitAssertForImportAttributes</code></h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7936">https://github.com/swc-project/swc/pull/7936</a></li>
</ul>
<p>This PR also adds <code>format.emitAssertForImportAttributes</code> to <code>minify()</code>.</p>
<h2 id="heading-fix-for-codegen">Fix for codegen</h2>
<ul>
<li>PR: <a target="_blank" href="https://github.com/swc-project/swc/pull/7916">https://github.com/swc-project/swc/pull/7916</a></li>
</ul>
<p>Now the leading comments are printed correctly.</p>
]]></content:encoded></item></channel></rss>