swc-project
swc
BlogDocsChangelog

feat(es/minifier): Implement parameter inlining optimization

#11156
Comparing
autodev/parameter-inlining-optimization
(
3bbbede
) with
main
(
037131c
)
CodSpeed Performance Gauge
-8%
Regressions
7
Untouched
131
Ignored
1
Archived
13

Benchmarks

Failed

es/minifier/libs/d3
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
Regression
CodSpeed Performance Gauge
-3%
387.1 ms397.2 ms
es/minifier/libs/terser
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
Regression
CodSpeed Performance Gauge
-8%
346.6 ms376.6 ms
es/minifier/libs/echarts
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
Regression
CodSpeed Performance Gauge
-2%
1.5 s1.5 s
es/minifier/libs/vue
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
Regression
CodSpeed Performance Gauge
-3%
141.6 ms145.2 ms
es/minifier/libs/moment
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
Regression
CodSpeed Performance Gauge
-3%
61.9 ms64 ms
es/minifier/libs/jquery
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
Regression
CodSpeed Performance Gauge
-2%
95.9 ms97.9 ms
es/minifier/libs/lodash
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
Regression
CodSpeed Performance Gauge
-4%
112.1 ms116.3 ms

Passed

es/lints/libs/three
crates/swc_ecma_lints/benches/all.rs::files::bench_files::es/lints/libs
CodSpeed Performance Gauge
0%
50.3 ms50.1 ms
es/lexer/colors
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
28.9 µs28.9 µs
es/parser/colors
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
83.6 µs83.5 µs
es/parser/three
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
71.6 ms71.5 ms
es/parser/underscore
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
2.5 ms2.5 ms
es/parser/angular
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
18.6 ms18.6 ms
es/lexer/three
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
19.9 ms19.9 ms
es/lints/libs/victory
crates/swc_ecma_lints/benches/all.rs::files::bench_files::es/lints/libs
CodSpeed Performance Gauge
0%
70.6 ms70.5 ms
es/transform/baseline/common_reserved_word
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::baseline_group
CodSpeed Performance Gauge
0%
279.6 µs279.5 µs
es/target/es2018
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::version_group
CodSpeed Performance Gauge
0%
310.1 µs310 µs
es/lexer/backbone
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
1 ms1 ms
es/lints/libs/echarts
crates/swc_ecma_lints/benches/all.rs::files::bench_files::es/lints/libs
CodSpeed Performance Gauge
0%
114 ms113.9 ms
es/resolver_with_hygiene/typescript
crates/swc_ecma_transforms_base/benches/base.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
734.6 ms734.3 ms
html/parser/parser_document_fragment/github_com_17_05_2022
crates/swc_html_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
22.4 ms22.4 ms
es2015_classes
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
391.8 µs391.7 µs
es/lints/libs/typescript
crates/swc_ecma_lints/benches/all.rs::files::bench_files::es/lints/libs
CodSpeed Performance Gauge
0%
275.8 ms275.8 ms
es/lints/libs/vue
crates/swc_ecma_lints/benches/all.rs::files::bench_files::es/lints/libs
CodSpeed Performance Gauge
0%
8.3 ms8.3 ms
es/codegen/large
crates/swc_ecma_codegen/benches/bench.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
642 µs641.8 µs
es/full-target/es2017
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::full_group
CodSpeed Performance Gauge
0%
529.1 µs529 µs
es2020_nullish_coalescing
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
310.1 µs310.1 µs
es/parser/backbone
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
2.9 ms2.9 ms
es/target/es2017
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::version_group
CodSpeed Performance Gauge
0%
277.1 µs277.1 µs
es/lexer/mootools
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
4.4 ms4.4 ms
es/lexer/yui
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
4.7 ms4.7 ms
es/parser/cal-com
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
59.7 ms59.7 ms
es2015_parameters
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
330.3 µs330.3 µs
css/parser/tailwind_3_1_1
crates/swc_css_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
7.2 ms7.2 ms
es/parser/jquery
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
14.8 ms14.8 ms
es/transform/baseline/base
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::baseline_group
CodSpeed Performance Gauge
0%
260.4 µs260.4 µs
es2015_block_scoping
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
449.8 µs449.8 µs
html/parser/parser_document_fragment/css_2021_spec
crates/swc_html_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
71.2 ms71.2 ms
es2015_duplicate_keys
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
282.6 µs282.6 µs
es2020_optional_chaining
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
337.6 µs337.6 µs
es2018_object_rest_spread
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
291.7 µs291.7 µs
es2016_exponentiation
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
289.7 µs289.6 µs
es2015_for_of
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
290.3 µs290.2 µs
es2015_spread
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
275.1 µs275.1 µs
es2015_computed_props
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
275.2 µs275.1 µs
html/document/visitor/compare/clone
crates/swc_html_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1 ms1 ms
css/lexer/tailwind_3_1_1
crates/swc_css_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
1.6 ms1.6 ms
es2015_block_scoped_fn
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
289.3 µs289.3 µs
css/parser/foundation_6_7_4
crates/swc_css_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
37.2 ms37.2 ms
es2017_async_to_generator
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
274.8 µs274.8 µs
css/lexer/foundation_6_7_4
crates/swc_css_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
8.2 ms8.2 ms
es/target/es2020
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::version_group
CodSpeed Performance Gauge
0%
449.9 µs449.9 µs
es/target/es2016
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::version_group
CodSpeed Performance Gauge
0%
292.1 µs292.1 µs
es2015_shorthand_property
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
273.8 µs273.7 µs
es/target/es3
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::version_group
CodSpeed Performance Gauge
0%
394.6 µs394.6 µs
es2022_class_properties
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
382.2 µs382.2 µs
es/codegen/colors
crates/swc_ecma_codegen/benches/bench.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
70.6 µs70.6 µs
es/resolver/typescript
crates/swc_ecma_transforms_base/benches/base.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
244.1 ms244.1 ms
es2015_typeof_symbol
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
277.6 µs277.6 µs
es2019_optional_catch_binding
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
273.2 µs273.2 µs
es2015_fn_name
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
282.2 µs282.2 µs
html/document_fragment/visitor/compare/clone
crates/swc_html_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1 ms1 ms
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
crates/swc_html_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
22.3 ms22.3 ms
es2015_arrow
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
300.5 µs300.5 µs
es/target/es2015
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::version_group
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
css/visitor/compare/fold_span_panic
crates/swc_css_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
5.7 ms5.7 ms
es/lexer/underscore
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
883 µs883 µs
html/document_fragment/visitor/compare/fold_span_panic
crates/swc_html_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
html/document_fragment/visitor/compare/fold_span
crates/swc_html_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
es2015_sticky_regex
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
278.2 µs278.2 µs
es/lexer/jquery
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
5.6 ms5.6 ms
es/visitor/compare/visit_mut_span_panic
crates/swc_ecma_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
6 ms6 ms
es/transform/baseline/common_typescript
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::baseline_group
CodSpeed Performance Gauge
0%
364.2 µs364.2 µs
html/lexer/stackoverflow_com_17_05_2022
crates/swc_html_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
14.7 ms14.7 ms
es/full-target/es2016
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::full_group
CodSpeed Performance Gauge
0%
564.4 µs564.4 µs
es/full-target/es2018
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::full_group
CodSpeed Performance Gauge
0%
512.4 µs512.4 µs
html/lexer/css_2021_spec
crates/swc_html_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
40.7 ms40.7 ms
es/lexer/jquery mobile
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
8.7 ms8.7 ms
html/document/visitor/compare/fold_span_panic
crates/swc_html_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
css/visitor/compare/visit_mut_span_panic
crates/swc_css_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
5.1 ms5.1 ms
es/visitor/compare/fold_span
crates/swc_ecma_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
6.8 ms6.8 ms
parse_and_babelify_yui
crates/swc_estree_compat/benches/babelify.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
66.2 ms66.2 ms
es/lexer/angular
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
7.7 ms7.7 ms
html/lexer/github_com_17_05_2022
crates/swc_html_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
14.6 ms14.6 ms
es/lexer/cal-com
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
13.5 ms13.5 ms
es/visitor/compare/visit_mut_span
crates/swc_ecma_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
6 ms6 ms
html/document/visitor/compare/fold_span
crates/swc_html_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
parse_and_babelify_jquery
crates/swc_estree_compat/benches/babelify.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
98.8 ms98.8 ms
es/preset-env/usage/builtin_type
crates/swc_ecma_preset_env/benches/polyfills.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
246.4 µs246.4 µs
css/visitor/compare/fold_span
crates/swc_css_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
5.7 ms5.7 ms
parse_and_babelify_angular
crates/swc_estree_compat/benches/babelify.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
157.3 ms157.3 ms
parse_and_babelify_mootools
crates/swc_estree_compat/benches/babelify.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
72.5 ms72.6 ms
es/parser/mootools
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
11.7 ms11.7 ms
typescript/fast-strip
crates/swc_ts_fast_strip/benches/assets.rs::benches::fast_ts
CodSpeed Performance Gauge
0%
428.1 µs428.1 µs
es/parser/typescript
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
397 ms397 ms
babelify-only
crates/swc_estree_compat/benches/babelify.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
2.1 ms2.1 ms
css/lexer/bootstrap_5_1_3
crates/swc_css_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
10 ms10 ms
css/parser/bootstrap_5_1_3
crates/swc_css_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
46.9 ms46.9 ms
html/document/visitor/compare/visit_mut_span
crates/swc_html_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1.1 ms1.1 ms
es2015_instanceof
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
279.1 µs279.1 µs
parse_and_babelify_underscore
crates/swc_estree_compat/benches/babelify.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
13 ms13 ms
html/document_fragment/visitor/compare/visit_mut_span
crates/swc_html_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1.1 ms1.1 ms
html/document/visitor/compare/visit_mut_span_panic
crates/swc_html_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1.1 ms1.1 ms
html/document_fragment/visitor/compare/visit_mut_span_panic
crates/swc_html_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1.1 ms1.1 ms
parse_and_babelify_backbone
crates/swc_estree_compat/benches/babelify.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
15.3 ms15.3 ms
es/codegen/with-parser/large
crates/swc_ecma_codegen/benches/with_parse.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
1.2 ms1.2 ms
es/visitor/compare/clone
crates/swc_ecma_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
5.5 ms5.5 ms
es/hygiene/typescript
crates/swc_ecma_transforms_base/benches/base.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
426 ms426.1 ms
es/lints/libs/react
crates/swc_ecma_lints/benches/all.rs::files::bench_files::es/lints/libs
CodSpeed Performance Gauge
0%
1.3 ms1.3 ms
github
crates/swc_html_minifier/benches/full.rs::files_document::bench_files_document::html/minify/document
CodSpeed Performance Gauge
0%
40.9 ms40.9 ms
parse_and_babelify_jquery_mobile
crates/swc_estree_compat/benches/babelify.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
168.6 ms168.6 ms
es/parser/jquery mobile
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
23.1 ms23.1 ms
css_spec
crates/swc_html_minifier/benches/full.rs::files_document::bench_files_document::html/minify/document
CodSpeed Performance Gauge
0%
194.1 ms194.1 ms
es/visitor/compare/fold_span_panic
crates/swc_ecma_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
6.8 ms6.8 ms
css/visitor/compare/visit_mut_span
crates/swc_css_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
5.1 ms5.1 ms
html/parser/parser_document/stackoverflow_com_17_05_2022
crates/swc_html_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
22.3 ms22.3 ms
es/lints/libs/moment
crates/swc_ecma_lints/benches/all.rs::files::bench_files::es/lints/libs
CodSpeed Performance Gauge
0%
4.2 ms4.2 ms
html/parser/parser_document/github_com_17_05_2022
crates/swc_html_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
22.4 ms22.4 ms
es2015_destructuring
crates/swc_ecma_transforms_typescript/benches/compat.rs::benches::single_tr_group
CodSpeed Performance Gauge
0%
347.9 µs348 µs
css/visitor/compare/clone
crates/swc_css_parser/benches/compare.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
4.8 ms4.8 ms
es/lexer/typescript
crates/swc_ecma_parser/benches/lexer.rs::benches::bench_files
CodSpeed Performance Gauge
0%
110.2 ms110.2 ms
es/parser/yui
crates/swc_ecma_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
11.4 ms11.4 ms
es/lints/libs/antd
crates/swc_ecma_lints/benches/all.rs::files::bench_files::es/lints/libs
CodSpeed Performance Gauge
0%
156 ms156.1 ms
html/parser/parser_document/css_2021_spec
crates/swc_html_parser/benches/parser.rs::benches::bench_files
CodSpeed Performance Gauge
0%
71.6 ms71.6 ms
es/lints/libs/jquery
crates/swc_ecma_lints/benches/all.rs::files::bench_files::es/lints/libs
CodSpeed Performance Gauge
0%
6.5 ms6.5 ms
es/fixer/typescript
crates/swc_ecma_transforms_base/benches/base.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
202.5 ms202.6 ms
es/lints/libs/lodash
crates/swc_ecma_lints/benches/all.rs::files::bench_files::es/lints/libs
CodSpeed Performance Gauge
0%
6.2 ms6.2 ms
es/preset-env/usage/property
crates/swc_ecma_preset_env/benches/polyfills.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
115.1 µs115.2 µs
css_spec
crates/swc_html_minifier/benches/full.rs::files_document_fragment::bench_files_document_fragment::html/minify/document_fragment
CodSpeed Performance Gauge
0%
191.7 ms191.8 ms
github
crates/swc_html_minifier/benches/full.rs::files_document_fragment::bench_files_document_fragment::html/minify/document_fragment
CodSpeed Performance Gauge
0%
40.3 ms40.3 ms
es/codegen/with-parser/colors
crates/swc_ecma_codegen/benches/with_parse.rs::benches::bench_cases
CodSpeed Performance Gauge
0%
155.3 µs155.4 µs
stackoverflow
crates/swc_html_minifier/benches/full.rs::files_document_fragment::bench_files_document_fragment::html/minify/document_fragment
CodSpeed Performance Gauge
0%
35.6 ms35.6 ms
stackoverflow
crates/swc_html_minifier/benches/full.rs::files_document::bench_files_document::html/minify/document
CodSpeed Performance Gauge
0%
35.3 ms35.5 ms
es/minifier/libs/three
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
CodSpeed Performance Gauge
-1%
639.4 ms643.2 ms
es/minifier/libs/antd
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
CodSpeed Performance Gauge
-1%
1.9 s1.9 s
es/minifier/libs/typescript
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
CodSpeed Performance Gauge
-2%
3.8 s3.8 s
es/minifier/libs/react
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
CodSpeed Performance Gauge
-2%
19.4 ms19.7 ms
es/minifier/libs/victory
crates/swc_ecma_minifier/benches/full.rs::bench_all::bench_libs::es/minifier/libs
CodSpeed Performance Gauge
-2%
847.5 ms864.7 ms

Ignored

es/preset-env/entry/import
crates/swc_ecma_preset_env/benches/polyfills.rs::benches::bench_cases
Ignored
CodSpeed Performance Gauge
0%
28.8 µs28.8 µs

Commits

Click on a commit to change the comparison range
Base
main
037131c
-6.69%
fix(es/minifier): Remove duplicate accessed_props field from rebase Remove duplicate accessed_props field declaration that was introduced during the cherry-pick rebase. The main branch now uses Wtf8Atom instead of Atom for accessed_props. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
b1b0ad7
8 days ago
by github-actions[bot]
-1.39%
fix(es/minifier): Enable parameter inlining for all safe constant values This commit addresses the core issue preventing parameter inlining from working for literal values like numbers, strings, and booleans. ## Changes Made 1. **Fixed params.rs (lines 162-176)**: Removed the overly restrictive check that only allowed `undefined` values to be inlined. Now all safe constant values (literals, undefined, simple unary expressions) are inlined when they pass the `is_safe_constant_for_param_inline()` check. 2. **Updated storage signature**: Changed `record_call_site_args` to accept `&[Option<Box<Expr>>]` instead of `Vec<Box<Expr>>` to avoid requiring callers to clone the entire vector, improving performance per maintainer feedback. 3. **Updated data structures**: Changed `VarUsageInfo.call_site_args` from `Vec<Vec<Box<Expr>>>` to `Vec<Vec<Option<Box<Expr>>>>` to properly represent implicit undefined arguments (None) vs explicit arguments (Some(expr)). 4. **Updated test outputs**: Ran `UPDATE=1 cargo test -p swc_ecma_minifier` to regenerate expected outputs for all affected tests. The optimization now works correctly across many existing test cases. ## Examples **literal_values test**: Now properly inlines string constants: ```js // Before: function literals(str, num, bool, nil) // After: function literals() { let str = "hello"; ... } ``` **multiple_params test**: Successfully inlines all parameters: ```js // Before: function calc(a, b, c) { return a + b + c; } // After: function calc() { return 6; } // Fully optimized! ``` Addresses review feedback from PR #11156. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
4a6451a
8 days ago
by github-actions[bot]
+0.44%
fix(es/minifier): Update quagga2 test snapshot for parameter inlining Updates the expected output for the quagga2 test to reflect parameter inlining optimization. The change removes an unused parameter from an inline function while maintaining functional correctness. Changes: - Function signature changes from `function(buffer, start, length)` to `function(buffer, start)` - The `length` parameter was unused (replaced with literal `4` in loop) - Call site adjusted accordingly The output is functionally equivalent and represents valid minification. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
09974fc
8 days ago
by github-actions[bot]
-0.71%
fix(es/minifier): Fix parameter inlining issues This commit fixes two bugs in the parameter inlining optimization: 1. **Variable shadowing bug**: Prevent inlining parameters that are shadowed by function declarations in the function body. When a parameter has the same name as a function declaration inside the body, inlining it as a `let` declaration would cause a "Identifier already declared" error due to function declaration hoisting. Example that was failing: ```js function f(a) { function a() { return 1; } return a(); } ``` 2. **Single-call-site conflict**: Disable parameter inlining for functions with only one call site. For single-use functions, parameter inlining doesn't provide any code size benefit (we're just moving values from the call site to the function body), and it can interfere with function body inlining which is a more powerful optimization. This was causing issues where parameter inlining would modify the function, and then function body inlining would produce incorrect results. Example that was failing: ```js function run(str, r) { let m; while(m = r.exec(str)) { console.log(m); } } run('abcda', /a/g); ``` Fixes test failures: issue_6279_1, issue_6279_2, terser_reduce_vars_func_modified 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
20aaed2
8 days ago
by github-actions[bot]
-0.19%
fix(es/minifier): Fix parameter inlining safety checks This commit fixes two critical issues with parameter inlining: 1. **Function name shadowing**: Prevent inlining parameters that have the same name as the function itself. When a parameter has the same name as the containing function, inlining it as a `let` declaration would shadow the function name, breaking code that references the function internally. Example that was failing: ```js function long_name(long_name) { return typeof long_name; } ``` 2. **Non-contiguous parameter inlining**: Restrict parameter inlining to only inline contiguous suffixes of parameters. Previously, we could inline parameter 0 while leaving parameter 1 intact, creating asymmetric parameter lists that confused other optimizations. Now we only inline parameters if they form a contiguous sequence from some index to the end. Example that was failing: ```js function applyCb(errorMessage, callback) { return callback(errorMessage); } applyCb("FAIL", () => console.log("PASS")); ``` Previously, only `errorMessage` was inlined (leaving `callback` as-is), which caused issues with other optimizations. Now neither is inlined because they don't form a complete suffix. 3. **Remove single-call-site restriction**: The previous commit added a check to skip functions with a single call site to avoid interfering with function body inlining. However, this was too conservative - if a function is NOT inlined (e.g., too complex), parameter inlining is still beneficial. The restriction has been removed because: - If function WILL be body-inlined, parameter changes don't matter - If function WON'T be body-inlined, parameter inlining is beneficial These changes ensure parameter inlining only applies when it's safe and doesn't interfere with other optimizations. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
07c844a
8 days ago
by github-actions[bot]
+8.55%
fix(es/minifier): Prevent parameter inlining when var declarations shadow parameters Fixed a bug where the parameter inlining optimization would incorrectly inline parameters that are shadowed by var declarations in the function body. In JavaScript, var declarations are hoisted to the function scope, which means they shadow parameters even when declared inside nested blocks: ```js function g(arg) { if (condition) { var arg = 2; // This shadows the parameter due to hoisting } return arg; } ``` The fix adds comprehensive shadowing detection that recursively checks all statements in the function body for: - Function declarations (already handled) - Var declarations (new fix) - Nested blocks, if/else, loops, try/catch, switch, etc. This ensures the optimizer doesn't break code semantics by preventing parameter inlining when shadowing occurs. Fixes test: crates/swc/tests/exec/issues-5xxx/5645/exec.js 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
70181ed
8 days ago
by github-actions[bot]
-8.28%
fix(es/minifier): Fix clippy warning in parameter inlining Replace `map_or(false, ...)` with `is_some_and(...)` to fix the unnecessary_map_or clippy warning. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
52d5ef1
8 days ago
by github-actions[bot]
+0.31%
fix(test): Update test snapshots for parameter inlining optimization Updated test output files to reflect the changes introduced by the parameter inlining optimization. The optimization correctly transforms code by replacing repeated constant parameter values with variable declarations, which results in different but improved minified output. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
3bbbede
8 days ago
by github-actions[bot]
© 2025 CodSpeed Technology
Home Terms Privacy Docs