(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)
(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
or override
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)
(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)
(es/minifer) Update the passing terser test list (#8573) (8b86638)
(es/testing) Ensure that test_inline!
is working properly (#8590) (872a47b)
(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)
(binding/types) Add bugfixes
field to EnvConfig (#8538) (49ebdf9)
(common) Fix source map generation with inputSourceMap
(#8546) (043ee85)
(es/ast) Add definite
and is_override
to AutoAccessor
(#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 *
in jsc.paths
(#8535) (2d8bd9e)
(es/quote) Add support for import phase to quote macro (#8536) (71930ff)
(common) Remove <
and >
from Display
impl of FileName::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)
(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)
(es) Fix plugin template & restore test!
as test_inline!
(#8508) (10449e0)
(plugin) Set swc_common::errors::HANDLER
while invoking plugins (#8511) (ba753f1)
(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
, and Infinity
correctly (#8471) (82bd807)
(es/minifier) Enable non esm mode for tests (#8472) (1120336)
(es/minifier) Enable script mode for terser_exec
and mangle
(#8474) (b676e75)
(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)
(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
and UsingDecl
correctly (#8403) (f8ce316)
(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 to await
and yield
(#8328) (01e2c7f)
(es/minifier) Give up terminate merge if in try
with finally
(#8342) (ed5a9b3)
(es/parser) Wrap with OptChain
across TsNonNull
(#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)
(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 inlined Arrow
(#8301) (c18a959)
(es/minifier) Apply new SyntaxContext
to inlined Arrow
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)
(css/modules) Allow out-of-order class names for composes
(#8218) (aeb9caf)
(css/modules) Fix handling of :global()
selector (#8219) (02cd7c2)
(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)
(cargo) Update rustc to nightly-2023-11-04
(#8221) (14ea705)
(preset-env/base) Upgrade browserslist-rs
to v0.13.0
(#8229) (f9f305c)
(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 to BytePos(0)
(#8207) (c061356)
(es/typescript) Preserve const enum for named export (#8208) (abced23)
(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__
for test!
macro (#8191) (0aafa75)
(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)
(css/ast) Make .hash()
of Token
not recursive (#8151) (8d7894c)
(es/minifier) Abort seq inliner if b
can short-circuit (#8128) (111de26)
(es/minifier) Abort function inliner if keep_fnames
is true
(#8145) (35601e4)
(es/parser) Skip this
parameters in setter (#8158) (826386f)
(es/utils) Skip var declarator name in RefRewriter
(#8125) (fb81a36)
(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>
for IdentLike
(#8133) (bffe33a)
(es/typescript) Add ts_enum_is_mutable
to disable enum inlining (#8115) (57b171d)
(es/codegen) Fix codegen of type-only imports (#8070) (6f45b46)
(es/compat) Handle __proto__
edge case in shorthand
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)
(atoms) Remove usage of js_word!
to drop string-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 with Token
(#8071) (9b9bc51)
(es/preset-env) Rename parameter to avoid confusion (#8106) (95eb147)
(es/compat) Fix scoping of explicit-resource-management
(#8044) (96a7a4d)
(es/compat) Transform default-exported class decorators correctly (#8050) (a751f1c)
(es/compat) Use async
and await
correctly in block-scoping
pass (#8056) (8318ea8)
(es/compat) Use return statements for method and setter decorator (#8017) (38bc710)
(es/compat) Generate OptCall
for OptCall
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)
(es) Extract parser/codegen code for swc::Compiler
(#8030) (a13f5cb)
(es/minifier) Move JS options to swc_ecma_minifier
(#8028) (725f7f5)
(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)
(es) Enable resolver if jsc.baseUrl
is specified (#7998) (f374ad9)
(es/compat) Skip function scope in block-scoped-fns
pass (#7975) (d91a554)
(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)
(es/compat) Handle PrivateName
in logical_assignments
(#7958) (28318f0)
(es/minifier) Handle ModuleDecl
when transform const modules (#7959) (06ca1fe)
(es/module) Preserve import specifier if resolving fails (#7955) (be5b02a)
(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)
(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
is true
(#7943) (b87ac64)
(es/compat) Support pure_getters
for optional_chaining
(#7933) (c091c5e)
(es/module) Add an option to make resolver fully resolve index.js
(#7945) (7e8d72d)
(es/codegen) Emit leading comments for ExprStmt
(#7916) (2da5895)
(es/codegen) Use emitAssertForImportAttributes
(#7936) (dac8888)
(es/compat) Visit assign expr in generator (#7932) (97068e1)
(css/modules) Aggregate class names when composes is chained. (#7917) (0db25a2)
(es/module) Fix jsc.paths
for projects using pnpm (#7918) (a86e9f3)
(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)
(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 of block-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)
(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)
(es/module) Fix logic for exact matches in jsc.paths
(#7860) (52a1ee7)
(es/module) Don't resolve as node_modules
from TscResolver
(#7866) (11ebae1)
(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)
(common) Mark some methods of Input
unsafe (#7848) (c657324)
(es/types) Extract @swc/types
as a small, reusable package (#7834) (f713f1b)
(es/codegen) Add quotes to property names when ascii_only
is true
(#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)
(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)
(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
with start >= 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)
(es/ast) Avoid transmute
in impl of Hash
for Number
(#7771) (2258274)
(es/parser) Do not validate top-level await with target (#7774) (5f97f86)
(es/minifier) Handle synthesized export default expression (#7707) (5ea6f27)
(es/utils) Fix string evaluation of array literals (#7731) (e8c58cf)
(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)