swc-project
swc
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Optimizations
Branches
Benchmarks
Runs
Performance History
Latest Results
fix(es/parser): recover non-entity expressions in TypeScript heritage clauses `parse_ts_heritage_clause` previously required a leading identifier and only checked the outer expression kind for `TS2499`. Heritage clauses in `interface extends` and `class implements` starting with parentheses (such as `extends (Base<T>)`) failed with a hard syntax error, while computed or call-based member expressions (such as `namespace[key]<T>` and `factory().Type<T>`) were accepted without reporting `TS2499`. Parse a full left-hand-side expression with optional type arguments into `TsExprWithTypeArgs`, and report `TS2499` as a recoverable error whenever the heritage expression is not an identifier or dot-member entity name.
fix/ts-heritage-expressions
3 hours ago
fix(es/parser): recover non-entity expressions in TypeScript heritage clauses `parse_ts_heritage_clause` previously required a leading identifier and only checked the outer expression kind for `TS2499`. Heritage clauses in `interface extends` and `class implements` starting with parentheses (such as `extends (Base<T>)`) failed with a hard syntax error, while computed or call-based member expressions (such as `namespace[key]<T>` and `factory().Type<T>`) were accepted without reporting `TS2499`. Parse a full left-hand-side expression with optional type arguments into `TsExprWithTypeArgs`, and report `TS2499` as a recoverable error whenever the heritage expression is not an identifier or dot-member entity name.
fix/ts-heritage-expressions
4 hours ago
fix(es/fixer): avoid panicking on recovered parenthesized assignment targets Parser error recovery retains invalid parenthesized assignment targets (such as `(a + b) += c` or `(value as const) = other`) as `SimpleAssignTarget::Paren`. The fixer unconditionally unwrapped `AssignTarget::try_from` on the inner expression, panicking whenever the expression had no `AssignTarget` representation. Keep the `SimpleAssignTarget::Paren` wrapper and restore its inner expression when conversion to `AssignTarget` fails.
fix/fixer-invalid-assignment-targets
4 hours ago
fix(es/fixer): preserve optional chain boundaries `in_opt_chain` previously leaked into nested expressions such as call arguments and computed keys, and non-null assertions (`!`) were not treated as continuing an optional chain. Both caused the fixer to strip parentheses that terminated an inner optional chain, letting outer member accesses, calls, `new`, or template tags join its short-circuiting scope. Reset `in_opt_chain` when entering nested expressions, preserve parentheses around optional chains before `!`, and wrap non-null assertions that continue an optional chain before outer postfix operations.
fix/ts-optional-chain-grouping
4 hours ago
refactor(es/minifier): merge the rest param bailout into the existing check
baltasarblanco:fix/iife-rest-param-multiple-evaluation
6 hours ago
fix(es/codegen): preserve optional call type arguments Emit type arguments before optional call arguments so generic optional calls retain their TypeScript syntax.
fix/optional-call-type-arguments
7 hours ago
fix(es/codegen): preserve optional call type arguments Emit type arguments before optional call arguments so generic optional calls retain their TypeScript syntax.
fix/optional-call-type-arguments
7 hours ago
fix(es/typescript): analyze runtime containers before erasure Resolve enum values, alias dependencies and runtime requirements against shared declaration identities before syntax erasure. Track AST declaration order and execution regions, including eager decorator evaluation. Recognize immediately invoked functions through parentheses while retaining type wrappers as analysis boundaries. Evaluate initializers with TypeScript rules independently of optional member-read inlining. Substitute eligible enum reads while the original AST is intact, then pass immutable facts to lowering. Preserve reference operations and distinct emitted object identities, and accumulate namespace instantiation without repeated subtree scans.
fix/ts-namespace-enum-bindings
15 hours ago
Latest Branches
CodSpeed Performance Gauge
+4%
fix(es/parser): recover non-entity expressions in TypeScript heritage clauses
#12552
4 hours ago
e90ce30
fix/ts-heritage-expressions
CodSpeed Performance Gauge
+3%
fix(es/fixer): avoid panicking on recovered parenthesized assignment targets
#12551
4 hours ago
85afab1
fix/fixer-invalid-assignment-targets
CodSpeed Performance Gauge
+6%
fix(es/fixer): preserve optional chain boundaries
#12550
5 hours ago
bb73d66
fix/ts-optional-chain-grouping
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs