swc-project
swc
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Optimizations
Branches
Benchmarks
Runs
Performance History
Latest Results
fix(typescript): erase fully constant merged const enums
fix/ts-namespace-enum-bindings
4 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
4 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
5 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
6 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
6 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
6 hours ago
chore: Add changeset
Austaras:main
6 hours ago
fix(es/fixer): preserve TypeScript expression grouping (#12518) **Description:** The fixer removes parentheses required by TypeScript in expressions such as `(value as T) ? /a/ : other` and `(f<T>) + other`, causing syntax errors or changing the parsed AST. Preserve required grouping for conditional casts, instantiation expressions before binary operators, and `await` or type assertions on the left of exponentiation. Scope TS lookahead state to each operand.
main
6 hours ago
Latest Branches
CodSpeed Performance Gauge
+1%
fix(es/typescript): Fix merged namespace bindings and enum evaluation
#12455
10 days ago
f498c0c
fix/ts-namespace-enum-bindings
CodSpeed Performance Gauge
0%
feat(es/minifier): Inline async function used only once
#12416
6 hours ago
d7f2f2d
Austaras:main
CodSpeed Performance Gauge
0%
fix(es/parser): preserve invalid JSX numeric entities as literal text
#12524
7 hours ago
9936238
fix/jsx-numeric-entities
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs