75 KiB
Changelog
[unreleased]
Features
Testing
[1.4.1] - 2024-02-13
Bug Fixes
-
(binding/types) Update typings for
options.envs
to match implementation (#8620) (2a115cf) -
(es/compat) Visit AssignExpr right branch in FnEnvHoister (#8633) (e5d6de0)
-
(es/decorators) Do not insert duplicate constructors (#8631) (21a447f)
-
(es/parser) Set class property to
abstract
oroverride
even in error states (#8610) (5a77306) -
(es/parser) Fix parsing of dynamic source phase imports (#8611) (7d724d8)
-
(es/parser) Rescan
<<
as<
when parsing type args (#8607) (9e6dad9) -
(es/parser) Fix detection of
use strict
directive (#8617) (95236e9) -
(es/quote) Allow variables typed
AssignTarget
(#8602) (6a48be4) -
(es/quote) Fix code generation of
AssignTarget
(#8604) (16e9d4c)
Features
Miscellaneous Tasks
Refactor
Testing
Build
[1.4.0] - 2024-02-05
Bug Fixes
-
(cli) Make Rust CLI use sourcemap code from the
swc
crate (#8576) (82bc061) -
(es/codegen) Fix codegen of async methods with decorators (#8575) (8c32225)
-
(es/proposals) Support using
using
keyword with functions (#8574) (d81596c) -
(es/testing) Make
test_inline!
not read output as a file (#8569) (d683089) -
(es/typescript) Handle exported JSX binding name in TypeScript namespace (#8596) (2a70a6b)
Features
Refactor
Testing
-
(es/minifer) Update the passing terser test list (#8573) (8b86638)
-
(es/testing) Ensure that
test_inline!
is working properly (#8590) (872a47b)
[1.3.107] - 2024-01-28
Bug Fixes
-
(es/codegen) Do not produce octal literals (#8565) (07634a0)
-
(es/decorator) Skip TypeScript class method/prop declarations (#8555) (6a8dd8c)
-
(es/decorator) Preserve state while traversing the
module_items
scope (#8556) (f416aff) -
(es/loader) Make
tsc
resolver work for bare specifier (#8550) (d6a4615)
[1.3.106] - 2024-01-25
Bug Fixes
-
(binding/types) Add
bugfixes
field to EnvConfig (#8538) (49ebdf9) -
(common) Fix source map generation with
inputSourceMap
(#8546) (043ee85) -
(es/ast) Add
definite
andis_override
toAutoAccessor
(#8436) (572bcae) -
(es/compat) Support vars from
reserved_word
pass (#8543) (fc929e9) -
(es/loader) Don't use browser versions for
jsc.paths
(#8548) (fab27da) -
(es/minifier) Fix a bug related to inliner and the variable scoping (#8542) (aa70131)
-
(es/module) Fix handling of
*
injsc.paths
(#8535) (2d8bd9e) -
(es/quote) Add support for import phase to quote macro (#8536) (71930ff)
Features
Miscellaneous Tasks
[1.3.105] - 2024-01-21
Bug Fixes
-
(common) Remove
<
and>
fromDisplay
impl ofFileName::Custom
(#8530) (014a6cd) -
(es/minifier) Fix a bug in tpl string <-> string logic (#8510) (4946a11)
-
(es/typescript) Fix panic on invalid jsx pragma (#8513) (f40f59b)
Miscellaneous Tasks
Testing
-
(es/codegen) Add tests for
@ctrl/tinycolor
(#8518) (1c4eb1f) -
(es/codegen) Add a JS test for ascii-only mode (#8519) (974c6a0)
-
(es/minifier) Add a test for a fixed issue (#8520) (8fac2bb)
[1.3.104] - 2024-01-17
Bug Fixes
-
(es) Fix plugin template & restore
test!
astest_inline!
(#8508) (10449e0) -
(plugin) Set
swc_common::errors::HANDLER
while invoking plugins (#8511) (ba753f1)
[1.3.103] - 2024-01-15
Bug Fixes
-
(binding/types) Add type for
decoratorVersion
(#8468) (79438e6) -
(es/codegen) Emit declare keyword for class properties (#8478) (2076ef8)
-
(es/codegen) Emit implements clause with commas (#8477) (d98a282)
-
(es/codegen) Emit
?
for an optional computed property (#8481) (e0bdc0f) -
(es/codegen) Fix codegen of a property key in ascii-only mode (#8493) (8d9bf4c)
-
(es/compat) Set inserted var inside export class in destructing (#8470) (4416077)
-
(es/compat) Correctly handle
this
in arrow function parameters (#8489) (52a8f05) -
(es/minifier) Correctly escape more characters (#8490) (f7c4934)
-
(es/resolver) Resolve top-level
undefined
,NaN
, andInfinity
correctly (#8471) (82bd807)
Documentation
Features
Refactor
Testing
-
(es/minifier) Enable non esm mode for tests (#8472) (1120336)
-
(es/minifier) Enable script mode for
terser_exec
andmangle
(#8474) (b676e75)
[1.3.102] - 2023-12-31
Bug Fixes
-
(css/parser) Fix parsing of
hsla(var(--foo), 1)
(#8443) (d89b60a) -
(es/codegen) Fix codegen of type-only export declarations (#8447) (65dec90)
-
(es/compat) Use correct
span.lo
in class transforms (#8439) (a06d5b2) -
(es/minifier) Add WeakRef as a safe global reference (#8458) (d681785)
-
(es/parser) Disallowing await as an identifier in class static block (#8450) (0b188cc)
[1.3.101] - 2023-12-18
Bug Fixes
-
(es/codegen) Emit extra paren emitting
AssignExpr
(#8413) (dce3693) -
(es/codegen) Fix codegen of ts specific syntax in class props (#8426) (7566ddf)
-
(es/compat) Fix destructuring of export class/function (#8371) (630f9d3)
-
(es/compat) Preserve spread in the
generator
pass (#8401) (29bec98) -
(es/compat) Preserve comment for arrow body (#8427) (56992e3)
-
(es/fixer) Preserve parenthesis for optional chaining (#8399) (a69f172)
-
(es/resolver) Handle
TsInterfaceDecl
andUsingDecl
correctly (#8403) (f8ce316)
Features
Miscellaneous Tasks
Performance
Refactor
Build
[1.3.100] - 2023-11-30
Bug Fixes
-
(es/codegen) Wrap quote for length greater than one (#8351) (2cdea3f)
-
(es/decorators) Resolve enum for
design:returntype
(#8320) (91ef7c9) -
(es/fixer) Wrap yield expression in await expression (#8357) (ff719f0)
-
(es/minifier) Fix
if_return
bug related toawait
andyield
(#8328) (01e2c7f) -
(es/minifier) Give up terminate merge if in
try
withfinally
(#8342) (ed5a9b3) -
(es/parser) Wrap with
OptChain
acrossTsNonNull
(#8332) (8af6ffb) -
(es/react) Make jsx with single spread child static (#8339) (58568fa)
-
(es/renamer) Allow
globalThis
to be shadowed (#8327) (3dd73a3) -
(es/typescript) Handle shebang with jsx pragma (#8318) (c25601d)
Miscellaneous Tasks
Build
[1.3.98] - 2023-11-21
Bug Fixes
-
(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/decorators) Minimize class declarations transformation (#8245) (6992d83)
-
(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 inlinedArrow
(#8301) (c18a959) -
(es/minifier) Apply new
SyntaxContext
to inlinedArrow
correctly (#8312) (572ad63) -
(es/module) Read link if an import is resolved as symlink (#8297) (7dfdc12)
-
(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 parsing of
import type from from
(#8309) (00b8839) -
(es/parser) Report error for exported reserved name (#8313) (feb8a6d)
-
(es/parsing) Fix parsing of
type satisfies = 0;
(#8305) (51042e0) -
(es/proposal) Improve resolving of
design:returntype
(#8303) (fab51e1) -
(es/resolver) Ignore qualifiers of
TsImportType
(#8299) (2113bb3)
Features
Performance
Refactor
Testing
Build
[1.3.97] - 2023-11-09
Bug Fixes
-
(css/modules) Allow out-of-order class names for
composes
(#8218) (aeb9caf) -
(css/modules) Fix handling of
:global()
selector (#8219) (02cd7c2)
Features
Miscellaneous Tasks
Performance
-
(atoms) Update
hstr
to make global APIs fast (#8241) (c01454a) -
(es) Delete useless partition and extend in comments (#8214) (67e2c4a)
-
(es/lexer) Remove needless clones of
Rc<RefCell<AtomStore>>
(#8231) (37657b8) -
(es/minifier) Remove needless operations for char freq analysis (#8222) (b745ed7)
-
(es/parser) Use smarter lookup table for lexer (#8226) (d4ae44a)
-
(es/typescript) Visit ts import/export only once (#8213) (a00f575)
Refactor
Build
-
(cargo) Update rustc to
nightly-2023-11-04
(#8221) (14ea705) -
(preset-env/base) Upgrade
browserslist-rs
tov0.13.0
(#8229) (f9f305c)
[1.3.96] - 2023-11-03
Bug Fixes
-
(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/react) Visit children nodes in
jsx-src
pass (#8212) (47733a9) -
(es/transforms) Do not add
PURE
comment toBytePos(0)
(#8207) (c061356) -
(es/typescript) Preserve const enum for named export (#8208) (abced23)
Features
-
(es/minifier) Respect inline level and preserve native names (#8205) (dd805e9)
-
(es/testing) Support babel-like fixture testing officially (#8190) (e960614)
-
(es/testing) Use
__swc_snapshots__
fortest!
macro (#8191) (0aafa75)
Performance
Refactor
[1.3.95] - 2023-10-24
Bug Fixes
-
(es/compat) Don't add pure annotations to dummy spans (#8172) (9ceb57b)
-
(es/minifier) Always consider
reassigned
when inlining (#8168) (c26a225) -
(es/typescript) Support
ts_enum_is_mutable
with const enums (#8171) (02d0613)
Build
[1.3.94] - 2023-10-21
Bug Fixes
-
(css/ast) Make
.hash()
ofToken
not recursive (#8151) (8d7894c) -
(es/minifier) Abort seq inliner if
b
can short-circuit (#8128) (111de26) -
(es/minifier) Abort function inliner if
keep_fnames
istrue
(#8145) (35601e4) -
(es/parser) Skip
this
parameters in setter (#8158) (826386f) -
(es/utils) Skip var declarator name in
RefRewriter
(#8125) (fb81a36)
Features
-
(es/compat) Implement decorator metadata proposal (#8097) (9c029ef)
-
(es/compat) Skip empty class static blocks (#8138) (e186b80)
-
(es/minifier) Evaluate more
toFixed
expressions (#8109) (7da3f52) -
(es/minifier) Inline into the arguments of
new
using seq inliner (#8127) (4f67794) -
(es/parser) Implement
AsRef<str>
forIdentLike
(#8133) (bffe33a) -
(es/typescript) Add
ts_enum_is_mutable
to disable enum inlining (#8115) (57b171d)
Miscellaneous Tasks
Refactor
[1.3.93] - 2023-10-13
Bug Fixes
-
(es/codegen) Fix codegen of type-only imports (#8070) (6f45b46)
-
(es/compat) Handle
__proto__
edge case inshorthand
pass (#8077) (a912937) -
(es/compat) Handle export default decorator only if not empty (#8099) (bf523f5)
-
(es/decorators) Fix a regression about class expressions (#8102) (cb4361f)
-
(es/helpers) Override mistake in
_interop_require_wildcard
(#8076) (1346528) -
(es/minifier) Don't inline functions if
keep_fnames
is enabled (#8093) (94bb42e)
Features
Miscellaneous Tasks
Refactor
-
(atoms) Remove usage of
js_word!
to dropstring-cache
(#7976) (84cec87) -
(es/compat) Split
swc_ecma_transforms_compat
(#8110) (affb6fb) -
(es/module) Reimplement some functions of module/typescript (#8063) (3e5b062)
-
(es/parser) Introduce
TokenKind
along withToken
(#8071) (9b9bc51) -
(es/preset-env) Rename parameter to avoid confusion (#8106) (95eb147)
[1.3.92] - 2023-10-05
Bug Fixes
-
(es/compat) Fix scoping of
explicit-resource-management
(#8044) (96a7a4d) -
(es/compat) Transform default-exported class decorators correctly (#8050) (a751f1c)
-
(es/compat) Use
async
andawait
correctly inblock-scoping
pass (#8056) (8318ea8)
Refactor
[1.3.91] - 2023-10-01
Bug Fixes
-
(es/compat) Use return statements for method and setter decorator (#8017) (38bc710)
-
(es/compat) Generate
OptCall
forOptCall
for private fields (#8031) (06b6eb9) -
(es/minifier) Check if object shorthand is skippable for seq inliner (#8036) (01391e3)
-
(es/module) Sort the exported ESM bindings (#8024) (990ca06)
-
(es/typescript) Rename wrong
unresolved_mark
(#8018) (5817268) -
(es/typescript) Preserve default value of an exported binding in a namespace (#8029) (cf96171)
Documentation
Features
Refactor
-
(es) Extract parser/codegen code for
swc::Compiler
(#8030) (a13f5cb) -
(es/minifier) Move JS options to
swc_ecma_minifier
(#8028) (725f7f5)
[1.3.90] - 2023-09-27
Bug Fixes
-
(es/codegen) Fix codegen of unicode surrogates (#7985) (39c680d)
-
(es/codegen) Fix codegen of optional chaining expr with a comment (#8005) (f07bb48)
-
(es/typescript) Handle
DeclareCollect
correctly (#8008) (9d08b8a) -
(es/typescript) Handle qualified access in assign pat (#8012) (2f01aba)
[1.3.89] - 2023-09-25
Bug Fixes
-
(es) Enable resolver if
jsc.baseUrl
is specified (#7998) (f374ad9) -
(es/compat) Skip function scope in
block-scoped-fns
pass (#7975) (d91a554)
Refactor
[1.3.88] - 2023-09-24
Features
Refactor
[1.3.87] - 2023-09-22
Bug Fixes
-
(bindings/type) Update types of
jsc.experimental
(#7972) (e40fccb) -
(es/compat) Handle nullish in fn expr scope (#7980) (5050f58)
-
(es/minifier) Do not inline into a template literal with sequential inliner (#7971) (b3d3a7b)
[1.3.86] - 2023-09-18
Bug Fixes
-
(es/compat) Handle
PrivateName
inlogical_assignments
(#7958) (28318f0) -
(es/minifier) Handle
ModuleDecl
when transform const modules (#7959) (06ca1fe) -
(es/module) Preserve import specifier if resolving fails (#7955) (be5b02a)
Miscellaneous Tasks
-
(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)
Refactor
Build
[1.3.85] - 2023-09-15
Bug Fixes
-
(css/modules) Support composes when using multiple subclass selectors (#7949) (05ca19b)
-
(es/compat) Handle single expression case in static block (#7944) (a80aec4)
-
(es/minifier) Parse a file as a module only if
opts.module
istrue
(#7943) (b87ac64)
Features
-
(es/compat) Support
pure_getters
foroptional_chaining
(#7933) (c091c5e) -
(es/module) Add an option to make resolver fully resolve
index.js
(#7945) (7e8d72d)
[1.3.84] - 2023-09-11
Bug Fixes
-
(es/codegen) Emit leading comments for
ExprStmt
(#7916) (2da5895) -
(es/codegen) Use
emitAssertForImportAttributes
(#7936) (dac8888) -
(es/compat) Visit assign expr in generator (#7932) (97068e1)
[1.3.83] - 2023-09-07
Bug Fixes
-
(css/modules) Aggregate class names when composes is chained. (#7917) (0db25a2)
-
(es/module) Fix
jsc.paths
for projects using pnpm (#7918) (a86e9f3)
Features
[1.3.82] - 2023-09-01
Bug Fixes
-
(common) Fix logic for excluding
FileName
from source maps (#7900) (aa64955) -
(es/module) Make
jsc.paths
fully resolve TypeScript files (#7901) (c714dd2) -
(es/resolver) Correctly resolve global value (#7893) (2db10e9)
[1.3.81] - 2023-08-30
Bug Fixes
-
(es/codegen) Fix placing of comments of yield arguments (#7858) (122d14c)
-
(es/compat) Apply transforms for explicit resource management (#7881) (3180e68)
-
(es/compat) Make
SwitchCase
handler ofblock-scoping
stateless (#7888) (4b33d41) -
(es/dep-graph) Analyze import type children (#7883) (057bd5f)
-
(es/minifier) Report
is_fn_local
even if var is hoisted (#7876) (87a47bf) -
(es/module) Don't create absolute paths for
jsc.paths
on Windows (#7892) (5fbc251) -
(swc-info) Use correct path while getting local package versions (#7872) (67afaf1)
Features
-
(es) Add an option to disable builtin transforms (#7873) (71d01ec)
-
(es/ast) Support import attributes proposal (#7868) (4d3fcb8)
-
(swc-info) Add a CLI to help issue reporting (#7871) (d6952ea)
Miscellaneous Tasks
Performance
Refactor
[1.3.80] - 2023-08-25
Bug Fixes
-
(es/module) Fix logic for exact matches in
jsc.paths
(#7860) (52a1ee7) -
(es/module) Don't resolve as
node_modules
fromTscResolver
(#7866) (11ebae1)
[1.3.79] - 2023-08-25
Bug Fixes
-
(es) Fix default value of
jsc.minify.format.comments
(#7853) (64e51d3) -
(es/minifier) Don't inline properties if the var is not
fn-local
(#7839) (7fe01e6) -
(es/module) Make
jsc.paths
work for a nest.js app (#7852) (d33a973)
Features
Refactor
-
(common) Mark some methods of
Input
unsafe (#7848) (c657324) -
(es/types) Extract
@swc/types
as a small, reusable package (#7834) (f713f1b)
[1.3.78] - 2023-08-17
Bug Fixes
-
(es/codegen) Add quotes to property names when
ascii_only
istrue
(#7820) (04921f3) -
(es/compat) Remove wrong logic for object patterns in
object_rest
(#7788) (3766a7c) -
(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)
Features
Refactor
[1.3.77] - 2023-08-16
Bug Fixes
Features
Refactor
[1.3.76] - 2023-08-10
Bug Fixes
-
(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/module) Use
jsc.baseUrl
while resolving absolute paths (#7775) (5c4bfa6)
Features
Performance
[1.3.75] - 2023-08-08
Bug Fixes
-
(es/codegen) Don't strip necessary escape characters (#7687) (b45649b)
-
(es/compat) Fix loose mode of the
spread
pass (#7760) (b69ae8f) -
(es/minifier) Abort on
Array.slice
withstart >= end
(#7745) (36ccbec) -
(es/module) Fix handling of continuous assignments in
systemjs
(#7741) (f713f6a) -
(es/utils) Ignore
typeof Id
while preserving side effects (#7763) (d57ac0d)
Features
Refactor
-
(es/ast) Avoid
transmute
in impl ofHash
forNumber
(#7771) (2258274) -
(es/parser) Do not validate top-level await with target (#7774) (5f97f86)
[1.3.74] - 2023-08-02
Bug Fixes
[1.3.73] - 2023-08-01
Bug Fixes
-
(es/minifier) Handle synthesized export default expression (#7707) (5ea6f27)
-
(es/utils) Fix string evaluation of array literals (#7731) (e8c58cf)
Features
Testing
[1.3.72] - 2023-07-28
Bug Fixes
-
(es/compat) Fix handling of private members in optional chaining pass (#7610) (7ba7b6e)
-
(es/module) Do not determine module name for modules without exports in UMD (#7718) (40136f7)
Features
Refactor
[1.3.71] - 2023-07-25
Bug Fixes
-
(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/typescript) Fix handling of optional chaining (#7660) (c017874)