swc-project
swc
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Optimizations
Branches
Benchmarks
Runs
Performance History
Latest Results
fix(es/typescript): identify merged enum bodies independently of spans Assign each runtime enum body a stable handle and preserve body order per binding. Usage analysis and emission use independent cursors over shared facts, while erasure depends on the shared container. Ambient bodies still contribute constant facts without advancing runtime cursors. Body identity survives normalized spans and cloned constructor parameter defaults.
fix/ts-namespace-enum-bindings
6 hours ago
fix(typescript): erase fully constant merged const enums
fix/ts-namespace-enum-bindings
12 hours ago
fix(es/parser): allow namespace await identifiers (#12507) **Description:** Valid TypeScript such as `export {}; namespace N { const await = 1; }` is rejected because file-wide module restrictions apply inside the namespace. Give namespace bodies their own declaration context and restore the enclosing parser state on both success and error. Includes a patch changeset for `swc_ecma_parser` and `swc_core`. **Related issue (if exists):** - Close #12512
main
12 hours ago
fix(es/codegen): preserve TypeScript token boundaries (#12523) **Description:** Preserve TypeScript token boundaries in compact output to prevent adjacent operators from producing invalid syntax or changing the parsed expression. Separate nested type openers, retain semicolons before type assertions and JSX, and preserve empty argument lists on generic constructors. Batch empty argument emission and inline type argument printing to reduce overhead.
main
13 hours ago
feat(es/minifier): Inline async function used only once (#12416) **Related issue:** Closes #12404 --------- Co-authored-by: DongYun Kang <kdy.1997.dev@gmail.com>
main
14 hours ago
fix(es/compat): scope private access modes to each member (#12526) **Description:** Private accesses inside update expressions or destructuring assignment targets can inherit the outer target's access mode. A nested private method call or getter read is then lowered with an update or destructuring helper, causing invalid output or runtime failures. Pass the access mode explicitly to `convert_private_member` for the member being lowered. Child expressions are visited independently and retain their own access modes, including nested updates and assignments. Update and destructuring helper arguments take ownership of the receiver instead of cloning it for an unused call receiver. **Related issue (if exists):** - Close #12427
main
14 hours ago
fix(es/parser): preserve invalid JSX numeric entities as literal text (#12524) **Description:** Replace panic-prone JSX numeric entity parsing with checked decoding. Out-of-range and empty references such as `�`, `�`, `&#;`, and `&#x;` now remain literal text in JSX text and quoted attributes without emitting parser diagnostics. For unrecognized references, consume only the leading `&` and let the normal scanner continue, preserving the source text and leaving subsequent entities and JSX delimiters intact. Decode recognized entities as JavaScript code points and append them directly to the WTF-8 buffer. This preserves lone surrogates and combines adjacent surrogate pairs without manual lookahead. Apply the same behavior to `swc_ecma_parser` and `swc_ecma_lexer`. **Related issue:** - Close #12525
main
14 hours ago
chore: Add changeset
Austaras:main
14 hours ago
Latest Branches
CodSpeed Performance Gauge
+1%
fix(es/typescript): Fix merged namespace bindings and enum evaluation
#12455
6 hours ago
4d89109
fix/ts-namespace-enum-bindings
CodSpeed Performance Gauge
0%
feat(es/minifier): Inline async function used only once
#12416
14 hours ago
d7f2f2d
Austaras:main
CodSpeed Performance Gauge
0%
fix(es/parser): preserve invalid JSX numeric entities as literal text
#12524
15 hours ago
9936238
fix/jsx-numeric-entities
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs