Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(es/parser): Make lexer not generic over
Input
(#6993)
**Description:** Currently, it uses `StringInput` as the input type, but I'll refactor it to use `String` or `Vec<u8>` directly to optimize it further. **Related issue:** - #6991
- Loading branch information
Showing
22 changed files
with
50 additions
and
51 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
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
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
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
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
Oops, something went wrong.
367ac82
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
298224
ns/iter (± 13823
)308979
ns/iter (± 10471
)0.97
es/full/minify/libraries/antd
1614476927
ns/iter (± 18572207
)1793269088
ns/iter (± 21641928
)0.90
es/full/minify/libraries/d3
300200417
ns/iter (± 6817488
)334579618
ns/iter (± 12516853
)0.90
es/full/minify/libraries/echarts
1253288226
ns/iter (± 7377629
)1391929807
ns/iter (± 20426417
)0.90
es/full/minify/libraries/jquery
91051207
ns/iter (± 1085148
)95522833
ns/iter (± 1758477
)0.95
es/full/minify/libraries/lodash
106426008
ns/iter (± 1148604
)113377015
ns/iter (± 1762137
)0.94
es/full/minify/libraries/moment
53071139
ns/iter (± 304413
)55041086
ns/iter (± 484478
)0.96
es/full/minify/libraries/react
19162511
ns/iter (± 158230
)20453097
ns/iter (± 401563
)0.94
es/full/minify/libraries/terser
251253952
ns/iter (± 2966960
)275685393
ns/iter (± 9873278
)0.91
es/full/minify/libraries/three
451836044
ns/iter (± 3172770
)500770881
ns/iter (± 13538881
)0.90
es/full/minify/libraries/typescript
3011675855
ns/iter (± 22312759
)3341333920
ns/iter (± 30660653
)0.90
es/full/minify/libraries/victory
663424774
ns/iter (± 14229269
)771166567
ns/iter (± 12882426
)0.86
es/full/minify/libraries/vue
131383450
ns/iter (± 1959866
)138849950
ns/iter (± 2096687
)0.95
es/full/codegen/es3
26916
ns/iter (± 64
)26280
ns/iter (± 39
)1.02
es/full/codegen/es5
26911
ns/iter (± 40
)26366
ns/iter (± 36
)1.02
es/full/codegen/es2015
26942
ns/iter (± 71
)26225
ns/iter (± 66
)1.03
es/full/codegen/es2016
26915
ns/iter (± 94
)26309
ns/iter (± 80
)1.02
es/full/codegen/es2017
26918
ns/iter (± 38
)26276
ns/iter (± 45
)1.02
es/full/codegen/es2018
26921
ns/iter (± 57
)26294
ns/iter (± 59
)1.02
es/full/codegen/es2019
26915
ns/iter (± 65
)26316
ns/iter (± 66
)1.02
es/full/codegen/es2020
27005
ns/iter (± 63
)26265
ns/iter (± 65
)1.03
es/full/all/es3
169762895
ns/iter (± 3276486
)175779824
ns/iter (± 2324275
)0.97
es/full/all/es5
163395806
ns/iter (± 2903938
)167446544
ns/iter (± 2059274
)0.98
es/full/all/es2015
128002980
ns/iter (± 1288514
)130969962
ns/iter (± 1920203
)0.98
es/full/all/es2016
126497639
ns/iter (± 1421077
)128432235
ns/iter (± 1473077
)0.98
es/full/all/es2017
124895847
ns/iter (± 1336284
)127060503
ns/iter (± 2421775
)0.98
es/full/all/es2018
120830528
ns/iter (± 733949
)124131098
ns/iter (± 1574410
)0.97
es/full/all/es2019
120567376
ns/iter (± 1197932
)123167484
ns/iter (± 1296282
)0.98
es/full/all/es2020
116450592
ns/iter (± 524006
)117662908
ns/iter (± 1475738
)0.99
es/full/parser
547318
ns/iter (± 8494
)542954
ns/iter (± 9469
)1.01
es/full/base/fixer
21901
ns/iter (± 55
)21952
ns/iter (± 34
)1.00
es/full/base/resolver_and_hygiene
82231
ns/iter (± 71
)82117
ns/iter (± 54
)1.00
serialization of ast node
124
ns/iter (± 0
)123
ns/iter (± 0
)1.01
serialization of serde
124
ns/iter (± 0
)126
ns/iter (± 0
)0.98
css/minify/libraries/bootstrap
28091149
ns/iter (± 158560
)29092611
ns/iter (± 294267
)0.97
css/visitor/compare/clone
2059426
ns/iter (± 21719
)2121038
ns/iter (± 18131
)0.97
css/visitor/compare/visit_mut_span
2282852
ns/iter (± 9745
)2293005
ns/iter (± 12747
)1.00
css/visitor/compare/visit_mut_span_panic
2296967
ns/iter (± 6948
)2376381
ns/iter (± 17183
)0.97
css/visitor/compare/fold_span
3005196
ns/iter (± 28238
)3132228
ns/iter (± 29351
)0.96
css/visitor/compare/fold_span_panic
3199270
ns/iter (± 24759
)3273107
ns/iter (± 35982
)0.98
css/lexer/bootstrap_5_1_3
5199839
ns/iter (± 26308
)5208661
ns/iter (± 6325
)1.00
css/lexer/foundation_6_7_4
4360853
ns/iter (± 1912
)4383311
ns/iter (± 1226
)0.99
css/lexer/tailwind_3_1_1
830239
ns/iter (± 709
)836183
ns/iter (± 841
)0.99
css/parser/bootstrap_5_1_3
21717401
ns/iter (± 54087
)21971143
ns/iter (± 168428
)0.99
css/parser/foundation_6_7_4
17295682
ns/iter (± 21887
)17741091
ns/iter (± 120064
)0.97
css/parser/tailwind_3_1_1
3330439
ns/iter (± 4793
)3321895
ns/iter (± 3796
)1.00
es/codegen/colors
332087
ns/iter (± 184964
)332252
ns/iter (± 185176
)1.00
es/codegen/large
1153899
ns/iter (± 580082
)1199734
ns/iter (± 605831
)0.96
es/codegen/with-parser/colors
47932
ns/iter (± 443
)48481
ns/iter (± 289
)0.99
es/codegen/with-parser/large
519313
ns/iter (± 532
)530103
ns/iter (± 1655
)0.98
es/minify/libraries/antd
1401484345
ns/iter (± 25329611
)1586843834
ns/iter (± 24945559
)0.88
es/minify/libraries/d3
254834719
ns/iter (± 2129703
)287568168
ns/iter (± 6065408
)0.89
es/minify/libraries/echarts
1061805966
ns/iter (± 8379348
)1184333998
ns/iter (± 11851997
)0.90
es/minify/libraries/jquery
77564235
ns/iter (± 554825
)81748273
ns/iter (± 1561123
)0.95
es/minify/libraries/lodash
94358865
ns/iter (± 505585
)100235888
ns/iter (± 990225
)0.94
es/minify/libraries/moment
45919099
ns/iter (± 385150
)47238108
ns/iter (± 331369
)0.97
es/minify/libraries/react
16995100
ns/iter (± 100794
)17675187
ns/iter (± 104728
)0.96
es/minify/libraries/terser
212548890
ns/iter (± 1900364
)238529720
ns/iter (± 5258523
)0.89
es/minify/libraries/three
367804912
ns/iter (± 3776562
)423010923
ns/iter (± 9694654
)0.87
es/minify/libraries/typescript
2556052834
ns/iter (± 23922437
)2846877635
ns/iter (± 21331509
)0.90
es/minify/libraries/victory
563299298
ns/iter (± 5314023
)661486803
ns/iter (± 22140743
)0.85
es/minify/libraries/vue
116679448
ns/iter (± 867080
)122244027
ns/iter (± 1540139
)0.95
es/visitor/compare/clone
2408847
ns/iter (± 8250
)2416203
ns/iter (± 27867
)1.00
es/visitor/compare/visit_mut_span
2784498
ns/iter (± 3403
)2822536
ns/iter (± 15269
)0.99
es/visitor/compare/visit_mut_span_panic
2816689
ns/iter (± 7788
)2871995
ns/iter (± 8476
)0.98
es/visitor/compare/fold_span
3938180
ns/iter (± 9097
)3991633
ns/iter (± 13407
)0.99
es/visitor/compare/fold_span_panic
4082000
ns/iter (± 9830
)4210565
ns/iter (± 39619
)0.97
es/lexer/colors
16326
ns/iter (± 17
)16804
ns/iter (± 36
)0.97
es/lexer/angular
7846201
ns/iter (± 3292
)7845818
ns/iter (± 4201
)1.00
es/lexer/backbone
1010919
ns/iter (± 4739
)1067780
ns/iter (± 761
)0.95
es/lexer/jquery
5618276
ns/iter (± 5352
)5967154
ns/iter (± 4413
)0.94
es/lexer/jquery mobile
8631436
ns/iter (± 20095
)9159078
ns/iter (± 3577
)0.94
es/lexer/mootools
4429468
ns/iter (± 3707
)4716295
ns/iter (± 3629
)0.94
es/lexer/underscore
846422
ns/iter (± 455
)894780
ns/iter (± 397
)0.95
es/lexer/three
26323188
ns/iter (± 12526
)28000828
ns/iter (± 43091
)0.94
es/lexer/yui
4823008
ns/iter (± 1643
)5024431
ns/iter (± 3646
)0.96
es/parser/colors
30265
ns/iter (± 52
)30286
ns/iter (± 50
)1.00
es/parser/angular
15574325
ns/iter (± 111748
)15744875
ns/iter (± 296318
)0.99
es/parser/backbone
2285525
ns/iter (± 12040
)2308349
ns/iter (± 25885
)0.99
es/parser/jquery
12265072
ns/iter (± 81030
)12575622
ns/iter (± 126714
)0.98
es/parser/jquery mobile
19256215
ns/iter (± 271160
)20571011
ns/iter (± 205345
)0.94
es/parser/mootools
9453850
ns/iter (± 24937
)9587079
ns/iter (± 54678
)0.99
es/parser/underscore
1941430
ns/iter (± 12932
)1962784
ns/iter (± 12068
)0.99
es/parser/three
57081266
ns/iter (± 318091
)61024523
ns/iter (± 315517
)0.94
es/parser/yui
9478149
ns/iter (± 58211
)9669604
ns/iter (± 101958
)0.98
es/preset-env/usage/builtin_type
141942
ns/iter (± 32650
)140296
ns/iter (± 31292
)1.01
es/preset-env/usage/property
21170
ns/iter (± 88
)21221
ns/iter (± 83
)1.00
es/resolver/typescript
112179917
ns/iter (± 2899608
)125553625
ns/iter (± 4804946
)0.89
es/fixer/typescript
85363941
ns/iter (± 3198129
)99353771
ns/iter (± 2370167
)0.86
es/hygiene/typescript
180823810
ns/iter (± 1231102
)214992426
ns/iter (± 2035063
)0.84
es/resolver_with_hygiene/typescript
321119722
ns/iter (± 1866499
)361768327
ns/iter (± 1942129
)0.89
es/visitor/base-perf/module_clone
76820
ns/iter (± 1771
)75666
ns/iter (± 1016
)1.02
es/visitor/base-perf/fold_empty
86438
ns/iter (± 1123
)85671
ns/iter (± 1743
)1.01
es/visitor/base-perf/fold_noop_impl_all
85864
ns/iter (± 1307
)85350
ns/iter (± 1476
)1.01
es/visitor/base-perf/fold_noop_impl_vec
88125
ns/iter (± 2544
)85778
ns/iter (± 1285
)1.03
es/visitor/base-perf/boxing_boxed_clone
56
ns/iter (± 0
)56
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed_clone
59
ns/iter (± 0
)61
ns/iter (± 0
)0.97
es/visitor/base-perf/boxing_boxed
103
ns/iter (± 0
)103
ns/iter (± 0
)1
es/visitor/base-perf/boxing_unboxed
103
ns/iter (± 0
)104
ns/iter (± 0
)0.99
es/visitor/base-perf/visit_contains_this
3483
ns/iter (± 68
)3646
ns/iter (± 102
)0.96
es/base/parallel/resolver/typescript
5575714289
ns/iter (± 487459726
)5811740259
ns/iter (± 586226754
)0.96
es/base/parallel/hygiene/typescript
2144660074
ns/iter (± 20468510
)2404608101
ns/iter (± 35635591
)0.89
misc/visitors/time-complexity/time 5
102
ns/iter (± 0
)96
ns/iter (± 0
)1.06
misc/visitors/time-complexity/time 10
323
ns/iter (± 2
)317
ns/iter (± 5
)1.02
misc/visitors/time-complexity/time 15
686
ns/iter (± 0
)653
ns/iter (± 22
)1.05
misc/visitors/time-complexity/time 20
1271
ns/iter (± 11
)1189
ns/iter (± 4
)1.07
misc/visitors/time-complexity/time 40
6748
ns/iter (± 54
)6509
ns/iter (± 2
)1.04
misc/visitors/time-complexity/time 60
17172
ns/iter (± 59
)16858
ns/iter (± 19
)1.02
es/full-target/es2016
188429
ns/iter (± 355
)188835
ns/iter (± 609
)1.00
es/full-target/es2017
183771
ns/iter (± 542
)183672
ns/iter (± 806
)1.00
es/full-target/es2018
172209
ns/iter (± 476
)171780
ns/iter (± 321
)1.00
es2020_nullish_coalescing
67535
ns/iter (± 91
)66810
ns/iter (± 154
)1.01
es2020_optional_chaining
96193
ns/iter (± 3181
)96865
ns/iter (± 176
)0.99
es2022_class_properties
94004
ns/iter (± 156
)93664
ns/iter (± 198
)1.00
es2018_object_rest_spread
71818
ns/iter (± 125
)71429
ns/iter (± 144
)1.01
es2019_optional_catch_binding
61417
ns/iter (± 110
)61496
ns/iter (± 208
)1.00
es2017_async_to_generator
62118
ns/iter (± 141
)61730
ns/iter (± 149
)1.01
es2016_exponentiation
65447
ns/iter (± 182
)64940
ns/iter (± 268
)1.01
es2015_arrow
69751
ns/iter (± 227
)70648
ns/iter (± 129
)0.99
es2015_block_scoped_fn
66413
ns/iter (± 129
)66448
ns/iter (± 126
)1.00
es2015_block_scoping
138851
ns/iter (± 12034
)138814
ns/iter (± 8213
)1.00
es2015_classes
116665
ns/iter (± 395
)116922
ns/iter (± 406
)1.00
es2015_computed_props
61323
ns/iter (± 88
)61344
ns/iter (± 94
)1.00
es2015_destructuring
117150
ns/iter (± 407
)115887
ns/iter (± 236
)1.01
es2015_duplicate_keys
64109
ns/iter (± 91
)63907
ns/iter (± 110
)1.00
es2015_parameters
80091
ns/iter (± 141
)79853
ns/iter (± 217
)1.00
es2015_fn_name
66527
ns/iter (± 460
)67089
ns/iter (± 487
)0.99
es2015_for_of
64427
ns/iter (± 169
)64510
ns/iter (± 88
)1.00
es2015_instanceof
63731
ns/iter (± 134
)62979
ns/iter (± 89
)1.01
es2015_shorthand_property
60968
ns/iter (± 65
)60856
ns/iter (± 70
)1.00
es2015_spread
61197
ns/iter (± 130
)61060
ns/iter (± 83
)1.00
es2015_sticky_regex
62497
ns/iter (± 94
)62178
ns/iter (± 91
)1.01
es2015_typeof_symbol
62816
ns/iter (± 110
)62466
ns/iter (± 69
)1.01
es/transform/baseline/base
52071
ns/iter (± 90
)51999
ns/iter (± 92
)1.00
es/transform/baseline/common_reserved_word
62593
ns/iter (± 103
)62602
ns/iter (± 42
)1.00
es/transform/baseline/common_typescript
142346
ns/iter (± 2092
)144393
ns/iter (± 5676
)0.99
es/target/es3
168870
ns/iter (± 219
)170576
ns/iter (± 295
)0.99
es/target/es2015
629829
ns/iter (± 1346
)631502
ns/iter (± 1540
)1.00
es/target/es2016
65490
ns/iter (± 87
)65044
ns/iter (± 76
)1.01
es/target/es2017
62254
ns/iter (± 107
)61918
ns/iter (± 109
)1.01
es/target/es2018
81931
ns/iter (± 157
)82045
ns/iter (± 130
)1.00
es/target/es2020
132942
ns/iter (± 230
)132573
ns/iter (± 232
)1.00
babelify-only
665520
ns/iter (± 2895
)670403
ns/iter (± 1108
)0.99
parse_and_babelify_angular
44121133
ns/iter (± 1262116
)47206905
ns/iter (± 785210
)0.93
parse_and_babelify_backbone
5467319
ns/iter (± 61781
)5591634
ns/iter (± 51170
)0.98
parse_and_babelify_jquery
32203836
ns/iter (± 574077
)35081083
ns/iter (± 243709
)0.92
parse_and_babelify_jquery_mobile
54399453
ns/iter (± 314710
)59087298
ns/iter (± 550642
)0.92
parse_and_babelify_mootools
33539068
ns/iter (± 416067
)35693225
ns/iter (± 751150
)0.94
parse_and_babelify_underscore
4378707
ns/iter (± 11002
)4458626
ns/iter (± 40208
)0.98
parse_and_babelify_yui
37071240
ns/iter (± 738663
)38920310
ns/iter (± 1546020
)0.95
html/minify/document/css_spec
42000606
ns/iter (± 174322
)43199471
ns/iter (± 475614
)0.97
html/minify/document/github
17422321
ns/iter (± 23456
)17665930
ns/iter (± 109607
)0.99
html/minify/document/stackoverflow
15647644
ns/iter (± 23706
)15947069
ns/iter (± 105521
)0.98
html/minify/document_fragment/css_spec
40531812
ns/iter (± 226454
)42048796
ns/iter (± 465582
)0.96
html/minify/document_fragment/github
16733011
ns/iter (± 29045
)16939530
ns/iter (± 53237
)0.99
html/minify/document_fragment/stackoverflow
15244223
ns/iter (± 47244
)15524511
ns/iter (± 101576
)0.98
html/document/visitor/compare/clone
342521
ns/iter (± 1598
)341837
ns/iter (± 1258
)1.00
html/document/visitor/compare/visit_mut_span
369625
ns/iter (± 2599
)367213
ns/iter (± 1208
)1.01
html/document/visitor/compare/visit_mut_span_panic
382733
ns/iter (± 1775
)380470
ns/iter (± 1450
)1.01
html/document/visitor/compare/fold_span
407569
ns/iter (± 2240
)403916
ns/iter (± 1717
)1.01
html/document/visitor/compare/fold_span_panic
466138
ns/iter (± 1751
)459763
ns/iter (± 1731
)1.01
html/document_fragment/visitor/compare/clone
343877
ns/iter (± 2102
)336702
ns/iter (± 1838
)1.02
html/document_fragment/visitor/compare/visit_mut_span
367358
ns/iter (± 1672
)364798
ns/iter (± 1489
)1.01
html/document_fragment/visitor/compare/visit_mut_span_panic
373126
ns/iter (± 2181
)374874
ns/iter (± 3109
)1.00
html/document_fragment/visitor/compare/fold_span
404360
ns/iter (± 1813
)406837
ns/iter (± 2273
)0.99
html/document_fragment/visitor/compare/fold_span_panic
465173
ns/iter (± 2275
)460661
ns/iter (± 2996
)1.01
html/lexer/css_2021_spec
15795125
ns/iter (± 10919
)15624433
ns/iter (± 11156
)1.01
html/lexer/github_com_17_05_2022
6090451
ns/iter (± 1479
)6044220
ns/iter (± 1174
)1.01
html/lexer/stackoverflow_com_17_05_2022
5715146
ns/iter (± 1689
)5672744
ns/iter (± 1632
)1.01
html/parser/parser_document/css_2021_spec
25595004
ns/iter (± 72645
)26854188
ns/iter (± 280735
)0.95
html/parser/parser_document/github_com_17_05_2022
8718888
ns/iter (± 15080
)8775936
ns/iter (± 8302
)0.99
html/parser/parser_document/stackoverflow_com_17_05_2022
7675130
ns/iter (± 4690
)7732183
ns/iter (± 9195
)0.99
html/parser/parser_document_fragment/css_2021_spec
26020159
ns/iter (± 143229
)26700764
ns/iter (± 387465
)0.97
html/parser/parser_document_fragment/github_com_17_05_2022
8712157
ns/iter (± 12282
)8819326
ns/iter (± 18052
)0.99
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7681201
ns/iter (± 3961
)7764041
ns/iter (± 9053
)0.99
This comment was automatically generated by workflow using github-action-benchmark.