Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(es/parser): Fix parsing of static accessors (#7108)
**Related issue:** - Closes #7107.
- Loading branch information
Showing
5 changed files
with
121 additions
and
2 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
5 changes: 5 additions & 0 deletions
5
crates/swc_ecma_parser/tests/typescript/issue-7042/case3/input.ts
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,5 @@ | ||
class SomeClass { | ||
static accessor() { | ||
return 'accessor'; | ||
} | ||
} |
103 changes: 103 additions & 0 deletions
103
crates/swc_ecma_parser/tests/typescript/issue-7042/case3/input.ts.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,103 @@ | ||
{ | ||
"type": "Script", | ||
"span": { | ||
"start": 1, | ||
"end": 77, | ||
"ctxt": 0 | ||
}, | ||
"body": [ | ||
{ | ||
"type": "ClassDeclaration", | ||
"identifier": { | ||
"type": "Identifier", | ||
"span": { | ||
"start": 7, | ||
"end": 16, | ||
"ctxt": 0 | ||
}, | ||
"value": "SomeClass", | ||
"optional": false | ||
}, | ||
"declare": false, | ||
"span": { | ||
"start": 1, | ||
"end": 77, | ||
"ctxt": 0 | ||
}, | ||
"decorators": [], | ||
"body": [ | ||
{ | ||
"type": "ClassMethod", | ||
"span": { | ||
"start": 23, | ||
"end": 75, | ||
"ctxt": 0 | ||
}, | ||
"key": { | ||
"type": "Identifier", | ||
"span": { | ||
"start": 30, | ||
"end": 38, | ||
"ctxt": 0 | ||
}, | ||
"value": "accessor", | ||
"optional": false | ||
}, | ||
"function": { | ||
"params": [], | ||
"decorators": [], | ||
"span": { | ||
"start": 23, | ||
"end": 75, | ||
"ctxt": 0 | ||
}, | ||
"body": { | ||
"type": "BlockStatement", | ||
"span": { | ||
"start": 41, | ||
"end": 75, | ||
"ctxt": 0 | ||
}, | ||
"stmts": [ | ||
{ | ||
"type": "ReturnStatement", | ||
"span": { | ||
"start": 51, | ||
"end": 69, | ||
"ctxt": 0 | ||
}, | ||
"argument": { | ||
"type": "StringLiteral", | ||
"span": { | ||
"start": 58, | ||
"end": 68, | ||
"ctxt": 0 | ||
}, | ||
"value": "accessor", | ||
"raw": "'accessor'" | ||
} | ||
} | ||
] | ||
}, | ||
"generator": false, | ||
"async": false, | ||
"typeParameters": null, | ||
"returnType": null | ||
}, | ||
"kind": "method", | ||
"isStatic": true, | ||
"accessibility": null, | ||
"isAbstract": false, | ||
"isOptional": false, | ||
"isOverride": false | ||
} | ||
], | ||
"superClass": null, | ||
"isAbstract": false, | ||
"typeParams": null, | ||
"superTypeParams": null, | ||
"implements": [] | ||
} | ||
], | ||
"interpreter": null | ||
} |
5 changes: 5 additions & 0 deletions
5
crates/swc_ecma_transforms_typescript/tests/fixture/issue-7042/case3/input.ts
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,5 @@ | ||
class SomeClass { | ||
static accessor() { | ||
return 'accessor'; | ||
} | ||
} |
5 changes: 5 additions & 0 deletions
5
crates/swc_ecma_transforms_typescript/tests/fixture/issue-7042/case3/output.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 |
---|---|---|
@@ -0,0 +1,5 @@ | ||
class SomeClass { | ||
static accessor() { | ||
return 'accessor'; | ||
} | ||
} |
dd2b16d
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
307443
ns/iter (± 9786
)298931
ns/iter (± 22653
)1.03
es/full/minify/libraries/antd
1470866369
ns/iter (± 34652128
)1517154220
ns/iter (± 32431279
)0.97
es/full/minify/libraries/d3
280955770
ns/iter (± 7674975
)287226493
ns/iter (± 9431816
)0.98
es/full/minify/libraries/echarts
1111736266
ns/iter (± 13839452
)1220130079
ns/iter (± 16820161
)0.91
es/full/minify/libraries/jquery
87055975
ns/iter (± 1011821
)89425539
ns/iter (± 1094645
)0.97
es/full/minify/libraries/lodash
101903413
ns/iter (± 1231863
)106109853
ns/iter (± 1230343
)0.96
es/full/minify/libraries/moment
50230504
ns/iter (± 707496
)51739370
ns/iter (± 488117
)0.97
es/full/minify/libraries/react
18610099
ns/iter (± 190542
)18845663
ns/iter (± 114066
)0.99
es/full/minify/libraries/terser
224776982
ns/iter (± 2991839
)243617099
ns/iter (± 4428615
)0.92
es/full/minify/libraries/three
395822085
ns/iter (± 5321112
)428453756
ns/iter (± 9081886
)0.92
es/full/minify/libraries/typescript
2770098842
ns/iter (± 21798900
)2887403478
ns/iter (± 29298304
)0.96
es/full/minify/libraries/victory
611103211
ns/iter (± 17388349
)637299773
ns/iter (± 11137201
)0.96
es/full/minify/libraries/vue
124318873
ns/iter (± 1424274
)126381378
ns/iter (± 1679864
)0.98
es/full/codegen/es3
25566
ns/iter (± 207
)26231
ns/iter (± 153
)0.97
es/full/codegen/es5
26149
ns/iter (± 176
)26640
ns/iter (± 48
)0.98
es/full/codegen/es2015
25583
ns/iter (± 261
)26512
ns/iter (± 50
)0.96
es/full/codegen/es2016
25676
ns/iter (± 385
)26459
ns/iter (± 98
)0.97
es/full/codegen/es2017
25682
ns/iter (± 259
)26467
ns/iter (± 143
)0.97
es/full/codegen/es2018
25635
ns/iter (± 171
)26467
ns/iter (± 87
)0.97
es/full/codegen/es2019
25591
ns/iter (± 135
)26546
ns/iter (± 57
)0.96
es/full/codegen/es2020
25641
ns/iter (± 175
)26351
ns/iter (± 86
)0.97
es/full/all/es3
180441450
ns/iter (± 2469833
)182018634
ns/iter (± 3285062
)0.99
es/full/all/es5
174753228
ns/iter (± 2559745
)172445027
ns/iter (± 4429995
)1.01
es/full/all/es2015
133867566
ns/iter (± 2749651
)137703540
ns/iter (± 3886715
)0.97
es/full/all/es2016
133030145
ns/iter (± 2537175
)135895415
ns/iter (± 1228242
)0.98
es/full/all/es2017
134304745
ns/iter (± 3005816
)133514833
ns/iter (± 2035287
)1.01
es/full/all/es2018
125950646
ns/iter (± 3092607
)129090471
ns/iter (± 1318567
)0.98
es/full/all/es2019
122134194
ns/iter (± 2282188
)127311197
ns/iter (± 1558873
)0.96
es/full/all/es2020
118978986
ns/iter (± 1702152
)119280253
ns/iter (± 1121756
)1.00
es/full/parser
515538
ns/iter (± 7660
)533714
ns/iter (± 7534
)0.97
es/full/base/fixer
21531
ns/iter (± 220
)22336
ns/iter (± 72
)0.96
es/full/base/resolver_and_hygiene
79779
ns/iter (± 673
)83553
ns/iter (± 334
)0.95
serialization of ast node
120
ns/iter (± 1
)123
ns/iter (± 0
)0.98
serialization of serde
124
ns/iter (± 1
)126
ns/iter (± 0
)0.98
css/minify/libraries/bootstrap
27594109
ns/iter (± 307542
)28313847
ns/iter (± 163895
)0.97
css/visitor/compare/clone
2001729
ns/iter (± 20679
)2076964
ns/iter (± 29070
)0.96
css/visitor/compare/visit_mut_span
2205407
ns/iter (± 13840
)2263091
ns/iter (± 7261
)0.97
css/visitor/compare/visit_mut_span_panic
2217063
ns/iter (± 16415
)2309475
ns/iter (± 5759
)0.96
css/visitor/compare/fold_span
2950862
ns/iter (± 26321
)3061699
ns/iter (± 13150
)0.96
css/visitor/compare/fold_span_panic
3069367
ns/iter (± 28015
)3211018
ns/iter (± 20439
)0.96
css/lexer/bootstrap_5_1_3
4979093
ns/iter (± 47933
)5120346
ns/iter (± 10003
)0.97
css/lexer/foundation_6_7_4
4139596
ns/iter (± 25602
)4311393
ns/iter (± 2068
)0.96
css/lexer/tailwind_3_1_1
800122
ns/iter (± 11085
)818412
ns/iter (± 446
)0.98
css/parser/bootstrap_5_1_3
21080609
ns/iter (± 232506
)22440173
ns/iter (± 144730
)0.94
css/parser/foundation_6_7_4
16689904
ns/iter (± 88218
)17861096
ns/iter (± 57443
)0.93
css/parser/tailwind_3_1_1
3216620
ns/iter (± 26357
)3354746
ns/iter (± 12139
)0.96
es/codegen/colors
332878
ns/iter (± 193569
)328739
ns/iter (± 183929
)1.01
es/codegen/large
1114341
ns/iter (± 575434
)1320884
ns/iter (± 664418
)0.84
es/codegen/with-parser/colors
45735
ns/iter (± 289
)47920
ns/iter (± 197
)0.95
es/codegen/with-parser/large
504029
ns/iter (± 5403
)522568
ns/iter (± 1433
)0.96
es/minify/libraries/antd
1253417187
ns/iter (± 18862187
)1329940370
ns/iter (± 16289170
)0.94
es/minify/libraries/d3
234298829
ns/iter (± 5591657
)246629749
ns/iter (± 3628788
)0.95
es/minify/libraries/echarts
945961403
ns/iter (± 12085903
)1031497621
ns/iter (± 12695457
)0.92
es/minify/libraries/jquery
75242470
ns/iter (± 621896
)77930345
ns/iter (± 847584
)0.97
es/minify/libraries/lodash
91401052
ns/iter (± 1800885
)93069327
ns/iter (± 524161
)0.98
es/minify/libraries/moment
43871197
ns/iter (± 262775
)44912149
ns/iter (± 185517
)0.98
es/minify/libraries/react
16665802
ns/iter (± 149064
)16868154
ns/iter (± 104863
)0.99
es/minify/libraries/terser
194484379
ns/iter (± 2296032
)204095032
ns/iter (± 2926389
)0.95
es/minify/libraries/three
333764172
ns/iter (± 4117807
)345676617
ns/iter (± 8415774
)0.97
es/minify/libraries/typescript
2351844901
ns/iter (± 45649297
)2450218653
ns/iter (± 17966613
)0.96
es/minify/libraries/victory
505203583
ns/iter (± 18092027
)535179017
ns/iter (± 5850614
)0.94
es/minify/libraries/vue
111268375
ns/iter (± 1775000
)113886806
ns/iter (± 1113660
)0.98
es/visitor/compare/clone
2255418
ns/iter (± 37485
)2309626
ns/iter (± 12345
)0.98
es/visitor/compare/visit_mut_span
2631125
ns/iter (± 15280
)2660062
ns/iter (± 7175
)0.99
es/visitor/compare/visit_mut_span_panic
2659346
ns/iter (± 38927
)2690484
ns/iter (± 5797
)0.99
es/visitor/compare/fold_span
3695253
ns/iter (± 37490
)3728456
ns/iter (± 24333
)0.99
es/visitor/compare/fold_span_panic
3781202
ns/iter (± 20117
)3905819
ns/iter (± 51059
)0.97
es/lexer/colors
14889
ns/iter (± 186
)15225
ns/iter (± 70
)0.98
es/lexer/angular
7251572
ns/iter (± 66156
)7389782
ns/iter (± 16280
)0.98
es/lexer/backbone
962310
ns/iter (± 8885
)983289
ns/iter (± 4016
)0.98
es/lexer/jquery
5435026
ns/iter (± 50799
)5519698
ns/iter (± 13890
)0.98
es/lexer/jquery mobile
8282827
ns/iter (± 46601
)8504000
ns/iter (± 37139
)0.97
es/lexer/mootools
4382019
ns/iter (± 49418
)4413633
ns/iter (± 21100
)0.99
es/lexer/underscore
821983
ns/iter (± 9627
)827381
ns/iter (± 3053
)0.99
es/lexer/three
25284724
ns/iter (± 288588
)26042799
ns/iter (± 62570
)0.97
es/lexer/yui
4547454
ns/iter (± 33988
)4641493
ns/iter (± 15101
)0.98
es/parser/colors
29093
ns/iter (± 171
)29218
ns/iter (± 192
)1.00
es/parser/angular
14700180
ns/iter (± 86064
)15284782
ns/iter (± 162368
)0.96
es/parser/backbone
2164461
ns/iter (± 20285
)2231010
ns/iter (± 33872
)0.97
es/parser/jquery
11749718
ns/iter (± 125061
)12076069
ns/iter (± 64528
)0.97
es/parser/jquery mobile
18296237
ns/iter (± 177457
)18640540
ns/iter (± 78015
)0.98
es/parser/mootools
9014547
ns/iter (± 56477
)9188871
ns/iter (± 44747
)0.98
es/parser/underscore
1838704
ns/iter (± 11715
)1877833
ns/iter (± 5244
)0.98
es/parser/three
53122825
ns/iter (± 1503004
)54120566
ns/iter (± 714380
)0.98
es/parser/yui
9009097
ns/iter (± 143037
)9168123
ns/iter (± 65238
)0.98
es/preset-env/usage/builtin_type
138664
ns/iter (± 32694
)136688
ns/iter (± 31764
)1.01
es/preset-env/usage/property
20359
ns/iter (± 149
)21100
ns/iter (± 101
)0.96
es/resolver/typescript
106839042
ns/iter (± 3311653
)112764588
ns/iter (± 1526234
)0.95
es/fixer/typescript
74070635
ns/iter (± 1373314
)77425625
ns/iter (± 775585
)0.96
es/hygiene/typescript
164611794
ns/iter (± 1752878
)164832518
ns/iter (± 1082344
)1.00
es/resolver_with_hygiene/typescript
305017625
ns/iter (± 1544994
)305222959
ns/iter (± 2699123
)1.00
es/visitor/base-perf/module_clone
79231
ns/iter (± 1827
)79461
ns/iter (± 1171
)1.00
es/visitor/base-perf/fold_empty
88017
ns/iter (± 1108
)89091
ns/iter (± 848
)0.99
es/visitor/base-perf/fold_noop_impl_all
89208
ns/iter (± 1636
)89069
ns/iter (± 1422
)1.00
es/visitor/base-perf/fold_noop_impl_vec
90042
ns/iter (± 1325
)89324
ns/iter (± 1617
)1.01
es/visitor/base-perf/boxing_boxed_clone
56
ns/iter (± 0
)56
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed_clone
53
ns/iter (± 0
)53
ns/iter (± 0
)1
es/visitor/base-perf/boxing_boxed
100
ns/iter (± 1
)101
ns/iter (± 0
)0.99
es/visitor/base-perf/boxing_unboxed
101
ns/iter (± 0
)99
ns/iter (± 0
)1.02
es/visitor/base-perf/visit_contains_this
3413
ns/iter (± 55
)3486
ns/iter (± 58
)0.98
es/base/parallel/resolver/typescript
6461201986
ns/iter (± 390871325
)6129934279
ns/iter (± 599473360
)1.05
es/base/parallel/hygiene/typescript
1958361121
ns/iter (± 35037924
)1960199061
ns/iter (± 29303854
)1.00
misc/visitors/time-complexity/time 5
94
ns/iter (± 0
)98
ns/iter (± 0
)0.96
misc/visitors/time-complexity/time 10
310
ns/iter (± 2
)361
ns/iter (± 1
)0.86
misc/visitors/time-complexity/time 15
644
ns/iter (± 4
)708
ns/iter (± 3
)0.91
misc/visitors/time-complexity/time 20
1229
ns/iter (± 27
)1297
ns/iter (± 13
)0.95
misc/visitors/time-complexity/time 40
6554
ns/iter (± 82
)6741
ns/iter (± 22
)0.97
misc/visitors/time-complexity/time 60
16677
ns/iter (± 174
)17328
ns/iter (± 56
)0.96
es/full-target/es2016
243645
ns/iter (± 1406
)247313
ns/iter (± 931
)0.99
es/full-target/es2017
236767
ns/iter (± 2682
)241788
ns/iter (± 446
)0.98
es/full-target/es2018
221063
ns/iter (± 1532
)229820
ns/iter (± 800
)0.96
es2020_nullish_coalescing
87476
ns/iter (± 537
)91259
ns/iter (± 431
)0.96
es2020_optional_chaining
119729
ns/iter (± 1324
)124366
ns/iter (± 803
)0.96
es2022_class_properties
141873
ns/iter (± 1693
)146332
ns/iter (± 518
)0.97
es2018_object_rest_spread
92191
ns/iter (± 806
)94483
ns/iter (± 341
)0.98
es2019_optional_catch_binding
81093
ns/iter (± 453
)83870
ns/iter (± 294
)0.97
es2017_async_to_generator
81827
ns/iter (± 678
)84654
ns/iter (± 293
)0.97
es2016_exponentiation
85497
ns/iter (± 708
)88600
ns/iter (± 295
)0.96
es2015_arrow
89875
ns/iter (± 647
)92935
ns/iter (± 240
)0.97
es2015_block_scoped_fn
87573
ns/iter (± 722
)91218
ns/iter (± 292
)0.96
es2015_block_scoping
163899
ns/iter (± 1536
)169053
ns/iter (± 345
)0.97
This comment was automatically generated by workflow using github-action-benchmark.