73 KiB
Changelog
[unreleased]
Bug Fixes
-
(es/minifier) Abort eval on
valueOf
ortoString
(#8763) (9f98a70) -
(es/module) Fix interop of
jsc.paths
with symlinks (#8757) (e2c6db5) -
(es/parser) Fix parsing of TypeScript type instantiation (#8758) (2d6de94)
-
(es/utils) Mark
ident
of default fn/class as binding (#8764) (f62097c)
Features
Refactor
[1.4.8] - 2024-03-14
Bug Fixes
-
(es/module) Fix regression of resolving relative modules (#8748) (f988b66)
-
(es/parser) Allow
export
after decorators when valid (#8739) (663261b)
Miscellaneous Tasks
[1.4.7] - 2024-03-13
Bug Fixes
-
(es/minifier) Fix eval of
toString
of array with holes (#8727) (f3fbd9d) -
(es/minifier) Do not evaluate
slice
calls with negative index (#8726) (23f9635) -
(es/minifier) Handle cyclic references while dropping unused properties (#8725) (102241b)
-
(es/minifier) Fix evaluation of array literals with
void 0
(#8733) (aa0154d) -
(es/minifier) Fix removal of array pattern bindings (#8730) (312f0d8)
-
(es/minifier) Make
Finalizer
handlehoisted_props
correctly (#8738) (95761b7) -
(es/proposal) Fix var placement for using transform (#8732) (633cd89)
Features
Refactor
[1.4.6] - 2024-03-08
Bug Fixes
Performance
[1.4.5] - 2024-03-06
Bug Fixes
Features
[1.4.3] - 2024-03-05
Bug Fixes
-
(css/parser) Fix parsing of
@import
without;
or space (#8657) (60b2340) -
(es/codegen) Emit computed getter and setter signatures (#8656) (66bf8e9)
-
(es/codegen) Fix replacement when
inline_script
is on (#8659) (e179134) -
(es/codegen) Emit
namespace
keyword ofTsModuleDecl
if possible (#8676) (64c9b8f) -
(es/compat) Split declaration and init in
block-scoping
pass (#8648) (6fe6810) -
(es/decorators) Handle default exported class (#8691) (570483a)
-
(es/module) Allow
FileName::Anon
from node resolver (#8686) (761365e) -
(es/modules) Do not call
Path::parent()
forFileName::Anon
(#8662) (1bc4cb7) -
(es/modules) Fix resolution of
jsc.paths
with exact match (#8685) (08ed0fb) -
(es/parser) Check for existence of modifiers while parsing
accessor
token (#8649) (ca23a33) -
(es/typescript) Handle accessibility in private method (#8689) (baba663)
-
(es/visit) Skip
TsExprWithTypeArgs
fromnoop_visit/fold_type
macros (#8677) (a7a00aa)
Documentation
Features
Performance
-
(visit) Use
quote::quote!
instead ofpmutil::q!
(#8485) (8defcb2) -
(visit) Use qualified paths for generated codes (#8655) (671c4a7)
-
(visit) Drop
pmutil
to improve compile time (#8673) (b474382)
[1.4.2] - 2024-02-19
Bug Fixes
-
(es/helpers) Add
addInitializer
to field decorators (#8619) (cd38ef3) -
(es/minifier) Abort property hoister on
this
usage (#8647) (9715320) -
(es/typescript) Handle exported JSX members (#8642) (22c8e2e)
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)