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
9 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
10 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
10 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
10 hours ago
refactor(es/minifier): merge the rest param bailout into the existing check
baltasarblanco:fix/iife-rest-param-multiple-evaluation
13 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
13 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
14 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
22 hours ago
Latest Branches
CodSpeed Performance Gauge
+4%
fix(es/parser): recover non-entity expressions in TypeScript heritage clauses
#12552
11 hours ago
e90ce30
fix/ts-heritage-expressions
CodSpeed Performance Gauge
+3%
fix(es/fixer): avoid panicking on recovered parenthesized assignment targets
#12551
11 hours ago
85afab1
fix/fixer-invalid-assignment-targets
CodSpeed Performance Gauge
+6%
fix(es/fixer): preserve optional chain boundaries
#12550
11 hours ago
bb73d66
fix/ts-optional-chain-grouping
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs