-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(es/typescript): Fix handling of optional chaining (#7660)
**Related issue:** - Closes #7659.
- Loading branch information
Showing
13 changed files
with
88 additions
and
12 deletions.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
{ | ||
"jsc": { | ||
"transform": { | ||
"decoratorVersion": "2022-03" | ||
}, | ||
"parser": { | ||
"syntax": "typescript", | ||
"decorators": true, | ||
"tsx": true | ||
}, | ||
"target": "es5", | ||
"loose": false, | ||
}, | ||
"module": { | ||
"type": "commonjs" | ||
}, | ||
"isModule": true, | ||
"minify": 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,2 @@ | ||
const a = undefined | ||
a?.b!.c |
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 @@ | ||
"use strict";var _a;var a=undefined;(_a=a)===null||_a===void 0?void 0:_a.b.c; |
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,19 @@ | ||
{ | ||
"jsc": { | ||
"transform": { | ||
"decoratorVersion": "2022-03" | ||
}, | ||
"parser": { | ||
"syntax": "typescript", | ||
"decorators": true, | ||
"tsx": true | ||
}, | ||
"target": "es5", | ||
"loose": false, | ||
}, | ||
"module": { | ||
"type": "commonjs" | ||
}, | ||
"isModule": true, | ||
"minify": 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,2 @@ | ||
const a = undefined | ||
a?.b.c |
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 @@ | ||
"use strict";var _a;var a=undefined;(_a=a)===null||_a===void 0?void 0:_a.b.c; |
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
2 changes: 1 addition & 1 deletion
2
crates/swc/tests/tsc-references/elementAccessChain.2.minified.js
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
2 changes: 1 addition & 1 deletion
2
crates/swc/tests/tsc-references/propertyAccessChain.2.minified.js
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
c017874
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
299354
ns/iter (± 8864
)283739
ns/iter (± 4895
)1.06
es/full/minify/libraries/antd
1340500472
ns/iter (± 14753046
)1357910406
ns/iter (± 18392269
)0.99
es/full/minify/libraries/d3
279874315
ns/iter (± 1575578
)292043673
ns/iter (± 4774406
)0.96
es/full/minify/libraries/echarts
1080702230
ns/iter (± 13391196
)1121112761
ns/iter (± 7444746
)0.96
es/full/minify/libraries/jquery
86168707
ns/iter (± 191861
)86866527
ns/iter (± 712723
)0.99
es/full/minify/libraries/lodash
100045110
ns/iter (± 297306
)100504811
ns/iter (± 391356
)1.00
es/full/minify/libraries/moment
50666408
ns/iter (± 155381
)50953221
ns/iter (± 113485
)0.99
es/full/minify/libraries/react
18245543
ns/iter (± 33672
)18236844
ns/iter (± 82815
)1.00
es/full/minify/libraries/terser
223003353
ns/iter (± 1608783
)225182701
ns/iter (± 929107
)0.99
es/full/minify/libraries/three
393415605
ns/iter (± 2994985
)404492091
ns/iter (± 3533121
)0.97
es/full/minify/libraries/typescript
2713908929
ns/iter (± 11935916
)2729126946
ns/iter (± 29429371
)0.99
es/full/minify/libraries/victory
584117016
ns/iter (± 7943298
)575161292
ns/iter (± 12203907
)1.02
es/full/minify/libraries/vue
122765103
ns/iter (± 338230
)123010385
ns/iter (± 1485444
)1.00
es/full/codegen/es3
34223
ns/iter (± 193
)34134
ns/iter (± 68
)1.00
es/full/codegen/es5
34282
ns/iter (± 58
)34065
ns/iter (± 85
)1.01
es/full/codegen/es2015
34242
ns/iter (± 91
)34142
ns/iter (± 66
)1.00
es/full/codegen/es2016
34257
ns/iter (± 83
)34126
ns/iter (± 87
)1.00
es/full/codegen/es2017
34280
ns/iter (± 98
)34035
ns/iter (± 92
)1.01
es/full/codegen/es2018
34333
ns/iter (± 127
)34107
ns/iter (± 81
)1.01
es/full/codegen/es2019
34300
ns/iter (± 72
)34140
ns/iter (± 72
)1.00
es/full/codegen/es2020
34184
ns/iter (± 66
)34139
ns/iter (± 74
)1.00
es/full/all/es3
172510590
ns/iter (± 792483
)172718337
ns/iter (± 1104100
)1.00
es/full/all/es5
165852664
ns/iter (± 853104
)164355674
ns/iter (± 1001487
)1.01
es/full/all/es2015
124716335
ns/iter (± 988525
)123942817
ns/iter (± 523550
)1.01
es/full/all/es2016
123968465
ns/iter (± 564044
)123592732
ns/iter (± 1067611
)1.00
es/full/all/es2017
123157239
ns/iter (± 743120
)122076147
ns/iter (± 538422
)1.01
es/full/all/es2018
120969250
ns/iter (± 488711
)120362192
ns/iter (± 576364
)1.01
es/full/all/es2019
120460734
ns/iter (± 624970
)119802659
ns/iter (± 859275
)1.01
es/full/all/es2020
115547454
ns/iter (± 894972
)115016042
ns/iter (± 917681
)1.00
es/full/parser
535690
ns/iter (± 6190
)534799
ns/iter (± 6467
)1.00
es/full/base/fixer
19715
ns/iter (± 96
)17683
ns/iter (± 67
)1.11
es/full/base/resolver_and_hygiene
85000
ns/iter (± 273
)83181
ns/iter (± 163
)1.02
serialization of serde
286
ns/iter (± 7
)291
ns/iter (± 0
)0.98
css/minify/libraries/bootstrap
29157054
ns/iter (± 106238
)28798243
ns/iter (± 96346
)1.01
css/visitor/compare/clone
1636983
ns/iter (± 5355
)1642135
ns/iter (± 4768
)1.00
css/visitor/compare/visit_mut_span
1781575
ns/iter (± 7213
)1790081
ns/iter (± 5769
)1.00
css/visitor/compare/visit_mut_span_panic
1833143
ns/iter (± 5140
)1842535
ns/iter (± 2924
)0.99
css/visitor/compare/fold_span
2569653
ns/iter (± 16738
)2560112
ns/iter (± 16375
)1.00
css/visitor/compare/fold_span_panic
2763491
ns/iter (± 11143
)2751312
ns/iter (± 13853
)1.00
css/lexer/bootstrap_5_1_3
4402378
ns/iter (± 2127
)4433388
ns/iter (± 3448
)0.99
css/lexer/foundation_6_7_4
3714542
ns/iter (± 192260
)3756957
ns/iter (± 1845
)0.99
css/lexer/tailwind_3_1_1
707786
ns/iter (± 175
)712790
ns/iter (± 564
)0.99
css/parser/bootstrap_5_1_3
19535800
ns/iter (± 44828
)20172369
ns/iter (± 36499
)0.97
css/parser/foundation_6_7_4
15663227
ns/iter (± 29369
)16099106
ns/iter (± 45805
)0.97
css/parser/tailwind_3_1_1
2972211
ns/iter (± 3689
)3099826
ns/iter (± 3293
)0.96
es/codegen/colors
736419
ns/iter (± 402183
)756306
ns/iter (± 401849
)0.97
es/codegen/large
3154153
ns/iter (± 1682046
)3158740
ns/iter (± 1665466
)1.00
es/codegen/with-parser/colors
44299
ns/iter (± 426
)44142
ns/iter (± 453
)1.00
es/codegen/with-parser/large
480815
ns/iter (± 1058
)482393
ns/iter (± 1348
)1.00
es/minify/libraries/antd
1146689176
ns/iter (± 12168444
)1167070035
ns/iter (± 16082500
)0.98
es/minify/libraries/d3
242582915
ns/iter (± 1206232
)243091491
ns/iter (± 1281574
)1.00
es/minify/libraries/echarts
917331587
ns/iter (± 12062972
)930953945
ns/iter (± 5098739
)0.99
es/minify/libraries/jquery
73889159
ns/iter (± 77216
)74254758
ns/iter (± 246414
)1.00
es/minify/libraries/lodash
88873556
ns/iter (± 151280
)88551790
ns/iter (± 199190
)1.00
es/minify/libraries/moment
43662597
ns/iter (± 161031
)43622796
ns/iter (± 109356
)1.00
es/minify/libraries/react
16082564
ns/iter (± 52655
)16096109
ns/iter (± 60241
)1.00
es/minify/libraries/terser
188362861
ns/iter (± 1178158
)189759093
ns/iter (± 860920
)0.99
es/minify/libraries/three
324185243
ns/iter (± 3160259
)325563318
ns/iter (± 1661307
)1.00
es/minify/libraries/typescript
2293171199
ns/iter (± 13713575
)2294015210
ns/iter (± 12318055
)1.00
es/minify/libraries/victory
480955467
ns/iter (± 5449206
)487923416
ns/iter (± 3514998
)0.99
es/minify/libraries/vue
107575027
ns/iter (± 298342
)108414179
ns/iter (± 790473
)0.99
es/visitor/compare/clone
1950679
ns/iter (± 4021
)1934960
ns/iter (± 18816
)1.01
es/visitor/compare/visit_mut_span
2289365
ns/iter (± 5244
)2282528
ns/iter (± 2591
)1.00
es/visitor/compare/visit_mut_span_panic
2331102
ns/iter (± 7191
)2312759
ns/iter (± 5079
)1.01
es/visitor/compare/fold_span
3343799
ns/iter (± 3981
)3316503
ns/iter (± 2933
)1.01
es/visitor/compare/fold_span_panic
3503301
ns/iter (± 7018
)3483401
ns/iter (± 2475
)1.01
es/lexer/colors
12662
ns/iter (± 28
)13022
ns/iter (± 19
)0.97
es/lexer/angular
6223088
ns/iter (± 3507
)6144771
ns/iter (± 8075
)1.01
es/lexer/backbone
821304
ns/iter (± 1233
)811470
ns/iter (± 1060
)1.01
es/lexer/jquery
4613338
ns/iter (± 8201
)4529183
ns/iter (± 3588
)1.02
es/lexer/jquery mobile
7050057
ns/iter (± 5225
)6960376
ns/iter (± 2527
)1.01
es/lexer/mootools
3643434
ns/iter (± 1613
)3598939
ns/iter (± 1101
)1.01
es/lexer/underscore
689642
ns/iter (± 1083
)679775
ns/iter (± 1006
)1.01
es/lexer/three
21676791
ns/iter (± 26979
)21413757
ns/iter (± 18323
)1.01
es/lexer/yui
3959681
ns/iter (± 1861
)3913429
ns/iter (± 4390
)1.01
es/parser/colors
26765
ns/iter (± 78
)26280
ns/iter (± 47
)1.02
es/parser/angular
13501416
ns/iter (± 77117
)13342753
ns/iter (± 69789
)1.01
es/parser/backbone
2022250
ns/iter (± 8866
)1973709
ns/iter (± 8923
)1.02
es/parser/jquery
10954795
ns/iter (± 39578
)10753090
ns/iter (± 39636
)1.02
es/parser/jquery mobile
16750488
ns/iter (± 47891
)16566526
ns/iter (± 195241
)1.01
es/parser/mootools
8465783
ns/iter (± 19422
)8242130
ns/iter (± 17883
)1.03
es/parser/underscore
1740431
ns/iter (± 9773
)1701820
ns/iter (± 8810
)1.02
es/parser/three
46822452
ns/iter (± 326125
)47188213
ns/iter (± 861637
)0.99
es/parser/yui
8299440
ns/iter (± 29560
)8166263
ns/iter (± 47604
)1.02
es/preset-env/usage/builtin_type
135998
ns/iter (± 31970
)135971
ns/iter (± 30944
)1.00
es/preset-env/usage/property
17072
ns/iter (± 47
)17107
ns/iter (± 62
)1.00
es/resolver/typescript
88853439
ns/iter (± 722757
)90198237
ns/iter (± 1243091
)0.99
es/fixer/typescript
64791984
ns/iter (± 889126
)64057495
ns/iter (± 820316
)1.01
es/hygiene/typescript
133022945
ns/iter (± 1326560
)136281481
ns/iter (± 3627283
)0.98
es/resolver_with_hygiene/typescript
245633552
ns/iter (± 1194929
)250985943
ns/iter (± 3296262
)0.98
es/visitor/base-perf/module_clone
59742
ns/iter (± 221
)61664
ns/iter (± 235
)0.97
es/visitor/base-perf/fold_empty
64167
ns/iter (± 184
)64668
ns/iter (± 343
)0.99
es/visitor/base-perf/fold_noop_impl_all
63356
ns/iter (± 285
)64759
ns/iter (± 553
)0.98
es/visitor/base-perf/fold_noop_impl_vec
64215
ns/iter (± 207
)64900
ns/iter (± 284
)0.99
es/visitor/base-perf/boxing_boxed_clone
56
ns/iter (± 0
)59
ns/iter (± 0
)0.95
es/visitor/base-perf/boxing_unboxed_clone
40
ns/iter (± 0
)39
ns/iter (± 0
)1.03
es/visitor/base-perf/boxing_boxed
109
ns/iter (± 0
)108
ns/iter (± 0
)1.01
es/visitor/base-perf/boxing_unboxed
78
ns/iter (± 0
)78
ns/iter (± 0
)1
es/visitor/base-perf/visit_empty
0
ns/iter (± 0
)0
ns/iter (± 0
)NaN
es/visitor/base-perf/visit_contains_this
2528
ns/iter (± 18
)2520
ns/iter (± 19
)1.00
es/base/parallel/resolver/typescript
4032674429
ns/iter (± 336096527
)4481123869
ns/iter (± 271760016
)0.90
es/base/parallel/hygiene/typescript
1451902790
ns/iter (± 15524198
)1476104863
ns/iter (± 14112456
)0.98
misc/visitors/time-complexity/time 5
134
ns/iter (± 2
)137
ns/iter (± 1
)0.98
misc/visitors/time-complexity/time 10
374
ns/iter (± 1
)285
ns/iter (± 47
)1.31
misc/visitors/time-complexity/time 15
731
ns/iter (± 3
)683
ns/iter (± 5
)1.07
misc/visitors/time-complexity/time 20
937
ns/iter (± 74
)1062
ns/iter (± 3
)0.88
misc/visitors/time-complexity/time 40
3558
ns/iter (± 16
)3704
ns/iter (± 291
)0.96
misc/visitors/time-complexity/time 60
8801
ns/iter (± 4
)8131
ns/iter (± 731
)1.08
es/full-target/es2016
241488
ns/iter (± 707
)238298
ns/iter (± 1668
)1.01
es/full-target/es2017
229765
ns/iter (± 603
)224099
ns/iter (± 523
)1.03
es/full-target/es2018
216762
ns/iter (± 798
)213795
ns/iter (± 715
)1.01
es2020_nullish_coalescing
71452
ns/iter (± 1879
)69076
ns/iter (± 319
)1.03
es2020_optional_chaining
82116
ns/iter (± 433
)78288
ns/iter (± 315
)1.05
es2022_class_properties
120759
ns/iter (± 414
)118576
ns/iter (± 221
)1.02
es2018_object_rest_spread
75200
ns/iter (± 373
)75022
ns/iter (± 232
)1.00
es2019_optional_catch_binding
64708
ns/iter (± 177
)64921
ns/iter (± 186
)1.00
es2017_async_to_generator
65308
ns/iter (± 232
)63471
ns/iter (± 124
)1.03
es2016_exponentiation
69013
ns/iter (± 176
)68359
ns/iter (± 293
)1.01
es2015_arrow
71951
ns/iter (± 204
)73343
ns/iter (± 355
)0.98
es2015_block_scoped_fn
70131
ns/iter (± 305
)68563
ns/iter (± 200
)1.02
es2015_block_scoping
124759
ns/iter (± 477
)125273
ns/iter (± 595
)1.00
This comment was automatically generated by workflow using github-action-benchmark.