-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(es/compat): Visit arrow body from optional chaining pass (#7549)
**Related issue:** - Closes #7547.
- Loading branch information
Showing
10 changed files
with
82 additions
and
16 deletions.
There are no files selected for viewing
2 changes: 1 addition & 1 deletion
2
crates/swc/tests/fixture/issues-2xxx/2020/case1/output/index.js
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 |
---|---|---|
@@ -1 +1 @@ | ||
"use strict";const createRegisterItems=registerType=>async(a,b)=>{const a=root?.test}; | ||
"use strict";const createRegisterItems=registerType=>async(a,b)=>{var _root;const a=(_root=root)===null||_root===void 0?void 0:_root.test}; |
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
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
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,26 @@ | ||
// code below dont work | ||
const a = {}; | ||
|
||
new Promise(r => { | ||
r(a?.b); | ||
}).then(a => { | ||
return a?.b; | ||
}); | ||
|
||
const anony = () => { | ||
return a?.b; | ||
} | ||
|
||
// code below works | ||
|
||
const b = a?.b; | ||
|
||
function fn() { | ||
return a?.b; | ||
} | ||
|
||
setTimeout(() => a?.b, 0); | ||
|
||
const anony2 = function () { return a?.b }; | ||
|
||
(function () { return a?.b })(); |
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,32 @@ | ||
// code below dont work | ||
var _a; | ||
var a = {}; | ||
new Promise(function(r) { | ||
var _a; | ||
r((_a = a) === null || _a === void 0 ? void 0 : _a.b); | ||
}).then(function(a) { | ||
var _a; | ||
return (_a = a) === null || _a === void 0 ? void 0 : _a.b; | ||
}); | ||
var anony = function() { | ||
var _a; | ||
return (_a = a) === null || _a === void 0 ? void 0 : _a.b; | ||
}; | ||
// code below works | ||
var b = (_a = a) === null || _a === void 0 ? void 0 : _a.b; | ||
function fn() { | ||
var _a; | ||
return (_a = a) === null || _a === void 0 ? void 0 : _a.b; | ||
} | ||
setTimeout(function() { | ||
var _a; | ||
return (_a = a) === null || _a === void 0 ? void 0 : _a.b; | ||
}, 0); | ||
var anony2 = function anony2() { | ||
var _a; | ||
return (_a = a) === null || _a === void 0 ? void 0 : _a.b; | ||
}; | ||
(function() { | ||
var _a; | ||
return (_a = a) === null || _a === void 0 ? void 0 : _a.b; | ||
})(); |
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
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
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
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
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
bc6e950
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
304868
ns/iter (± 6588
)302056
ns/iter (± 3634
)1.01
es/full/minify/libraries/antd
1536383498
ns/iter (± 10731218
)1423622831
ns/iter (± 6486602
)1.08
es/full/minify/libraries/d3
332416896
ns/iter (± 2600843
)314769745
ns/iter (± 3403182
)1.06
es/full/minify/libraries/echarts
1249039310
ns/iter (± 9711449
)1158980118
ns/iter (± 4502476
)1.08
es/full/minify/libraries/jquery
96057159
ns/iter (± 336217
)94388193
ns/iter (± 210040
)1.02
es/full/minify/libraries/lodash
113611575
ns/iter (± 342465
)111989292
ns/iter (± 255926
)1.01
es/full/minify/libraries/moment
56478523
ns/iter (± 143914
)55368530
ns/iter (± 91391
)1.02
es/full/minify/libraries/react
20146393
ns/iter (± 48220
)19984053
ns/iter (± 32882
)1.01
es/full/minify/libraries/terser
254796156
ns/iter (± 3242108
)242492183
ns/iter (± 706204
)1.05
es/full/minify/libraries/three
458235369
ns/iter (± 1416470
)426071848
ns/iter (± 2234266
)1.08
es/full/minify/libraries/typescript
3084210818
ns/iter (± 10002034
)2948448495
ns/iter (± 4441226
)1.05
es/full/minify/libraries/victory
675803181
ns/iter (± 8051840
)618772276
ns/iter (± 3692283
)1.09
es/full/minify/libraries/vue
139462043
ns/iter (± 682728
)136151594
ns/iter (± 196664
)1.02
es/full/codegen/es3
36777
ns/iter (± 103
)35693
ns/iter (± 127
)1.03
es/full/codegen/es5
36936
ns/iter (± 96
)35684
ns/iter (± 79
)1.04
es/full/codegen/es2015
36935
ns/iter (± 88
)35648
ns/iter (± 126
)1.04
es/full/codegen/es2016
36841
ns/iter (± 136
)35633
ns/iter (± 132
)1.03
es/full/codegen/es2017
36839
ns/iter (± 72
)35652
ns/iter (± 80
)1.03
es/full/codegen/es2018
36838
ns/iter (± 62
)35597
ns/iter (± 88
)1.03
es/full/codegen/es2019
36788
ns/iter (± 92
)35698
ns/iter (± 54
)1.03
es/full/codegen/es2020
36810
ns/iter (± 86
)35657
ns/iter (± 92
)1.03
es/full/all/es3
181353618
ns/iter (± 850724
)179505721
ns/iter (± 643994
)1.01
es/full/all/es5
171621466
ns/iter (± 1053168
)169736867
ns/iter (± 1024064
)1.01
es/full/all/es2015
128157203
ns/iter (± 420804
)127396222
ns/iter (± 909103
)1.01
es/full/all/es2016
127422648
ns/iter (± 757122
)126080764
ns/iter (± 557792
)1.01
es/full/all/es2017
126188504
ns/iter (± 659844
)125112330
ns/iter (± 393848
)1.01
es/full/all/es2018
124846542
ns/iter (± 625378
)123828533
ns/iter (± 894987
)1.01
es/full/all/es2019
124041425
ns/iter (± 325487
)122984570
ns/iter (± 1065578
)1.01
es/full/all/es2020
119348430
ns/iter (± 675089
)119328640
ns/iter (± 368508
)1.00
es/full/parser
520870
ns/iter (± 7921
)516688
ns/iter (± 5781
)1.01
es/full/base/fixer
18073
ns/iter (± 68
)19217
ns/iter (± 58
)0.94
es/full/base/resolver_and_hygiene
91015
ns/iter (± 264
)91599
ns/iter (± 86
)0.99
serialization of serde
301
ns/iter (± 10
)297
ns/iter (± 0
)1.01
css/minify/libraries/bootstrap
31475291
ns/iter (± 135406
)30923340
ns/iter (± 38734
)1.02
css/visitor/compare/clone
1984439
ns/iter (± 17341
)2128056
ns/iter (± 10482
)0.93
css/visitor/compare/visit_mut_span
2139222
ns/iter (± 17944
)2268017
ns/iter (± 13463
)0.94
css/visitor/compare/visit_mut_span_panic
2222086
ns/iter (± 21816
)2322966
ns/iter (± 11798
)0.96
css/visitor/compare/fold_span
2888523
ns/iter (± 19511
)3037092
ns/iter (± 10485
)0.95
css/visitor/compare/fold_span_panic
3115481
ns/iter (± 23065
)3224964
ns/iter (± 12413
)0.97
css/lexer/bootstrap_5_1_3
4774304
ns/iter (± 12669
)4860484
ns/iter (± 4066
)0.98
css/lexer/foundation_6_7_4
4026696
ns/iter (± 3666
)4086529
ns/iter (± 1547
)0.99
css/lexer/tailwind_3_1_1
764220
ns/iter (± 368
)778654
ns/iter (± 805
)0.98
css/parser/bootstrap_5_1_3
20882466
ns/iter (± 88467
)20525137
ns/iter (± 39147
)1.02
css/parser/foundation_6_7_4
16799282
ns/iter (± 35547
)16564948
ns/iter (± 39881
)1.01
css/parser/tailwind_3_1_1
3226824
ns/iter (± 2152
)3196113
ns/iter (± 3478
)1.01
es/codegen/colors
738113
ns/iter (± 401415
)729789
ns/iter (± 396418
)1.01
es/codegen/large
2974097
ns/iter (± 1555813
)2999439
ns/iter (± 1579531
)0.99
es/codegen/with-parser/colors
49589
ns/iter (± 337
)48721
ns/iter (± 185
)1.02
es/codegen/with-parser/large
520164
ns/iter (± 892
)518163
ns/iter (± 978
)1.00
es/minify/libraries/antd
1363847057
ns/iter (± 14756634
)1266263318
ns/iter (± 13840390
)1.08
es/minify/libraries/d3
289695410
ns/iter (± 1769254
)278521797
ns/iter (± 491243
)1.04
es/minify/libraries/echarts
1100065190
ns/iter (± 5592223
)1010910301
ns/iter (± 3760885
)1.09
es/minify/libraries/jquery
84483599
ns/iter (± 453576
)83091022
ns/iter (± 64347
)1.02
es/minify/libraries/lodash
103725037
ns/iter (± 1771965
)102978599
ns/iter (± 206043
)1.01
es/minify/libraries/moment
49783061
ns/iter (± 120639
)49190103
ns/iter (± 81983
)1.01
es/minify/libraries/react
18099615
ns/iter (± 46140
)17974479
ns/iter (± 27176
)1.01
es/minify/libraries/terser
219263480
ns/iter (± 1337719
)209376157
ns/iter (± 745300
)1.05
es/minify/libraries/three
393064659
ns/iter (± 3654424
)361917698
ns/iter (± 865445
)1.09
es/minify/libraries/typescript
2669555368
ns/iter (± 6584085
)2534906498
ns/iter (± 8639318
)1.05
es/minify/libraries/victory
584094364
ns/iter (± 5272088
)533885518
ns/iter (± 1752170
)1.09
es/minify/libraries/vue
125507110
ns/iter (± 429211
)122699511
ns/iter (± 183145
)1.02
es/visitor/compare/clone
2119112
ns/iter (± 16518
)2086804
ns/iter (± 7291
)1.02
es/visitor/compare/visit_mut_span
2466543
ns/iter (± 5400
)2419087
ns/iter (± 4303
)1.02
es/visitor/compare/visit_mut_span_panic
2504146
ns/iter (± 2631
)2457811
ns/iter (± 3895
)1.02
es/visitor/compare/fold_span
3532997
ns/iter (± 6216
)3505890
ns/iter (± 10409
)1.01
es/visitor/compare/fold_span_panic
3674280
ns/iter (± 10399
)3653054
ns/iter (± 5851
)1.01
es/lexer/colors
13287
ns/iter (± 82
)13125
ns/iter (± 17
)1.01
es/lexer/angular
6351332
ns/iter (± 12847
)6225975
ns/iter (± 5424
)1.02
es/lexer/backbone
810037
ns/iter (± 1382
)817278
ns/iter (± 1386
)0.99
es/lexer/jquery
4595209
ns/iter (± 5917
)4630118
ns/iter (± 7382
)0.99
es/lexer/jquery mobile
7071353
ns/iter (± 15830
)7076442
ns/iter (± 8396
)1.00
es/lexer/mootools
3631002
ns/iter (± 4154
)3627073
ns/iter (± 16499
)1.00
es/lexer/underscore
677087
ns/iter (± 2436
)676446
ns/iter (± 1404
)1.00
es/lexer/three
21372864
ns/iter (± 19826
)21559187
ns/iter (± 27891
)0.99
es/lexer/yui
4068375
ns/iter (± 4768
)4106844
ns/iter (± 6645
)0.99
es/parser/colors
29234
ns/iter (± 134
)29115
ns/iter (± 27
)1.00
es/parser/angular
14396634
ns/iter (± 57803
)14538446
ns/iter (± 53014
)0.99
es/parser/backbone
2141304
ns/iter (± 7732
)2162470
ns/iter (± 8778
)0.99
es/parser/jquery
11691023
ns/iter (± 55509
)11719587
ns/iter (± 44772
)1.00
es/parser/jquery mobile
18008890
ns/iter (± 196915
)17938316
ns/iter (± 31855
)1.00
es/parser/mootools
8911281
ns/iter (± 18271
)8991187
ns/iter (± 15405
)0.99
es/parser/underscore
1851681
ns/iter (± 9458
)1873596
ns/iter (± 8720
)0.99
es/parser/three
51863022
ns/iter (± 302801
)49686052
ns/iter (± 138464
)1.04
es/parser/yui
8978298
ns/iter (± 36464
)9126879
ns/iter (± 168207
)0.98
es/preset-env/usage/builtin_type
148053
ns/iter (± 33793
)148620
ns/iter (± 31601
)1.00
es/preset-env/usage/property
20061
ns/iter (± 100
)20530
ns/iter (± 114
)0.98
es/resolver/typescript
98357073
ns/iter (± 1079409
)93891804
ns/iter (± 875126
)1.05
es/fixer/typescript
69101185
ns/iter (± 502945
)65876223
ns/iter (± 323182
)1.05
es/hygiene/typescript
149931932
ns/iter (± 1818044
)143240358
ns/iter (± 1174451
)1.05
es/resolver_with_hygiene/typescript
319098350
ns/iter (± 1434456
)299291278
ns/iter (± 1301862
)1.07
es/visitor/base-perf/module_clone
62209
ns/iter (± 249
)62750
ns/iter (± 361
)0.99
es/visitor/base-perf/fold_empty
65143
ns/iter (± 221
)65469
ns/iter (± 306
)1.00
es/visitor/base-perf/fold_noop_impl_all
65229
ns/iter (± 168
)65880
ns/iter (± 191
)0.99
es/visitor/base-perf/fold_noop_impl_vec
65482
ns/iter (± 246
)66411
ns/iter (± 227
)0.99
es/visitor/base-perf/boxing_boxed_clone
58
ns/iter (± 0
)57
ns/iter (± 0
)1.02
es/visitor/base-perf/boxing_unboxed_clone
39
ns/iter (± 0
)40
ns/iter (± 0
)0.97
es/visitor/base-perf/boxing_boxed
114
ns/iter (± 0
)115
ns/iter (± 0
)0.99
es/visitor/base-perf/boxing_unboxed
80
ns/iter (± 0
)81
ns/iter (± 0
)0.99
es/visitor/base-perf/visit_empty
0
ns/iter (± 0
)0
ns/iter (± 0
)NaN
es/visitor/base-perf/visit_contains_this
2604
ns/iter (± 13
)2612
ns/iter (± 9
)1.00
es/base/parallel/resolver/typescript
4641209027
ns/iter (± 270639090
)4405453816
ns/iter (± 209995813
)1.05
es/base/parallel/hygiene/typescript
1601523798
ns/iter (± 21673811
)1579935501
ns/iter (± 12104030
)1.01
misc/visitors/time-complexity/time 5
104
ns/iter (± 2
)106
ns/iter (± 0
)0.98
misc/visitors/time-complexity/time 10
268
ns/iter (± 0
)279
ns/iter (± 0
)0.96
misc/visitors/time-complexity/time 15
586
ns/iter (± 40
)600
ns/iter (± 41
)0.98
misc/visitors/time-complexity/time 20
941
ns/iter (± 8
)949
ns/iter (± 48
)0.99
misc/visitors/time-complexity/time 40
3770
ns/iter (± 40
)3740
ns/iter (± 211
)1.01
misc/visitors/time-complexity/time 60
7856
ns/iter (± 32
)7749
ns/iter (± 14
)1.01
es/full-target/es2016
241693
ns/iter (± 1008
)242987
ns/iter (± 871
)0.99
es/full-target/es2017
227730
ns/iter (± 930
)228861
ns/iter (± 616
)1.00
es/full-target/es2018
213898
ns/iter (± 599
)217108
ns/iter (± 1633
)0.99
es2020_nullish_coalescing
72105
ns/iter (± 408
)71301
ns/iter (± 234
)1.01
es2020_optional_chaining
83926
ns/iter (± 349
)62906
ns/iter (± 229
)1.33
es2022_class_properties
120553
ns/iter (± 532
)119323
ns/iter (± 208
)1.01
es2018_object_rest_spread
74672
ns/iter (± 266
)75671
ns/iter (± 346
)0.99
es2019_optional_catch_binding
64620
ns/iter (± 159
)64353
ns/iter (± 252
)1.00
es2017_async_to_generator
65198
ns/iter (± 197
)64441
ns/iter (± 217
)1.01
es2016_exponentiation
70768
ns/iter (± 213
)69604
ns/iter (± 235
)1.02
es2015_arrow
73036
ns/iter (± 208
)72366
ns/iter (± 170
)1.01
es2015_block_scoped_fn
70151
ns/iter (± 743
)69689
ns/iter (± 215
)1.01
es2015_block_scoping
133663
ns/iter (± 516
)132576
ns/iter (± 372
)1.01
This comment was automatically generated by workflow using github-action-benchmark.