Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(es/minifier): Abort sequential inliner on optional chaining (#6637)
**Related issue:** - Closes #6636.
- Loading branch information
Showing
4 changed files
with
22 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 7 additions & 0 deletions
7
crates/swc_ecma_minifier/tests/fixture/issues/6636/config.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"passes": 2, | ||
"toplevel": true, | ||
"defaults": true, | ||
"sequences": true, | ||
"collapse_vars": true | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
export function memo(fn, opts) { | ||
let result; | ||
return () => { | ||
result = fn(...newDeps); | ||
opts?.onChange?.(result); | ||
return result; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
export function memo(fn, opts) { | ||
let result; | ||
return ()=>(result = fn(...newDeps), opts?.onChange?.(result), result); | ||
} |
e4e4d6c
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark
es/full/bugs-1
299433
ns/iter (± 18704
)305180
ns/iter (± 8562
)0.98
es/full/minify/libraries/antd
1626232816
ns/iter (± 15620583
)1821727644
ns/iter (± 12673173
)0.89
es/full/minify/libraries/d3
333611911
ns/iter (± 5536587
)351660191
ns/iter (± 5768160
)0.95
es/full/minify/libraries/echarts
1405835474
ns/iter (± 14542912
)1545893761
ns/iter (± 15978758
)0.91
es/full/minify/libraries/jquery
92221038
ns/iter (± 967960
)96743209
ns/iter (± 819669
)0.95
es/full/minify/libraries/lodash
110616947
ns/iter (± 1757873
)116157166
ns/iter (± 1797017
)0.95
es/full/minify/libraries/moment
53278394
ns/iter (± 690598
)56330212
ns/iter (± 524342
)0.95
es/full/minify/libraries/react
19743294
ns/iter (± 335990
)20779444
ns/iter (± 269910
)0.95
es/full/minify/libraries/terser
256926888
ns/iter (± 3093971
)287685880
ns/iter (± 7139778
)0.89
es/full/minify/libraries/three
471768023
ns/iter (± 6628468
)545341462
ns/iter (± 9935480
)0.87
es/full/minify/libraries/typescript
3070819297
ns/iter (± 24547972
)3476360428
ns/iter (± 23573410
)0.88
es/full/minify/libraries/victory
675538048
ns/iter (± 8534132
)807338179
ns/iter (± 15556870
)0.84
es/full/minify/libraries/vue
135247028
ns/iter (± 1946211
)145229267
ns/iter (± 3185360
)0.93
es/full/codegen/es3
28457
ns/iter (± 104
)27950
ns/iter (± 70
)1.02
es/full/codegen/es5
28446
ns/iter (± 39
)27995
ns/iter (± 56
)1.02
es/full/codegen/es2015
28450
ns/iter (± 68
)27961
ns/iter (± 42
)1.02
es/full/codegen/es2016
28420
ns/iter (± 71
)27947
ns/iter (± 50
)1.02
es/full/codegen/es2017
28480
ns/iter (± 83
)27955
ns/iter (± 93
)1.02
es/full/codegen/es2018
28540
ns/iter (± 45
)27946
ns/iter (± 53
)1.02
es/full/codegen/es2019
28456
ns/iter (± 44
)27953
ns/iter (± 32
)1.02
es/full/codegen/es2020
28490
ns/iter (± 87
)27953
ns/iter (± 51
)1.02
es/full/all/es3
167756246
ns/iter (± 3366952
)171510483
ns/iter (± 1528953
)0.98
es/full/all/es5
160496324
ns/iter (± 3280817
)165261229
ns/iter (± 1809579
)0.97
es/full/all/es2015
120257407
ns/iter (± 919529
)122017717
ns/iter (± 1706313
)0.99
es/full/all/es2016
122167821
ns/iter (± 1832109
)121910969
ns/iter (± 1635779
)1.00
es/full/all/es2017
119360856
ns/iter (± 1141148
)120955127
ns/iter (± 808261
)0.99
es/full/all/es2018
118101182
ns/iter (± 1654961
)119899035
ns/iter (± 1333914
)0.99
es/full/all/es2019
117329299
ns/iter (± 891268
)117969844
ns/iter (± 1411067
)0.99
es/full/all/es2020
113327928
ns/iter (± 1787787
)114273813
ns/iter (± 1861377
)0.99
es/full/parser
510695
ns/iter (± 7136
)521632
ns/iter (± 8513
)0.98
es/full/base/fixer
22076
ns/iter (± 34
)22029
ns/iter (± 78
)1.00
es/full/base/resolver_and_hygiene
77771
ns/iter (± 97
)77985
ns/iter (± 91
)1.00
serialization of ast node
161
ns/iter (± 0
)142
ns/iter (± 0
)1.13
serialization of serde
126
ns/iter (± 0
)127
ns/iter (± 0
)0.99
css/minify/libraries/bootstrap
27053336
ns/iter (± 64260
)28467119
ns/iter (± 267891
)0.95
css/visitor/compare/clone
2115201
ns/iter (± 8857
)2115270
ns/iter (± 11946
)1.00
css/visitor/compare/visit_mut_span
2308505
ns/iter (± 6436
)2329817
ns/iter (± 19132
)0.99
css/visitor/compare/visit_mut_span_panic
2343089
ns/iter (± 7483
)2346966
ns/iter (± 10133
)1.00
css/visitor/compare/fold_span
3023430
ns/iter (± 27152
)3040387
ns/iter (± 32638
)0.99
css/visitor/compare/fold_span_panic
3139339
ns/iter (± 27395
)3152494
ns/iter (± 21674
)1.00
css/lexer/bootstrap_5_1_3
5195039
ns/iter (± 5260
)5196663
ns/iter (± 11221
)1.00
css/lexer/foundation_6_7_4
4401551
ns/iter (± 4586
)4451595
ns/iter (± 2072
)0.99
css/lexer/tailwind_3_1_1
826341
ns/iter (± 542
)834809
ns/iter (± 749
)0.99
css/parser/bootstrap_5_1_3
20657876
ns/iter (± 46703
)21010217
ns/iter (± 98606
)0.98
css/parser/foundation_6_7_4
16560747
ns/iter (± 101193
)16838495
ns/iter (± 97222
)0.98
css/parser/tailwind_3_1_1
3186149
ns/iter (± 2285
)3181769
ns/iter (± 3430
)1.00
es/codegen/colors
326618
ns/iter (± 182990
)322493
ns/iter (± 180703
)1.01
es/codegen/large
1240883
ns/iter (± 627669
)1236856
ns/iter (± 643500
)1.00
es/codegen/with-parser/colors
45473
ns/iter (± 435
)45559
ns/iter (± 110
)1.00
es/codegen/with-parser/large
513692
ns/iter (± 2248
)515044
ns/iter (± 1925
)1.00
es/minify/libraries/antd
1418475939
ns/iter (± 9416368
)1568584216
ns/iter (± 19363812
)0.90
es/minify/libraries/d3
287448463
ns/iter (± 5727087
)295949459
ns/iter (± 5927991
)0.97
es/minify/libraries/echarts
1211713336
ns/iter (± 15291257
)1287150182
ns/iter (± 10634515
)0.94
es/minify/libraries/jquery
79669683
ns/iter (± 1150208
)80992645
ns/iter (± 1565303
)0.98
es/minify/libraries/lodash
97599042
ns/iter (± 785136
)99878726
ns/iter (± 1767122
)0.98
es/minify/libraries/moment
46291122
ns/iter (± 405462
)46765452
ns/iter (± 570470
)0.99
es/minify/libraries/react
17449239
ns/iter (± 271709
)17766031
ns/iter (± 277651
)0.98
es/minify/libraries/terser
218835906
ns/iter (± 2262928
)226771050
ns/iter (± 5669871
)0.97
es/minify/libraries/three
388569218
ns/iter (± 5867866
)425116357
ns/iter (± 10360983
)0.91
es/minify/libraries/typescript
2654368341
ns/iter (± 12815825
)2911120660
ns/iter (± 36184541
)0.91
es/minify/libraries/victory
574555195
ns/iter (± 12623719
)616969001
ns/iter (± 11884979
)0.93
es/minify/libraries/vue
119376583
ns/iter (± 2282741
)120878183
ns/iter (± 1306192
)0.99
es/visitor/compare/clone
2421477
ns/iter (± 30440
)2415878
ns/iter (± 14787
)1.00
es/visitor/compare/visit_mut_span
2829008
ns/iter (± 15440
)2782845
ns/iter (± 7919
)1.02
es/visitor/compare/visit_mut_span_panic
2871575
ns/iter (± 9397
)2855521
ns/iter (± 2441
)1.01
es/visitor/compare/fold_span
3982781
ns/iter (± 47724
)3942633
ns/iter (± 10578
)1.01
es/visitor/compare/fold_span_panic
4099937
ns/iter (± 7792
)4090972
ns/iter (± 44564
)1.00
es/lexer/colors
17364
ns/iter (± 24
)17559
ns/iter (± 17
)0.99
es/lexer/angular
8242480
ns/iter (± 6566
)8242797
ns/iter (± 3638
)1.00
es/lexer/backbone
1077334
ns/iter (± 1444
)1075689
ns/iter (± 435
)1.00
es/lexer/jquery
5972973
ns/iter (± 11405
)5962106
ns/iter (± 20407
)1.00
es/lexer/jquery mobile
9208351
ns/iter (± 8175
)9184496
ns/iter (± 5087
)1.00
es/lexer/mootools
4684491
ns/iter (± 2813
)4682830
ns/iter (± 2194
)1.00
es/lexer/underscore
896995
ns/iter (± 1572
)897714
ns/iter (± 374
)1.00
es/lexer/three
27982188
ns/iter (± 38175
)27993630
ns/iter (± 42112
)1.00
es/lexer/yui
5053541
ns/iter (± 1453
)5063631
ns/iter (± 1920
)1.00
es/parser/colors
30954
ns/iter (± 175
)31275
ns/iter (± 179
)0.99
es/parser/angular
16116953
ns/iter (± 144473
)16523626
ns/iter (± 216865
)0.98
es/parser/backbone
2330480
ns/iter (± 10874
)2348448
ns/iter (± 13297
)0.99
es/parser/jquery
12835828
ns/iter (± 157933
)12903045
ns/iter (± 112459
)0.99
es/parser/jquery mobile
20355035
ns/iter (± 299088
)21493787
ns/iter (± 576045
)0.95
es/parser/mootools
9637606
ns/iter (± 73482
)9929643
ns/iter (± 100876
)0.97
es/parser/underscore
1979843
ns/iter (± 10585
)1988138
ns/iter (± 11732
)1.00
es/parser/three
59081327
ns/iter (± 412221
)62020623
ns/iter (± 253790
)0.95
es/parser/yui
9750696
ns/iter (± 92096
)9839479
ns/iter (± 91459
)0.99
es/preset-env/usage/builtin_type
143844
ns/iter (± 33506
)139730
ns/iter (± 31062
)1.03
es/preset-env/usage/property
21394
ns/iter (± 108
)21394
ns/iter (± 74
)1
es/resolver/typescript
110286926
ns/iter (± 1639109
)121319696
ns/iter (± 2564322
)0.91
es/fixer/typescript
86708097
ns/iter (± 1118326
)96045068
ns/iter (± 1321318
)0.90
es/hygiene/typescript
169138590
ns/iter (± 2426743
)197160509
ns/iter (± 1463961
)0.86
es/resolver_with_hygiene/typescript
299457886
ns/iter (± 4037017
)335480084
ns/iter (± 3687895
)0.89
es/visitor/base-perf/module_clone
74168
ns/iter (± 640
)74837
ns/iter (± 1378
)0.99
es/visitor/base-perf/fold_empty
85938
ns/iter (± 1881
)87906
ns/iter (± 1519
)0.98
es/visitor/base-perf/fold_noop_impl_all
85940
ns/iter (± 928
)86983
ns/iter (± 1224
)0.99
es/visitor/base-perf/fold_noop_impl_vec
86324
ns/iter (± 1225
)88044
ns/iter (± 1271
)0.98
es/visitor/base-perf/boxing_boxed_clone
56
ns/iter (± 0
)56
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed_clone
58
ns/iter (± 0
)58
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
103
ns/iter (± 0
)103
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed
102
ns/iter (± 0
)101
ns/iter (± 0
)1.01
es/visitor/base-perf/visit_contains_this
3552
ns/iter (± 46
)3405
ns/iter (± 52
)1.04
es/base/parallel/resolver/typescript
5328541224
ns/iter (± 428587174
)5648087437
ns/iter (± 360556699
)0.94
es/base/parallel/hygiene/typescript
1986643377
ns/iter (± 27521604
)2297920286
ns/iter (± 39827223
)0.86
misc/visitors/time-complexity/time 5
102
ns/iter (± 0
)107
ns/iter (± 0
)0.95
misc/visitors/time-complexity/time 10
344
ns/iter (± 2
)327
ns/iter (± 0
)1.05
misc/visitors/time-complexity/time 15
672
ns/iter (± 0
)667
ns/iter (± 0
)1.01
misc/visitors/time-complexity/time 20
1218
ns/iter (± 1
)1227
ns/iter (± 0
)0.99
misc/visitors/time-complexity/time 40
6652
ns/iter (± 27
)6208
ns/iter (± 1
)1.07
misc/visitors/time-complexity/time 60
17028
ns/iter (± 25
)15641
ns/iter (± 22
)1.09
es/full-target/es2016
188176
ns/iter (± 629
)187053
ns/iter (± 517
)1.01
es/full-target/es2017
181526
ns/iter (± 742
)181438
ns/iter (± 540
)1.00
es/full-target/es2018
170870
ns/iter (± 717
)169778
ns/iter (± 298
)1.01
es2020_nullish_coalescing
65597
ns/iter (± 155
)66073
ns/iter (± 55
)0.99
es2020_optional_chaining
95376
ns/iter (± 8791
)94674
ns/iter (± 6929
)1.01
es2022_class_properties
92970
ns/iter (± 157
)91736
ns/iter (± 186
)1.01
es2018_object_rest_spread
70345
ns/iter (± 178
)70697
ns/iter (± 122
)1.00
es2019_optional_catch_binding
60238
ns/iter (± 117
)60391
ns/iter (± 85
)1.00
es2017_async_to_generator
60809
ns/iter (± 66
)60930
ns/iter (± 110
)1.00
es2016_exponentiation
64096
ns/iter (± 137
)64044
ns/iter (± 115
)1.00
es2015_arrow
68934
ns/iter (± 227
)69032
ns/iter (± 190
)1.00
es2015_block_scoped_fn
64714
ns/iter (± 236
)65171
ns/iter (± 143
)0.99
es2015_block_scoping
137355
ns/iter (± 6956
)146341
ns/iter (± 9246
)0.94
es2015_classes
115287
ns/iter (± 515
)116197
ns/iter (± 542
)0.99
es2015_computed_props
59772
ns/iter (± 122
)60200
ns/iter (± 119
)0.99
es2015_destructuring
113999
ns/iter (± 359
)114945
ns/iter (± 1306
)0.99
es2015_duplicate_keys
62537
ns/iter (± 61
)63450
ns/iter (± 86
)0.99
es2015_parameters
77918
ns/iter (± 202
)78569
ns/iter (± 113
)0.99
es2015_fn_name
65365
ns/iter (± 469
)66221
ns/iter (± 603
)0.99
es2015_for_of
62950
ns/iter (± 71
)63417
ns/iter (± 88
)0.99
es2015_instanceof
61950
ns/iter (± 58
)62190
ns/iter (± 90
)1.00
es2015_shorthand_property
59819
ns/iter (± 77
)60418
ns/iter (± 106
)0.99
es2015_spread
59858
ns/iter (± 84
)60116
ns/iter (± 160
)1.00
es2015_sticky_regex
59852
ns/iter (± 695
)61974
ns/iter (± 123
)0.97
es2015_typeof_symbol
59929
ns/iter (± 88
)61559
ns/iter (± 78
)0.97
es/transform/baseline/base
49697
ns/iter (± 117
)50975
ns/iter (± 93
)0.97
es/transform/baseline/common_reserved_word
60292
ns/iter (± 98
)61702
ns/iter (± 46
)0.98
es/transform/baseline/common_typescript
141233
ns/iter (± 3139
)145827
ns/iter (± 4597
)0.97
es/target/es3
164391
ns/iter (± 105
)168360
ns/iter (± 216
)0.98
es/target/es2015
598561
ns/iter (± 503
)632775
ns/iter (± 1460
)0.95
es/target/es2016
62529
ns/iter (± 45
)64146
ns/iter (± 154
)0.97
es/target/es2017
59428
ns/iter (± 140
)61024
ns/iter (± 109
)0.97
es/target/es2018
78593
ns/iter (± 119
)80915
ns/iter (± 114
)0.97
es/target/es2020
127546
ns/iter (± 162
)130871
ns/iter (± 152
)0.97
babelify-only
669406
ns/iter (± 614
)665932
ns/iter (± 1024
)1.01
parse_and_babelify_angular
42550439
ns/iter (± 696545
)42843094
ns/iter (± 876793
)0.99
parse_and_babelify_backbone
5452056
ns/iter (± 79406
)5544731
ns/iter (± 69491
)0.98
parse_and_babelify_jquery
31776033
ns/iter (± 579495
)33754337
ns/iter (± 468431
)0.94
parse_and_babelify_jquery_mobile
55678555
ns/iter (± 986857
)58708733
ns/iter (± 1073545
)0.95
parse_and_babelify_mootools
33354360
ns/iter (± 499484
)35910700
ns/iter (± 579655
)0.93
parse_and_babelify_underscore
4352357
ns/iter (± 43580
)4452958
ns/iter (± 62616
)0.98
parse_and_babelify_yui
32860112
ns/iter (± 448389
)34918317
ns/iter (± 471959
)0.94
html/minify/document/css_spec
42051354
ns/iter (± 282472
)42955590
ns/iter (± 541963
)0.98
html/minify/document/github
17450089
ns/iter (± 44176
)17567934
ns/iter (± 118183
)0.99
html/minify/document/stackoverflow
15674955
ns/iter (± 77683
)15603598
ns/iter (± 80527
)1.00
html/minify/document_fragment/css_spec
40382348
ns/iter (± 216792
)41855455
ns/iter (± 273474
)0.96
html/minify/document_fragment/github
16721735
ns/iter (± 26060
)16818981
ns/iter (± 62087
)0.99
html/minify/document_fragment/stackoverflow
15151818
ns/iter (± 46354
)15452872
ns/iter (± 110586
)0.98
html/document/visitor/compare/clone
345897
ns/iter (± 1638
)338374
ns/iter (± 1682
)1.02
html/document/visitor/compare/visit_mut_span
369942
ns/iter (± 2910
)365172
ns/iter (± 1187
)1.01
html/document/visitor/compare/visit_mut_span_panic
375657
ns/iter (± 1719
)375534
ns/iter (± 1543
)1.00
html/document/visitor/compare/fold_span
409177
ns/iter (± 1411
)406947
ns/iter (± 1634
)1.01
html/document/visitor/compare/fold_span_panic
466111
ns/iter (± 1633
)458624
ns/iter (± 1630
)1.02
html/document_fragment/visitor/compare/clone
338861
ns/iter (± 2933
)341933
ns/iter (± 1815
)0.99
html/document_fragment/visitor/compare/visit_mut_span
366556
ns/iter (± 1880
)364195
ns/iter (± 1743
)1.01
html/document_fragment/visitor/compare/visit_mut_span_panic
373524
ns/iter (± 2556
)377711
ns/iter (± 1238
)0.99
html/document_fragment/visitor/compare/fold_span
404504
ns/iter (± 1671
)404054
ns/iter (± 1777
)1.00
html/document_fragment/visitor/compare/fold_span_panic
461193
ns/iter (± 2042
)464383
ns/iter (± 1533
)0.99
html/lexer/css_2021_spec
15550596
ns/iter (± 7913
)15669153
ns/iter (± 6533
)0.99
html/lexer/github_com_17_05_2022
6048146
ns/iter (± 4869
)6092094
ns/iter (± 2287
)0.99
html/lexer/stackoverflow_com_17_05_2022
5643404
ns/iter (± 1973
)5678477
ns/iter (± 1611
)0.99
html/parser/parser_document/css_2021_spec
25993460
ns/iter (± 204758
)26522982
ns/iter (± 298679
)0.98
html/parser/parser_document/github_com_17_05_2022
8801247
ns/iter (± 73728
)8855866
ns/iter (± 7744
)0.99
html/parser/parser_document/stackoverflow_com_17_05_2022
7732675
ns/iter (± 8547
)7781802
ns/iter (± 6694
)0.99
html/parser/parser_document_fragment/css_2021_spec
26056368
ns/iter (± 339685
)26370641
ns/iter (± 217722
)0.99
html/parser/parser_document_fragment/github_com_17_05_2022
8809003
ns/iter (± 28645
)8795665
ns/iter (± 11466
)1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7759193
ns/iter (± 4421
)7745952
ns/iter (± 3984
)1.00
This comment was automatically generated by workflow using github-action-benchmark.