File tree 3 files changed +24
-0
lines changed
3 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -733,6 +733,11 @@ where
733
733
} )
734
734
. cloned ( )
735
735
{
736
+ if !matches ! ( & * value, Expr :: Ident ( ..) | Expr :: Member ( ..) ) && self . ctx . is_update_arg
737
+ {
738
+ return ;
739
+ }
740
+
736
741
self . changed = true ;
737
742
report_change ! ( "inline: Replacing a variable `{}` with cheap expression" , i) ;
738
743
Original file line number Diff line number Diff line change @@ -1536,6 +1536,7 @@ where
1536
1536
} ,
1537
1537
is_lhs_of_assign : false ,
1538
1538
is_exact_lhs_of_assign : false ,
1539
+ is_update_arg : false ,
1539
1540
..self . ctx
1540
1541
} ;
1541
1542
e. callee . visit_mut_with ( & mut * self . with_ctx ( ctx) ) ;
@@ -1566,6 +1567,7 @@ where
1566
1567
is_this_aware_callee : false ,
1567
1568
is_lhs_of_assign : false ,
1568
1569
is_exact_lhs_of_assign : false ,
1570
+ is_update_arg : false ,
1569
1571
..self . ctx
1570
1572
} ;
1571
1573
// TODO: Prevent inline if callee is unknown.
@@ -1583,6 +1585,7 @@ where
1583
1585
{
1584
1586
let ctx = Ctx {
1585
1587
dont_invoke_iife : true ,
1588
+ is_update_arg : false ,
1586
1589
..self . ctx
1587
1590
} ;
1588
1591
n. super_class . visit_mut_with ( & mut * self . with_ctx ( ctx) ) ;
@@ -1591,6 +1594,7 @@ where
1591
1594
{
1592
1595
let ctx = Ctx {
1593
1596
in_strict : true ,
1597
+ is_update_arg : false ,
1594
1598
..self . ctx
1595
1599
} ;
1596
1600
n. body . visit_mut_with ( & mut * self . with_ctx ( ctx) ) ;
@@ -2184,6 +2188,7 @@ where
2184
2188
let ctx = Ctx {
2185
2189
in_obj_of_non_computed_member : !n. prop . is_computed ( ) ,
2186
2190
is_exact_lhs_of_assign : false ,
2191
+ is_update_arg : false ,
2187
2192
..self . ctx
2188
2193
} ;
2189
2194
n. obj . visit_mut_with ( & mut * self . with_ctx ( ctx) ) ;
@@ -2192,6 +2197,7 @@ where
2192
2197
let ctx = Ctx {
2193
2198
is_exact_lhs_of_assign : false ,
2194
2199
is_lhs_of_assign : false ,
2200
+ is_update_arg : false ,
2195
2201
..self . ctx
2196
2202
} ;
2197
2203
c. visit_mut_with ( & mut * self . with_ctx ( ctx) ) ;
Original file line number Diff line number Diff line change @@ -10394,3 +10394,16 @@ fn issue_6528() {
10394
10394
"### ,
10395
10395
)
10396
10396
}
10397
+
10398
+ #[ test]
10399
+ fn issue_6641 ( ) {
10400
+ run_default_exec_test (
10401
+ r###"
10402
+ const iota = (i => () => 1 << ++i)(-1);
10403
+
10404
+ const a = iota(), b = iota();
10405
+
10406
+ console.log(a, b);
10407
+ "### ,
10408
+ )
10409
+ }
You can’t perform that action at this time.
1 commit comments
github-actions[bot] commentedon Dec 20, 2022
Benchmark
es/full/bugs-1
306880
ns/iter (± 11962
)302705
ns/iter (± 8760
)1.01
es/full/minify/libraries/antd
1736122745
ns/iter (± 23055196
)1649727840
ns/iter (± 31294844
)1.05
es/full/minify/libraries/d3
320277659
ns/iter (± 5863860
)315661244
ns/iter (± 8343244
)1.01
es/full/minify/libraries/echarts
1313703528
ns/iter (± 14379375
)1288049445
ns/iter (± 12539531
)1.02
es/full/minify/libraries/jquery
91242207
ns/iter (± 850580
)93000778
ns/iter (± 1348437
)0.98
es/full/minify/libraries/lodash
106799641
ns/iter (± 697612
)108196627
ns/iter (± 630043
)0.99
es/full/minify/libraries/moment
53161051
ns/iter (± 475067
)53830188
ns/iter (± 1131638
)0.99
es/full/minify/libraries/react
19050442
ns/iter (± 104579
)19438033
ns/iter (± 172912
)0.98
es/full/minify/libraries/terser
253151253
ns/iter (± 4460853
)260034986
ns/iter (± 4676892
)0.97
es/full/minify/libraries/three
455556129
ns/iter (± 9263250
)473624942
ns/iter (± 7742045
)0.96
es/full/minify/libraries/typescript
3251258446
ns/iter (± 15062196
)3089609309
ns/iter (± 41817715
)1.05
es/full/minify/libraries/victory
750750352
ns/iter (± 13751515
)711411167
ns/iter (± 11763421
)1.06
es/full/minify/libraries/vue
131995150
ns/iter (± 996690
)137139799
ns/iter (± 1343886
)0.96
es/full/codegen/es3
27032
ns/iter (± 110
)27244
ns/iter (± 47
)0.99
es/full/codegen/es5
27091
ns/iter (± 44
)27295
ns/iter (± 46
)0.99
es/full/codegen/es2015
27074
ns/iter (± 50
)27331
ns/iter (± 58
)0.99
es/full/codegen/es2016
27061
ns/iter (± 36
)27295
ns/iter (± 40
)0.99
es/full/codegen/es2017
27061
ns/iter (± 41
)27279
ns/iter (± 51
)0.99
es/full/codegen/es2018
27040
ns/iter (± 48
)27302
ns/iter (± 86
)0.99
es/full/codegen/es2019
27027
ns/iter (± 69
)27322
ns/iter (± 92
)0.99
es/full/codegen/es2020
27061
ns/iter (± 66
)27321
ns/iter (± 60
)0.99
es/full/all/es3
167249370
ns/iter (± 1395295
)168614653
ns/iter (± 2760164
)0.99
es/full/all/es5
159239338
ns/iter (± 3351203
)161132814
ns/iter (± 2410018
)0.99
es/full/all/es2015
118837532
ns/iter (± 911566
)119421947
ns/iter (± 1313776
)1.00
es/full/all/es2016
118099251
ns/iter (± 570402
)117909838
ns/iter (± 608492
)1.00
es/full/all/es2017
117552996
ns/iter (± 299977
)117710372
ns/iter (± 678411
)1.00
es/full/all/es2018
116396033
ns/iter (± 962585
)115549493
ns/iter (± 564919
)1.01
es/full/all/es2019
115200734
ns/iter (± 671037
)115728354
ns/iter (± 610919
)1.00
es/full/all/es2020
110448849
ns/iter (± 1013588
)111030919
ns/iter (± 772516
)0.99
es/full/parser
519937
ns/iter (± 8905
)508439
ns/iter (± 5295
)1.02
es/full/base/fixer
21881
ns/iter (± 42
)21951
ns/iter (± 25
)1.00
es/full/base/resolver_and_hygiene
77651
ns/iter (± 36
)78179
ns/iter (± 117
)0.99
serialization of ast node
118
ns/iter (± 0
)118
ns/iter (± 0
)1
serialization of serde
124
ns/iter (± 0
)124
ns/iter (± 0
)1
css/minify/libraries/bootstrap
26928944
ns/iter (± 136213
)27155662
ns/iter (± 138466
)0.99
css/visitor/compare/clone
2081628
ns/iter (± 6845
)2063905
ns/iter (± 13724
)1.01
css/visitor/compare/visit_mut_span
2279352
ns/iter (± 9005
)2275060
ns/iter (± 11497
)1.00
css/visitor/compare/visit_mut_span_panic
2308912
ns/iter (± 4610
)2341778
ns/iter (± 14607
)0.99
css/visitor/compare/fold_span
2984699
ns/iter (± 27242
)2975880
ns/iter (± 13722
)1.00
css/visitor/compare/fold_span_panic
3117846
ns/iter (± 24334
)3109517
ns/iter (± 26412
)1.00
css/lexer/bootstrap_5_1_3
5176268
ns/iter (± 5200
)5178401
ns/iter (± 1376
)1.00
css/lexer/foundation_6_7_4
4360558
ns/iter (± 1878
)4354476
ns/iter (± 1762
)1.00
css/lexer/tailwind_3_1_1
826069
ns/iter (± 512
)825557
ns/iter (± 408
)1.00
css/parser/bootstrap_5_1_3
20725430
ns/iter (± 102949
)20887952
ns/iter (± 169130
)0.99
css/parser/foundation_6_7_4
16504813
ns/iter (± 20909
)16611366
ns/iter (± 40218
)0.99
css/parser/tailwind_3_1_1
3186409
ns/iter (± 5001
)3199590
ns/iter (± 5148
)1.00
es/codegen/colors
322813
ns/iter (± 181848
)332300
ns/iter (± 186984
)0.97
es/codegen/large
1224204
ns/iter (± 631237
)1219818
ns/iter (± 641938
)1.00
es/codegen/with-parser/colors
46082
ns/iter (± 415
)46309
ns/iter (± 410
)1.00
es/codegen/with-parser/large
515159
ns/iter (± 1543
)516568
ns/iter (± 1646
)1.00
es/minify/libraries/antd
1512478031
ns/iter (± 14657650
)1438763219
ns/iter (± 14950230
)1.05
es/minify/libraries/d3
261862349
ns/iter (± 4240974
)263252369
ns/iter (± 4604241
)0.99
es/minify/libraries/echarts
1129535531
ns/iter (± 15777284
)1102816968
ns/iter (± 11177039
)1.02
es/minify/libraries/jquery
79159986
ns/iter (± 581416
)78852758
ns/iter (± 637708
)1.00
es/minify/libraries/lodash
95047273
ns/iter (± 954216
)96232476
ns/iter (± 782753
)0.99
es/minify/libraries/moment
45854454
ns/iter (± 314180
)46294829
ns/iter (± 277602
)0.99
es/minify/libraries/react
17020353
ns/iter (± 90805
)17119205
ns/iter (± 197837
)0.99
es/minify/libraries/terser
214781454
ns/iter (± 2932196
)218245765
ns/iter (± 2239194
)0.98
es/minify/libraries/three
378082590
ns/iter (± 7406074
)384031744
ns/iter (± 4881264
)0.98
es/minify/libraries/typescript
2795995484
ns/iter (± 17930626
)2611460016
ns/iter (± 7707359
)1.07
es/minify/libraries/victory
619274024
ns/iter (± 20721219
)585122115
ns/iter (± 11592603
)1.06
es/minify/libraries/vue
116932355
ns/iter (± 783123
)117075190
ns/iter (± 941999
)1.00
es/visitor/compare/clone
2426551
ns/iter (± 13648
)2437323
ns/iter (± 4277
)1.00
es/visitor/compare/visit_mut_span
2818497
ns/iter (± 5236
)2832452
ns/iter (± 10011
)1.00
es/visitor/compare/visit_mut_span_panic
2849323
ns/iter (± 21509
)2863740
ns/iter (± 9930
)0.99
es/visitor/compare/fold_span
3994194
ns/iter (± 9751
)3985282
ns/iter (± 11452
)1.00
es/visitor/compare/fold_span_panic
4143200
ns/iter (± 23230
)4117684
ns/iter (± 101523
)1.01
es/lexer/colors
17237
ns/iter (± 7
)17281
ns/iter (± 15
)1.00
es/lexer/angular
8173117
ns/iter (± 6867
)8202609
ns/iter (± 4282
)1.00
es/lexer/backbone
1066864
ns/iter (± 567
)1067023
ns/iter (± 541
)1.00
es/lexer/jquery
5919345
ns/iter (± 1409
)5933880
ns/iter (± 10441
)1.00
es/lexer/jquery mobile
9099157
ns/iter (± 5683
)9125241
ns/iter (± 8724
)1.00
es/lexer/mootools
4638427
ns/iter (± 1439
)4644861
ns/iter (± 5423
)1.00
es/lexer/underscore
890938
ns/iter (± 239
)892215
ns/iter (± 244
)1.00
es/lexer/three
27659109
ns/iter (± 21675
)27717684
ns/iter (± 29914
)1.00
es/lexer/yui
5013355
ns/iter (± 2442
)5030544
ns/iter (± 6095
)1.00
es/parser/colors
30919
ns/iter (± 122
)30870
ns/iter (± 163
)1.00
es/parser/angular
15780768
ns/iter (± 222443
)15757222
ns/iter (± 102091
)1.00
es/parser/backbone
2323238
ns/iter (± 11166
)2321964
ns/iter (± 11316
)1.00
es/parser/jquery
12586492
ns/iter (± 96462
)12856616
ns/iter (± 148223
)0.98
es/parser/jquery mobile
19946941
ns/iter (± 450407
)20249257
ns/iter (± 147747
)0.99
es/parser/mootools
9631761
ns/iter (± 41050
)9630661
ns/iter (± 33086
)1.00
es/parser/underscore
1965783
ns/iter (± 10859
)1956932
ns/iter (± 10061
)1.00
es/parser/three
60391384
ns/iter (± 582911
)59383369
ns/iter (± 367406
)1.02
es/parser/yui
9603783
ns/iter (± 128671
)9633027
ns/iter (± 82288
)1.00
es/preset-env/usage/builtin_type
144792
ns/iter (± 34151
)144565
ns/iter (± 33525
)1.00
es/preset-env/usage/property
21443
ns/iter (± 73
)21546
ns/iter (± 63
)1.00
es/resolver/typescript
122782482
ns/iter (± 2850305
)111616741
ns/iter (± 2179322
)1.10
es/fixer/typescript
97588538
ns/iter (± 1721106
)85488810
ns/iter (± 1004023
)1.14
es/hygiene/typescript
196616731
ns/iter (± 982556
)170393305
ns/iter (± 2234552
)1.15
es/resolver_with_hygiene/typescript
328600094
ns/iter (± 2114614
)296793516
ns/iter (± 1430703
)1.11
es/visitor/base-perf/module_clone
77152
ns/iter (± 1784
)75372
ns/iter (± 1219
)1.02
es/visitor/base-perf/fold_empty
85928
ns/iter (± 1783
)85408
ns/iter (± 929
)1.01
es/visitor/base-perf/fold_noop_impl_all
85830
ns/iter (± 1139
)84933
ns/iter (± 2061
)1.01
es/visitor/base-perf/fold_noop_impl_vec
86539
ns/iter (± 2154
)86000
ns/iter (± 1769
)1.01
es/visitor/base-perf/boxing_boxed_clone
58
ns/iter (± 0
)56
ns/iter (± 0
)1.04
es/visitor/base-perf/boxing_unboxed_clone
59
ns/iter (± 0
)59
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
105
ns/iter (± 0
)103
ns/iter (± 0
)1.02
es/visitor/base-perf/boxing_unboxed
102
ns/iter (± 0
)102
ns/iter (± 0
)1
es/visitor/base-perf/visit_contains_this
3542
ns/iter (± 66
)3502
ns/iter (± 93
)1.01
es/base/parallel/resolver/typescript
5976636415
ns/iter (± 537032501
)5703572693
ns/iter (± 268569284
)1.05
es/base/parallel/hygiene/typescript
2258958129
ns/iter (± 28953954
)2022077382
ns/iter (± 36037951
)1.12
misc/visitors/time-complexity/time 5
102
ns/iter (± 0
)102
ns/iter (± 0
)1
misc/visitors/time-complexity/time 10
325
ns/iter (± 2
)320
ns/iter (± 3
)1.02
misc/visitors/time-complexity/time 15
659
ns/iter (± 12
)647
ns/iter (± 0
)1.02
misc/visitors/time-complexity/time 20
1241
ns/iter (± 12
)1232
ns/iter (± 4
)1.01
misc/visitors/time-complexity/time 40
6696
ns/iter (± 40
)6625
ns/iter (± 11
)1.01
misc/visitors/time-complexity/time 60
17082
ns/iter (± 27
)17133
ns/iter (± 6
)1.00
es/full-target/es2016
189005
ns/iter (± 512
)189362
ns/iter (± 953
)1.00
es/full-target/es2017
183092
ns/iter (± 628
)183617
ns/iter (± 288
)1.00
es/full-target/es2018
173274
ns/iter (± 230
)173523
ns/iter (± 398
)1.00
es2020_nullish_coalescing
67206
ns/iter (± 161
)66968
ns/iter (± 559
)1.00
es2020_optional_chaining
96888
ns/iter (± 5773
)96944
ns/iter (± 247
)1.00
es2022_class_properties
94748
ns/iter (± 134
)94263
ns/iter (± 162
)1.01
es2018_object_rest_spread
71735
ns/iter (± 81
)71400
ns/iter (± 122
)1.00
es2019_optional_catch_binding
61687
ns/iter (± 153
)61486
ns/iter (± 114
)1.00
es2017_async_to_generator
61806
ns/iter (± 119
)61692
ns/iter (± 68
)1.00
es2016_exponentiation
65584
ns/iter (± 139
)65287
ns/iter (± 95
)1.00
es2015_arrow
70690
ns/iter (± 305
)70056
ns/iter (± 216
)1.01
es2015_block_scoped_fn
66275
ns/iter (± 79
)66186
ns/iter (± 109
)1.00
es2015_block_scoping
139164
ns/iter (± 5211
)146649
ns/iter (± 12066
)0.95
es2015_classes
116252
ns/iter (± 375
)116630
ns/iter (± 466
)1.00
es2015_computed_props
61514
ns/iter (± 106
)61044
ns/iter (± 63
)1.01
es2015_destructuring
116025
ns/iter (± 418
)115855
ns/iter (± 172
)1.00
es2015_duplicate_keys
64529
ns/iter (± 74
)63979
ns/iter (± 140
)1.01
es2015_parameters
79865
ns/iter (± 167
)79544
ns/iter (± 146
)1.00
es2015_fn_name
66744
ns/iter (± 412
)66667
ns/iter (± 469
)1.00
es2015_for_of
64326
ns/iter (± 72
)64573
ns/iter (± 128
)1.00
es2015_instanceof
63366
ns/iter (± 103
)63167
ns/iter (± 96
)1.00
es2015_shorthand_property
61352
ns/iter (± 97
)61249
ns/iter (± 97
)1.00
es2015_spread
61374
ns/iter (± 57
)61394
ns/iter (± 121
)1.00
es2015_sticky_regex
62503
ns/iter (± 73
)62301
ns/iter (± 98
)1.00
es2015_typeof_symbol
62541
ns/iter (± 109
)62346
ns/iter (± 168
)1.00
es/transform/baseline/base
52166
ns/iter (± 98
)51932
ns/iter (± 89
)1.00
es/transform/baseline/common_reserved_word
62874
ns/iter (± 104
)62583
ns/iter (± 79
)1.00
es/transform/baseline/common_typescript
142729
ns/iter (± 226
)141797
ns/iter (± 274
)1.01
es/target/es3
169892
ns/iter (± 320
)169538
ns/iter (± 253
)1.00
es/target/es2015
630585
ns/iter (± 1393
)628846
ns/iter (± 1182
)1.00
es/target/es2016
65549
ns/iter (± 135
)65324
ns/iter (± 72
)1.00
es/target/es2017
61954
ns/iter (± 100
)61741
ns/iter (± 115
)1.00
es/target/es2018
81723
ns/iter (± 185
)81471
ns/iter (± 140
)1.00
es/target/es2020
133852
ns/iter (± 246
)134208
ns/iter (± 240
)1.00
babelify-only
668647
ns/iter (± 985
)672333
ns/iter (± 1212
)0.99
parse_and_babelify_angular
42938332
ns/iter (± 520564
)43688921
ns/iter (± 778948
)0.98
parse_and_babelify_backbone
5338520
ns/iter (± 38274
)5377474
ns/iter (± 130830
)0.99
parse_and_babelify_jquery
33438636
ns/iter (± 393694
)31511611
ns/iter (± 672000
)1.06
parse_and_babelify_jquery_mobile
56860692
ns/iter (± 947843
)52929718
ns/iter (± 512155
)1.07
parse_and_babelify_mootools
34641760
ns/iter (± 468472
)32927645
ns/iter (± 735913
)1.05
parse_and_babelify_underscore
4315145
ns/iter (± 30223
)4321057
ns/iter (± 18283
)1.00
parse_and_babelify_yui
33497782
ns/iter (± 563155
)31657658
ns/iter (± 496008
)1.06
html/minify/document/css_spec
42664891
ns/iter (± 517786
)41830444
ns/iter (± 273166
)1.02
html/minify/document/github
17382943
ns/iter (± 42946
)17269994
ns/iter (± 18056
)1.01
html/minify/document/stackoverflow
15515253
ns/iter (± 38772
)15437916
ns/iter (± 22578
)1.01
html/minify/document_fragment/css_spec
40387587
ns/iter (± 303003
)39842225
ns/iter (± 200073
)1.01
html/minify/document_fragment/github
16685854
ns/iter (± 75190
)16592510
ns/iter (± 27980
)1.01
html/minify/document_fragment/stackoverflow
15173290
ns/iter (± 79434
)15032440
ns/iter (± 37564
)1.01
html/document/visitor/compare/clone
340403
ns/iter (± 2755
)341038
ns/iter (± 2309
)1.00
html/document/visitor/compare/visit_mut_span
365919
ns/iter (± 1702
)367379
ns/iter (± 2171
)1.00
html/document/visitor/compare/visit_mut_span_panic
376268
ns/iter (± 1440
)375924
ns/iter (± 2146
)1.00
html/document/visitor/compare/fold_span
404620
ns/iter (± 2259
)406099
ns/iter (± 2729
)1.00
html/document/visitor/compare/fold_span_panic
461273
ns/iter (± 2510
)465090
ns/iter (± 2576
)0.99
html/document_fragment/visitor/compare/clone
337294
ns/iter (± 1480
)337903
ns/iter (± 2256
)1.00
html/document_fragment/visitor/compare/visit_mut_span
367157
ns/iter (± 2352
)373541
ns/iter (± 2396
)0.98
html/document_fragment/visitor/compare/visit_mut_span_panic
373919
ns/iter (± 2748
)372212
ns/iter (± 1241
)1.00
html/document_fragment/visitor/compare/fold_span
403060
ns/iter (± 1629
)410380
ns/iter (± 2001
)0.98
html/document_fragment/visitor/compare/fold_span_panic
462868
ns/iter (± 3212
)459483
ns/iter (± 2021
)1.01
html/lexer/css_2021_spec
15590931
ns/iter (± 92973
)15617746
ns/iter (± 5396
)1.00
html/lexer/github_com_17_05_2022
6051707
ns/iter (± 5724
)6060831
ns/iter (± 5492
)1.00
html/lexer/stackoverflow_com_17_05_2022
5663729
ns/iter (± 1995
)5672434
ns/iter (± 6806
)1.00
html/parser/parser_document/css_2021_spec
25781087
ns/iter (± 75219
)25863365
ns/iter (± 319589
)1.00
html/parser/parser_document/github_com_17_05_2022
8780538
ns/iter (± 7586
)8807354
ns/iter (± 14690
)1.00
html/parser/parser_document/stackoverflow_com_17_05_2022
7751769
ns/iter (± 8337
)7783209
ns/iter (± 7236
)1.00
html/parser/parser_document_fragment/css_2021_spec
28111304
ns/iter (± 210206
)26480308
ns/iter (± 227229
)1.06
html/parser/parser_document_fragment/github_com_17_05_2022
9226917
ns/iter (± 10432
)8837150
ns/iter (± 6236
)1.04
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
8455241
ns/iter (± 4562
)7806226
ns/iter (± 6271
)1.08
This comment was automatically generated by workflow using github-action-benchmark.