Avatar for the oxc-project user
oxc-project
oxc
Instrumentation
Wall Time
BlogDocsChangelog

feat(minifier): remove unused assignments for vars

#13231Merged
Comparing
08-20-feat_minifier_collect_symbol_information_for_vars
(
8ca9909
) with
main
(
e7a49ed
)
CodSpeed Performance Gauge
-6%
Regressions
1
Untouched
33

Benchmarks

Failed

minifier[react.development.js]Regression
tasks/benchmark/benches/minifier.rs::minifier::bench_minifier::minifier[react.development.js]
CodSpeed Performance Gauge
-6%
2.1 ms2.3 ms

Passed

transformer[cal.com.tsx]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer::transformer[cal.com.tsx]
CodSpeed Performance Gauge
+1%
26.8 ms26.4 ms
minifier[cal.com.tsx]
tasks/benchmark/benches/minifier.rs::minifier::bench_minifier::minifier[cal.com.tsx]
CodSpeed Performance Gauge
+1%
30.3 ms29.9 ms
minifier[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/minifier.rs::minifier::bench_minifier::minifier[RadixUIAdoptionSection.jsx]
CodSpeed Performance Gauge
+1%
58.9 µs58.4 µs
lexer[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer::lexer[RadixUIAdoptionSection.jsx]
CodSpeed Performance Gauge
0%
20 µs20 µs
formatter[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/formatter.rs::formatter::bench_formatter::formatter[RadixUIAdoptionSection.jsx]
CodSpeed Performance Gauge
0%
560.5 µs558.3 µs
semantic[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic::semantic[RadixUIAdoptionSection.jsx]
CodSpeed Performance Gauge
0%
77.1 µs76.9 µs
transformer[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer::transformer[RadixUIAdoptionSection.jsx]
CodSpeed Performance Gauge
0%
133.6 µs133.3 µs
codegen[cal.com.tsx]
tasks/benchmark/benches/codegen.rs::codegen::bench_codegen::codegen[cal.com.tsx]
CodSpeed Performance Gauge
0%
33.9 ms33.8 ms
transformer[react.development.js]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer::transformer[react.development.js]
CodSpeed Performance Gauge
0%
718 µs717.4 µs
parser[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/parser.rs::parser::bench_parser::parser[RadixUIAdoptionSection.jsx]
CodSpeed Performance Gauge
0%
83.7 µs83.7 µs
codegen[binder.ts]
tasks/benchmark/benches/codegen.rs::codegen::bench_codegen::codegen[binder.ts]
CodSpeed Performance Gauge
0%
4.1 ms4.1 ms
parser[binder.ts]
tasks/benchmark/benches/parser.rs::parser::bench_parser::parser[binder.ts]
CodSpeed Performance Gauge
0%
3.3 ms3.3 ms
parser[react.development.js]
tasks/benchmark/benches/parser.rs::parser::bench_parser::parser[react.development.js]
CodSpeed Performance Gauge
0%
1.3 ms1.3 ms
parser[cal.com.tsx]
tasks/benchmark/benches/parser.rs::parser::bench_parser::parser[cal.com.tsx]
CodSpeed Performance Gauge
0%
26.7 ms26.7 ms
linter[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/linter.rs::linter::bench_linter::linter[RadixUIAdoptionSection.jsx]
CodSpeed Performance Gauge
0%
2.5 ms2.5 ms
linter[cal.com.tsx]
tasks/benchmark/benches/linter.rs::linter::bench_linter::linter[cal.com.tsx]
CodSpeed Performance Gauge
0%
1.2 s1.2 s
formatter[binder.ts]
tasks/benchmark/benches/formatter.rs::formatter::bench_formatter::formatter[binder.ts]
CodSpeed Performance Gauge
0%
22 ms21.9 ms
estree[checker.ts]
tasks/benchmark/benches/parser.rs::parser::bench_estree::estree[checker.ts]
CodSpeed Performance Gauge
0%
104.5 ms104.5 ms
lexer[binder.ts]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer::lexer[binder.ts]
CodSpeed Performance Gauge
0%
870.2 µs870.2 µs
lexer[cal.com.tsx]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer::lexer[cal.com.tsx]
CodSpeed Performance Gauge
0%
5.3 ms5.3 ms
linter[binder.ts]
tasks/benchmark/benches/linter.rs::linter::bench_linter::linter[binder.ts]
CodSpeed Performance Gauge
0%
147.6 ms147.6 ms
formatter[cal.com.tsx]
tasks/benchmark/benches/formatter.rs::formatter::bench_formatter::formatter[cal.com.tsx]
CodSpeed Performance Gauge
0%
200.3 ms200.3 ms
isolated-declarations[vue-id.ts]
tasks/benchmark/benches/transformer.rs::transformer::bench_isolated_declarations::isolated-declarations[vue-id.ts]
CodSpeed Performance Gauge
0%
57.3 ms57.3 ms
codegen[react.development.js]
tasks/benchmark/benches/codegen.rs::codegen::bench_codegen::codegen[react.development.js]
CodSpeed Performance Gauge
0%
1.9 ms1.9 ms
codegen[RadixUIAdoptionSection.jsx]
tasks/benchmark/benches/codegen.rs::codegen::bench_codegen::codegen[RadixUIAdoptionSection.jsx]
CodSpeed Performance Gauge
0%
119.4 µs119.4 µs
semantic[cal.com.tsx]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic::semantic[cal.com.tsx]
CodSpeed Performance Gauge
0%
27.9 ms27.9 ms
transformer[binder.ts]
tasks/benchmark/benches/transformer.rs::transformer::bench_transformer::transformer[binder.ts]
CodSpeed Performance Gauge
0%
1.7 ms1.7 ms
lexer[react.development.js]
tasks/benchmark/benches/lexer.rs::lexer::bench_lexer::lexer[react.development.js]
CodSpeed Performance Gauge
0%
356.7 µs356.9 µs
semantic[binder.ts]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic::semantic[binder.ts]
CodSpeed Performance Gauge
0%
4.3 ms4.3 ms
semantic[react.development.js]
tasks/benchmark/benches/semantic.rs::semantic::bench_semantic::semantic[react.development.js]
CodSpeed Performance Gauge
0%
1.7 ms1.7 ms
formatter[react.development.js]
tasks/benchmark/benches/formatter.rs::formatter::bench_formatter::formatter[react.development.js]
CodSpeed Performance Gauge
0%
11.1 ms11.1 ms
linter[react.development.js]
tasks/benchmark/benches/linter.rs::linter::bench_linter::linter[react.development.js]
CodSpeed Performance Gauge
0%
52.6 ms52.6 ms
minifier[binder.ts]
tasks/benchmark/benches/minifier.rs::minifier::bench_minifier::minifier[binder.ts]
CodSpeed Performance Gauge
-1%
3.6 ms3.7 ms

Commits

Click on a commit to change the comparison range
Base
main
e7a49ed
-5.55%
feat(minifier): remove unused assignments for vars (#13231) I found that the temporary variable are kept. This change would remove them. Variables that were declared with `var` did not have `SymbolValue` populated and that caused those variables to bail out at this line. https://github.com/oxc-project/oxc/blob/2141c18540803218889aa3c3f1bca5f51cdb5daa/crates/oxc_minifier/src/peephole/remove_unused_expression.rs#L624-L626 I think TDZ needs to be considered when inlining the values, but does not affect removing the unused assignments.
8ca9909
1 month ago
by sapphi-red
© 2025 CodSpeed Technology
Home Terms Privacy Docs