swc-project
swc
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Optimizations
Branches
Benchmarks
Runs
Performance History
Latest Results
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. 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
1 hour ago
fix(es/typescript): evaluate decorators in their enclosing region Method and parameter decorators execute during class evaluation. Keep their enum initializers in the enclosing execution region so later declarations cannot be folded across a temporal dead zone, while parameter initializers and function bodies remain deferred.
fix/ts-namespace-enum-bindings
3 hours ago
fix(es/typescript): analyze runtime containers before erasure Resolve enum values, alias dependencies, and runtime container requirements against shared declaration identities before syntax erasure. Use AST declaration order and execution regions for both enum members and ordinary constants, checking each use before reading cached values. Substitute enum reads in the same pre-erasure traversal and pass immutable facts to lowering. Keep emitted namespace and enum object identities separate from source bindings, preserve reference operations, and accumulate namespace instantiation without repeated subtree scans.
fix/ts-namespace-enum-bindings
3 hours ago
fix(es/typescript): analyze runtime containers before erasure Resolve enum values, alias dependencies, and runtime container requirements against shared declaration identities before syntax erasure. Use AST declaration order and execution regions for both enum members and ordinary constants, checking each use before reading cached values. Substitute enum reads in the same pre-erasure traversal and pass immutable facts to lowering. Keep emitted namespace and enum object identities separate from source bindings, preserve reference operations, and accumulate namespace instantiation without repeated subtree scans.
fix/ts-namespace-enum-bindings
4 hours ago
test(es/transforms): isolate transform timing from AST cloning Prepare a fresh AST outside each measured iteration with `iter_batched_ref` and mutate it in place. Exclude per-iteration AST cloning and final drop so the transform benchmarks measure pass execution rather than input preparation and cleanup.
test/isolate-transform-benchmark
4 hours ago
perf(es/benches): isolate transform timing from AST cloning Prepare a fresh AST outside each measured iteration and mutate it in place. Exclude final AST destruction so compatibility benchmarks measure the transform rather than input preparation and cleanup.
fix/ts-namespace-enum-bindings
5 hours ago
perf(es/fixer): reuse parentheses and restore spans in linear time Keep required operand parentheses and skip identifier update traversal. Store removed parentheses in stable records indexed by active spans. Preserve comment migration order without shifting entries.
fix/ts-fixer-followup
7 hours ago
fix(es/typescript): analyze runtime containers before erasure Evaluate enum constants and initializer dependencies before removing types. Use the shared declaration graph to track surviving reads, writes and aliases, then lower each retained body with its own runtime object identity. Keep type-only namespaces on the reference-only path and size enum results from collected members. Preserve pre-erasure namespace contributions during lowering and reuse completed child results instead of rescanning bodies. Memoize recursive concrete-body queries during semantic collection and reference analysis while preserving the existing predicate. Distinguish individual declarations with merged names or synthesized spans, and leave leaf bodies uncached to avoid allocation overhead for flat namespaces.
fix/ts-namespace-enum-bindings
7 hours ago
Latest Branches
CodSpeed Performance Gauge
+3%
fix(es/typescript): Fix merged namespace bindings and enum evaluation
#12455
2 hours ago
0f01277
fix/ts-namespace-enum-bindings
CodSpeed Performance Gauge
×4.3
test(es/transforms): isolate transform timing from AST cloning
#12540
5 hours ago
51158e7
test/isolate-transform-benchmark
CodSpeed Performance Gauge
0%
fix(es/fixer): preserve TypeScript operand grouping
#12539
7 hours ago
a006647
fix/ts-fixer-followup
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs