oxc-project
oxc
BlogDocsChangelog

perf(semantic): keep a single map of unresolved references

#4107Merged
Comparing
lucab:ups/semantic-scope-root-unresolved-references
(
c77114a
) with
main
(
115ac3b
)
CodSpeed Performance Gauge
0%
Untouched
29

Benchmarks

Passed

sourcemap[cal.com.tsx]
tasks/benchmark/benches/sourcemap.rs::sourcemap::bench_sourcemap
CodSpeed Performance Gauge
0%
57.8 ms57.6 ms
semantic[cal.com.tsx]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic
CodSpeed Performance Gauge
0%
135.5 ms135.3 ms
lexer[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer
CodSpeed Performance Gauge
0%
22.4 µs22.3 µs
parser[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/parser.rs::parser::bench_parser
CodSpeed Performance Gauge
0%
75.7 µs75.6 µs
parser[pdf.mjs]
tasks/benchmark/benches/parser.rs::parser::bench_parser
CodSpeed Performance Gauge
0%
17.2 ms17.1 ms
lexer[antd.js]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer
CodSpeed Performance Gauge
0%
20.1 ms20.1 ms
lexer[pdf.mjs]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer
CodSpeed Performance Gauge
0%
3.2 ms3.2 ms
lexer[cal.com.tsx]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer
CodSpeed Performance Gauge
0%
5 ms5 ms
codegen_sourcemap[cal.com.tsx]
tasks/benchmark/benches/codegen_sourcemap.rs::codegen_sourcemap::bench_codegen_sourcemap
CodSpeed Performance Gauge
0%
35.5 ms35.5 ms
parser[checker.ts]
tasks/benchmark/benches/parser.rs::parser::bench_parser
CodSpeed Performance Gauge
0%
52.5 ms52.5 ms
prepass[typescript.js]
tasks/benchmark/benches/minifier.rs::minifier::bench_passes
CodSpeed Performance Gauge
0%
27.3 ms27.3 ms
lexer[checker.ts]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer
CodSpeed Performance Gauge
0%
12 ms12 ms
minifier[typescript.js]
tasks/benchmark/benches/minifier.rs::minifier::bench_minifier
CodSpeed Performance Gauge
0%
248.8 ms248.8 ms
parser[cal.com.tsx]
tasks/benchmark/benches/parser.rs::parser::bench_parser
CodSpeed Performance Gauge
0%
23.8 ms23.8 ms
parser[antd.js]
tasks/benchmark/benches/parser.rs::parser::bench_parser
CodSpeed Performance Gauge
0%
104.1 ms104.1 ms
isolated-declarations[vue-id.ts]
tasks/benchmark/benches/isolated_declarations.rs::transformer::bench_isolated_declarations
CodSpeed Performance Gauge
0%
377 ms377 ms
semantic[antd.js]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic
CodSpeed Performance Gauge
0%
12.4 s12.4 s
minifier[react.development.js]
tasks/benchmark/benches/minifier.rs::minifier::bench_minifier
CodSpeed Performance Gauge
0%
1.6 ms1.6 ms
semantic[checker.ts]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic
CodSpeed Performance Gauge
0%
2.6 s2.6 s
prepass[react.development.js]
tasks/benchmark/benches/minifier.rs::minifier::bench_passes
CodSpeed Performance Gauge
0%
206.1 µs206.3 µs
transformer[antd.js]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer
CodSpeed Performance Gauge
0%
333.2 ms333.6 ms
semantic[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic
CodSpeed Performance Gauge
0%
128.7 µs128.9 µs
linter[cal.com.tsx]
tasks/benchmark/benches/linter.rs::linter::bench_linter
CodSpeed Performance Gauge
0%
748.8 ms750.6 ms
transformer[pdf.mjs]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer
CodSpeed Performance Gauge
0%
52.4 ms52.6 ms
transformer[cal.com.tsx]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer
CodSpeed Performance Gauge
0%
83.9 ms84.2 ms
linter[checker.ts]
tasks/benchmark/benches/linter.rs::linter::bench_linter
CodSpeed Performance Gauge
0%
1.4 s1.4 s
transformer[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer
CodSpeed Performance Gauge
0%
249.7 µs250.6 µs
semantic[pdf.mjs]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic
CodSpeed Performance Gauge
0%
88.5 ms88.9 ms
transformer[checker.ts]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer
CodSpeed Performance Gauge
-1%
201.3 ms202.4 ms

Commits

Click on a commit to change the comparison range
Base
main
115ac3b
-0.08%
perf(semantic): keep a single map of unresolved references This reworks `ScopeTree` in order to keep a single (root) map of unresolved references. The `SemanticBuilder` keeps track of all intermediate ones while walking scopes, and it can get rid of all non-root ones once done.
c77114a
2 years ago
by lucab
© 2026 CodSpeed Technology
Home Terms Privacy Docs