Skip to content

Commit

Permalink
fix(es/minifier): Don't inline into arrow heads (#7099)
Browse files Browse the repository at this point in the history
**Related issue:**

 - vercel/next.js#47005
  • Loading branch information
kdy1 committed Mar 22, 2023
1 parent 1aa9a98 commit 610e1bb
Show file tree
Hide file tree
Showing 6 changed files with 992 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .prettierignore
Expand Up @@ -19,7 +19,7 @@ crates/swc_css_parser/tests/
crates/swc_css_prefixer/tests/
crates/swc_ecma_codegen/tests/
crates/swc_ecma_lints/tests/
crates/swc_ecma_minifier/tests/
crates/swc_ecma_minifier/tests/**/output.js
crates/swc_ecma_parser/tests/
crates/swc_estree_compat/tests/
crates/swc_html_codegen/tests/
Expand Down
18 changes: 18 additions & 0 deletions crates/swc_ecma_minifier/tests/fixture/next/47005/config.json
@@ -0,0 +1,18 @@
{
"defaults": true,
"conditionals": false,
"sequences": false,
"booleans": false,
"dead_code": false,
"reduce_vars": false,
"join_vars": false,
"comparisons": false,
"computed_props": false,
"evaluate": false,
"if_return": false,
"loops": false,
"collapse_vars": true,
"unused": true,
"inline": true,
"passes": 1
}

1 comment on commit 610e1bb

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: 610e1bb Previous: 2bc631d Ratio
es/full/bugs-1 302868 ns/iter (± 8561) 321833 ns/iter (± 11229) 0.94
es/full/minify/libraries/antd 1636708153 ns/iter (± 20498815) 1624682078 ns/iter (± 28735983) 1.01
es/full/minify/libraries/d3 298099978 ns/iter (± 6884705) 297899265 ns/iter (± 2998252) 1.00
es/full/minify/libraries/echarts 1242876701 ns/iter (± 7606453) 1231641967 ns/iter (± 12718899) 1.01
es/full/minify/libraries/jquery 90453153 ns/iter (± 614761) 91204490 ns/iter (± 1817176) 0.99
es/full/minify/libraries/lodash 105142359 ns/iter (± 821767) 107556001 ns/iter (± 2308095) 0.98
es/full/minify/libraries/moment 53069464 ns/iter (± 328632) 53093025 ns/iter (± 1414681) 1.00
es/full/minify/libraries/react 19259111 ns/iter (± 143858) 19234329 ns/iter (± 196481) 1.00
es/full/minify/libraries/terser 247433966 ns/iter (± 3254239) 246547587 ns/iter (± 3918240) 1.00
es/full/minify/libraries/three 445873793 ns/iter (± 4836745) 431458134 ns/iter (± 10055858) 1.03
es/full/minify/libraries/typescript 3176427535 ns/iter (± 47638124) 3068742490 ns/iter (± 13938389) 1.04
es/full/minify/libraries/victory 705458179 ns/iter (± 12472609) 677661118 ns/iter (± 12534858) 1.04
es/full/minify/libraries/vue 131270079 ns/iter (± 1797384) 130332366 ns/iter (± 1910102) 1.01
es/full/codegen/es3 26507 ns/iter (± 82) 26082 ns/iter (± 64) 1.02
es/full/codegen/es5 26630 ns/iter (± 40) 26174 ns/iter (± 56) 1.02
es/full/codegen/es2015 26622 ns/iter (± 74) 26144 ns/iter (± 54) 1.02
es/full/codegen/es2016 26602 ns/iter (± 50) 26126 ns/iter (± 49) 1.02
es/full/codegen/es2017 26568 ns/iter (± 57) 26140 ns/iter (± 59) 1.02
es/full/codegen/es2018 26583 ns/iter (± 72) 26122 ns/iter (± 37) 1.02
es/full/codegen/es2019 26589 ns/iter (± 80) 26117 ns/iter (± 59) 1.02
es/full/codegen/es2020 26527 ns/iter (± 69) 26128 ns/iter (± 66) 1.02
es/full/all/es3 176871631 ns/iter (± 4636742) 186261286 ns/iter (± 4260837) 0.95
es/full/all/es5 172701109 ns/iter (± 2181872) 177472737 ns/iter (± 4776082) 0.97
es/full/all/es2015 137497086 ns/iter (± 1764130) 139782035 ns/iter (± 2505589) 0.98
es/full/all/es2016 134824037 ns/iter (± 2973046) 138056919 ns/iter (± 2561890) 0.98
es/full/all/es2017 134238537 ns/iter (± 2213479) 137884992 ns/iter (± 1687711) 0.97
es/full/all/es2018 129232634 ns/iter (± 1732712) 137912787 ns/iter (± 4140218) 0.94
es/full/all/es2019 127286222 ns/iter (± 1496205) 133831959 ns/iter (± 1791299) 0.95
es/full/all/es2020 119401764 ns/iter (± 704887) 124279123 ns/iter (± 2128938) 0.96
es/full/parser 539940 ns/iter (± 9364) 540863 ns/iter (± 9528) 1.00
es/full/base/fixer 22344 ns/iter (± 49) 22186 ns/iter (± 50) 1.01
es/full/base/resolver_and_hygiene 84478 ns/iter (± 93) 82183 ns/iter (± 184) 1.03
serialization of ast node 124 ns/iter (± 0) 124 ns/iter (± 0) 1
serialization of serde 126 ns/iter (± 0) 127 ns/iter (± 0) 0.99
css/minify/libraries/bootstrap 28936428 ns/iter (± 144246) 28593221 ns/iter (± 183173) 1.01
css/visitor/compare/clone 2076986 ns/iter (± 23217) 2105776 ns/iter (± 15437) 0.99
css/visitor/compare/visit_mut_span 2266684 ns/iter (± 7733) 2274699 ns/iter (± 8086) 1.00
css/visitor/compare/visit_mut_span_panic 2329054 ns/iter (± 9154) 2318193 ns/iter (± 5409) 1.00
css/visitor/compare/fold_span 3052552 ns/iter (± 22379) 3041115 ns/iter (± 26759) 1.00
css/visitor/compare/fold_span_panic 3199648 ns/iter (± 24604) 3186096 ns/iter (± 31186) 1.00
css/lexer/bootstrap_5_1_3 5117678 ns/iter (± 4484) 5128836 ns/iter (± 4933) 1.00
css/lexer/foundation_6_7_4 4306101 ns/iter (± 3856) 4309060 ns/iter (± 816) 1.00
css/lexer/tailwind_3_1_1 817719 ns/iter (± 472) 821698 ns/iter (± 6461) 1.00
css/parser/bootstrap_5_1_3 22041993 ns/iter (± 186553) 21799424 ns/iter (± 118788) 1.01
css/parser/foundation_6_7_4 17458448 ns/iter (± 67049) 17376811 ns/iter (± 25567) 1.00
css/parser/tailwind_3_1_1 3331958 ns/iter (± 2624) 3337249 ns/iter (± 3840) 1.00
es/codegen/colors 327310 ns/iter (± 185129) 327051 ns/iter (± 184789) 1.00
es/codegen/large 1205080 ns/iter (± 612890) 1206010 ns/iter (± 624248) 1.00
es/codegen/with-parser/colors 47382 ns/iter (± 271) 47044 ns/iter (± 258) 1.01
es/codegen/with-parser/large 522385 ns/iter (± 1487) 523585 ns/iter (± 1334) 1.00
es/minify/libraries/antd 1449774277 ns/iter (± 20624233) 1428011295 ns/iter (± 22059872) 1.02
es/minify/libraries/d3 256779578 ns/iter (± 3170533) 253369896 ns/iter (± 5742631) 1.01
es/minify/libraries/echarts 1070279109 ns/iter (± 8613932) 1089399386 ns/iter (± 18356057) 0.98
es/minify/libraries/jquery 78392449 ns/iter (± 399254) 80067697 ns/iter (± 1230747) 0.98
es/minify/libraries/lodash 93920084 ns/iter (± 1334126) 96013019 ns/iter (± 2399485) 0.98
es/minify/libraries/moment 45487741 ns/iter (± 303904) 46002253 ns/iter (± 336405) 0.99
es/minify/libraries/react 16831412 ns/iter (± 180391) 17787130 ns/iter (± 193965) 0.95
es/minify/libraries/terser 207062347 ns/iter (± 1615327) 218699675 ns/iter (± 3677009) 0.95
es/minify/libraries/three 359371531 ns/iter (± 2982361) 389618837 ns/iter (± 19106002) 0.92
es/minify/libraries/typescript 2622938596 ns/iter (± 12358300) 2733584751 ns/iter (± 43302768) 0.96
es/minify/libraries/victory 567043851 ns/iter (± 9476212) 593816705 ns/iter (± 24070965) 0.95
es/minify/libraries/vue 114732270 ns/iter (± 747309) 123083741 ns/iter (± 3889020) 0.93
es/visitor/compare/clone 2312439 ns/iter (± 14634) 2299184 ns/iter (± 8756) 1.01
es/visitor/compare/visit_mut_span 2647609 ns/iter (± 5522) 2642575 ns/iter (± 4025) 1.00
es/visitor/compare/visit_mut_span_panic 2712570 ns/iter (± 4506) 2703352 ns/iter (± 6386) 1.00
es/visitor/compare/fold_span 3792094 ns/iter (± 15200) 3765807 ns/iter (± 12693) 1.01
es/visitor/compare/fold_span_panic 3942580 ns/iter (± 8426) 3929611 ns/iter (± 18726) 1.00
es/lexer/colors 15448 ns/iter (± 319) 15345 ns/iter (± 14) 1.01
es/lexer/angular 7430708 ns/iter (± 5323) 7349144 ns/iter (± 7287) 1.01
es/lexer/backbone 989464 ns/iter (± 988) 981666 ns/iter (± 6228) 1.01
es/lexer/jquery 5583310 ns/iter (± 3902) 5511036 ns/iter (± 6639) 1.01
es/lexer/jquery mobile 8572902 ns/iter (± 16437) 8473320 ns/iter (± 4905) 1.01
es/lexer/mootools 4424705 ns/iter (± 4020) 4364695 ns/iter (± 3144) 1.01
es/lexer/underscore 835646 ns/iter (± 1047) 825371 ns/iter (± 463) 1.01
es/lexer/three 26217358 ns/iter (± 77137) 25837245 ns/iter (± 16158) 1.01
es/lexer/yui 4670024 ns/iter (± 4271) 4633316 ns/iter (± 1674) 1.01
es/parser/colors 29290 ns/iter (± 111) 29045 ns/iter (± 55) 1.01
es/parser/angular 15266136 ns/iter (± 154913) 15064424 ns/iter (± 137184) 1.01
es/parser/backbone 2225675 ns/iter (± 13093) 2224346 ns/iter (± 15383) 1.00
es/parser/jquery 12158027 ns/iter (± 107530) 12113506 ns/iter (± 104366) 1.00
es/parser/jquery mobile 19131014 ns/iter (± 184241) 18932551 ns/iter (± 441350) 1.01
es/parser/mootools 9273294 ns/iter (± 38444) 9217556 ns/iter (± 32559) 1.01
es/parser/underscore 1880196 ns/iter (± 12095) 1879469 ns/iter (± 23355) 1.00
es/parser/three 57133848 ns/iter (± 666041) 56011440 ns/iter (± 713678) 1.02
es/parser/yui 9257893 ns/iter (± 78122) 9213639 ns/iter (± 83043) 1.00
es/preset-env/usage/builtin_type 144162 ns/iter (± 34986) 138748 ns/iter (± 32741) 1.04
es/preset-env/usage/property 21118 ns/iter (± 166) 20631 ns/iter (± 91) 1.02
es/resolver/typescript 122929684 ns/iter (± 2445151) 122615924 ns/iter (± 3465223) 1.00
es/fixer/typescript 86668790 ns/iter (± 1117811) 87129205 ns/iter (± 855154) 0.99
es/hygiene/typescript 186087163 ns/iter (± 1570260) 184548056 ns/iter (± 2673979) 1.01
es/resolver_with_hygiene/typescript 323621828 ns/iter (± 1517478) 322634436 ns/iter (± 5556435) 1.00
es/visitor/base-perf/module_clone 80215 ns/iter (± 1418) 78217 ns/iter (± 1415) 1.03
es/visitor/base-perf/fold_empty 89223 ns/iter (± 1738) 89553 ns/iter (± 1501) 1.00
es/visitor/base-perf/fold_noop_impl_all 90233 ns/iter (± 1594) 91017 ns/iter (± 875) 0.99
es/visitor/base-perf/fold_noop_impl_vec 90198 ns/iter (± 1532) 91357 ns/iter (± 1208) 0.99
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 56 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 54 ns/iter (± 0) 53 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_boxed 104 ns/iter (± 0) 102 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed 105 ns/iter (± 0) 98 ns/iter (± 0) 1.07
es/visitor/base-perf/visit_contains_this 3379 ns/iter (± 78) 3465 ns/iter (± 79) 0.98
es/base/parallel/resolver/typescript 6714561210 ns/iter (± 340888489) 6859907922 ns/iter (± 379572295) 0.98
es/base/parallel/hygiene/typescript 2247780142 ns/iter (± 37771607) 2142249846 ns/iter (± 35858642) 1.05
misc/visitors/time-complexity/time 5 95 ns/iter (± 0) 95 ns/iter (± 0) 1
misc/visitors/time-complexity/time 10 294 ns/iter (± 8) 292 ns/iter (± 9) 1.01
misc/visitors/time-complexity/time 15 599 ns/iter (± 7) 599 ns/iter (± 1) 1
misc/visitors/time-complexity/time 20 1140 ns/iter (± 16) 1122 ns/iter (± 0) 1.02
misc/visitors/time-complexity/time 40 6033 ns/iter (± 85) 5921 ns/iter (± 42) 1.02
misc/visitors/time-complexity/time 60 15206 ns/iter (± 40) 15426 ns/iter (± 311) 0.99
es/full-target/es2016 250198 ns/iter (± 522) 250124 ns/iter (± 1122) 1.00
es/full-target/es2017 243323 ns/iter (± 696) 242261 ns/iter (± 402) 1.00
es/full-target/es2018 231965 ns/iter (± 560) 231133 ns/iter (± 753) 1.00
es2020_nullish_coalescing 90225 ns/iter (± 403) 91232 ns/iter (± 247) 0.99
es2020_optional_chaining 123400 ns/iter (± 442) 124927 ns/iter (± 461) 0.99
es2022_class_properties 147148 ns/iter (± 1004) 146967 ns/iter (± 257) 1.00
es2018_object_rest_spread 94193 ns/iter (± 428) 94759 ns/iter (± 215) 0.99
es2019_optional_catch_binding 83995 ns/iter (± 209) 84079 ns/iter (± 196) 1.00
es2017_async_to_generator 84443 ns/iter (± 184) 85045 ns/iter (± 172) 0.99
es2016_exponentiation 88576 ns/iter (± 498) 88938 ns/iter (± 107) 1.00
es2015_arrow 92853 ns/iter (± 398) 93197 ns/iter (± 181) 1.00
es2015_block_scoped_fn 89908 ns/iter (± 348) 91041 ns/iter (± 264) 0.99
es2015_block_scoping 168572 ns/iter (± 686) 168483 ns/iter (± 330) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.