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 stack overflow due to deeply nested if (#6910)
**Related issue:** - Closes #6813.
- Loading branch information
Showing
8 changed files
with
3,243 additions
and
15 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
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
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,115 @@ | ||
#![allow(clippy::needless_update)] | ||
|
||
use std::{ | ||
fs::File, | ||
io::Read, | ||
path::{Path, PathBuf}, | ||
}; | ||
|
||
use swc_common::{comments::SingleThreadedComments, FileName}; | ||
use swc_ecma_ast::*; | ||
use swc_ecma_parser::{lexer::Lexer, EsConfig, PResult, Parser, StringInput, Syntax}; | ||
use swc_ecma_visit::FoldWith; | ||
use testing::StdErr; | ||
|
||
use crate::common::Normalizer; | ||
|
||
#[path = "common/mod.rs"] | ||
mod common; | ||
|
||
#[testing::fixture("tests/js/**/*.js")] | ||
fn spec(file: PathBuf) { | ||
let output = file.parent().unwrap().join(format!( | ||
"{}.json", | ||
file.file_name().unwrap().to_string_lossy() | ||
)); | ||
run_spec(&file, &output); | ||
} | ||
|
||
fn run_spec(file: &Path, output_json: &Path) { | ||
let file_name = file | ||
.display() | ||
.to_string() | ||
.replace("\\\\", "/") | ||
.replace('\\', "/"); | ||
|
||
{ | ||
// Drop to reduce memory usage. | ||
// | ||
// Because the test suite contains lots of test cases, it results in oom in | ||
// github actions. | ||
let input = { | ||
let mut buf = String::new(); | ||
File::open(file).unwrap().read_to_string(&mut buf).unwrap(); | ||
buf | ||
}; | ||
|
||
eprintln!( | ||
"\n\n========== Running reference test {}\nSource:\n{}\n", | ||
file_name, input | ||
); | ||
} | ||
|
||
with_parser(false, file, false, |p, _| { | ||
let program = p.parse_program()?.fold_with(&mut Normalizer { | ||
drop_span: false, | ||
is_test262: false, | ||
}); | ||
|
||
let json = | ||
serde_json::to_string_pretty(&program).expect("failed to serialize module as json"); | ||
|
||
if StdErr::from(json).compare_to_file(output_json).is_err() { | ||
panic!() | ||
} | ||
|
||
Ok(()) | ||
}) | ||
.map_err(|_| ()) | ||
.unwrap(); | ||
} | ||
|
||
fn with_parser<F, Ret>( | ||
treat_error_as_bug: bool, | ||
file_name: &Path, | ||
shift: bool, | ||
f: F, | ||
) -> Result<Ret, StdErr> | ||
where | ||
F: FnOnce(&mut Parser<Lexer<StringInput<'_>>>, &SingleThreadedComments) -> PResult<Ret>, | ||
{ | ||
::testing::run_test(treat_error_as_bug, |cm, handler| { | ||
if shift { | ||
cm.new_source_file(FileName::Anon, "".into()); | ||
} | ||
|
||
let comments = SingleThreadedComments::default(); | ||
|
||
let fm = cm | ||
.load_file(file_name) | ||
.unwrap_or_else(|e| panic!("failed to load {}: {}", file_name.display(), e)); | ||
|
||
let lexer = Lexer::new( | ||
Syntax::Es(EsConfig { | ||
..Default::default() | ||
}), | ||
EsVersion::Es2015, | ||
(&*fm).into(), | ||
Some(&comments), | ||
); | ||
|
||
let mut p = Parser::new_from(lexer); | ||
|
||
let res = f(&mut p, &comments).map_err(|e| e.into_diagnostic(handler).emit()); | ||
|
||
for err in p.take_errors() { | ||
err.into_diagnostic(handler).emit(); | ||
} | ||
|
||
if handler.has_errors() { | ||
return Err(()); | ||
} | ||
|
||
res | ||
}) | ||
} |
Oops, something went wrong.
f36d945
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
309287
ns/iter (± 14164
)306205
ns/iter (± 13240
)1.01
es/full/minify/libraries/antd
1633625255
ns/iter (± 20685790
)1851189187
ns/iter (± 52025113
)0.88
es/full/minify/libraries/d3
302913635
ns/iter (± 7466048
)328269861
ns/iter (± 9664775
)0.92
es/full/minify/libraries/echarts
1236800329
ns/iter (± 13382637
)1419903093
ns/iter (± 5755748
)0.87
es/full/minify/libraries/jquery
90859245
ns/iter (± 1778756
)98667600
ns/iter (± 2103815
)0.92
es/full/minify/libraries/lodash
108242819
ns/iter (± 1287929
)110108711
ns/iter (± 1523604
)0.98
es/full/minify/libraries/moment
52919020
ns/iter (± 476780
)52982046
ns/iter (± 212560
)1.00
es/full/minify/libraries/react
19144235
ns/iter (± 200164
)19167828
ns/iter (± 96784
)1.00
es/full/minify/libraries/terser
248949955
ns/iter (± 3222789
)253073486
ns/iter (± 2563445
)0.98
es/full/minify/libraries/three
452150873
ns/iter (± 6047803
)453834051
ns/iter (± 10048786
)1.00
es/full/minify/libraries/typescript
3055396594
ns/iter (± 22007704
)3221562487
ns/iter (± 25952346
)0.95
es/full/minify/libraries/victory
694949976
ns/iter (± 14623366
)687251912
ns/iter (± 14295073
)1.01
es/full/minify/libraries/vue
132624240
ns/iter (± 1542048
)132544354
ns/iter (± 1147599
)1.00
es/full/codegen/es3
26526
ns/iter (± 48
)26643
ns/iter (± 43
)1.00
es/full/codegen/es5
26603
ns/iter (± 50
)26657
ns/iter (± 42
)1.00
es/full/codegen/es2015
26622
ns/iter (± 60
)26645
ns/iter (± 28
)1.00
es/full/codegen/es2016
26594
ns/iter (± 69
)26635
ns/iter (± 35
)1.00
es/full/codegen/es2017
26619
ns/iter (± 37
)26605
ns/iter (± 38
)1.00
es/full/codegen/es2018
26540
ns/iter (± 50
)26603
ns/iter (± 49
)1.00
es/full/codegen/es2019
26562
ns/iter (± 44
)26675
ns/iter (± 66
)1.00
es/full/codegen/es2020
26573
ns/iter (± 53
)26661
ns/iter (± 66
)1.00
es/full/all/es3
171159986
ns/iter (± 2291987
)161240977
ns/iter (± 4040625
)1.06
es/full/all/es5
163327762
ns/iter (± 3826570
)159861467
ns/iter (± 4449148
)1.02
es/full/all/es2015
126065368
ns/iter (± 2417458
)120825507
ns/iter (± 810141
)1.04
es/full/all/es2016
124142509
ns/iter (± 1999067
)120577941
ns/iter (± 853732
)1.03
es/full/all/es2017
123411316
ns/iter (± 1891706
)119812569
ns/iter (± 1328621
)1.03
es/full/all/es2018
120938746
ns/iter (± 1702248
)117909596
ns/iter (± 938300
)1.03
es/full/all/es2019
119366006
ns/iter (± 765884
)117353316
ns/iter (± 627040
)1.02
es/full/all/es2020
115078881
ns/iter (± 1112274
)113141290
ns/iter (± 736950
)1.02
es/full/parser
541613
ns/iter (± 8356
)526439
ns/iter (± 8162
)1.03
es/full/base/fixer
22046
ns/iter (± 16
)22095
ns/iter (± 41
)1.00
es/full/base/resolver_and_hygiene
81195
ns/iter (± 134
)81351
ns/iter (± 87
)1.00
serialization of ast node
124
ns/iter (± 0
)123
ns/iter (± 0
)1.01
serialization of serde
129
ns/iter (± 0
)129
ns/iter (± 0
)1
css/minify/libraries/bootstrap
27958224
ns/iter (± 50326
)27924750
ns/iter (± 66149
)1.00
css/visitor/compare/clone
2068976
ns/iter (± 15859
)2080377
ns/iter (± 21109
)0.99
css/visitor/compare/visit_mut_span
2297159
ns/iter (± 3952
)2266544
ns/iter (± 7461
)1.01
css/visitor/compare/visit_mut_span_panic
2321385
ns/iter (± 2352
)2313780
ns/iter (± 7794
)1.00
css/visitor/compare/fold_span
3021487
ns/iter (± 18601
)3014960
ns/iter (± 18826
)1.00
css/visitor/compare/fold_span_panic
3206674
ns/iter (± 14307
)3165992
ns/iter (± 22470
)1.01
css/lexer/bootstrap_5_1_3
5189546
ns/iter (± 40385
)5231548
ns/iter (± 7635
)0.99
css/lexer/foundation_6_7_4
4373376
ns/iter (± 6980
)4368582
ns/iter (± 5184
)1.00
css/lexer/tailwind_3_1_1
830608
ns/iter (± 825
)829956
ns/iter (± 1307
)1.00
css/parser/bootstrap_5_1_3
21742829
ns/iter (± 35847
)21718360
ns/iter (± 48126
)1.00
css/parser/foundation_6_7_4
17400534
ns/iter (± 59488
)17392134
ns/iter (± 25170
)1.00
css/parser/tailwind_3_1_1
3312946
ns/iter (± 4267
)3323127
ns/iter (± 2070
)1.00
es/codegen/colors
331433
ns/iter (± 186926
)320811
ns/iter (± 180881
)1.03
es/codegen/large
1234959
ns/iter (± 637073
)1220442
ns/iter (± 630473
)1.01
es/codegen/with-parser/colors
48287
ns/iter (± 324
)48279
ns/iter (± 392
)1.00
es/codegen/with-parser/large
535761
ns/iter (± 1047
)535377
ns/iter (± 711
)1.00
es/minify/libraries/antd
1419921632
ns/iter (± 22195034
)1483925005
ns/iter (± 10559095
)0.96
es/minify/libraries/d3
256784908
ns/iter (± 5977720
)253390652
ns/iter (± 3163082
)1.01
es/minify/libraries/echarts
1093302308
ns/iter (± 8085611
)1127947210
ns/iter (± 23096477
)0.97
es/minify/libraries/jquery
78895323
ns/iter (± 613188
)78465330
ns/iter (± 1795357
)1.01
es/minify/libraries/lodash
96308086
ns/iter (± 1406139
)96356721
ns/iter (± 889877
)1.00
es/minify/libraries/moment
46245416
ns/iter (± 410348
)45877396
ns/iter (± 182572
)1.01
es/minify/libraries/react
16988764
ns/iter (± 101177
)17007461
ns/iter (± 129470
)1.00
es/minify/libraries/terser
214451846
ns/iter (± 2000340
)212573438
ns/iter (± 3333553
)1.01
es/minify/libraries/three
371656580
ns/iter (± 3764288
)405191292
ns/iter (± 21610579
)0.92
es/minify/libraries/typescript
2627463210
ns/iter (± 14763027
)2792579868
ns/iter (± 20392246
)0.94
es/minify/libraries/victory
595422589
ns/iter (± 9473030
)607815219
ns/iter (± 17000875
)0.98
es/minify/libraries/vue
116765374
ns/iter (± 669943
)119361845
ns/iter (± 1965138
)0.98
es/visitor/compare/clone
2398270
ns/iter (± 22562
)2395009
ns/iter (± 12019
)1.00
es/visitor/compare/visit_mut_span
2793768
ns/iter (± 3460
)2791655
ns/iter (± 5854
)1.00
es/visitor/compare/visit_mut_span_panic
2827465
ns/iter (± 4604
)2824008
ns/iter (± 7966
)1.00
es/visitor/compare/fold_span
3905798
ns/iter (± 9132
)3957316
ns/iter (± 6904
)0.99
es/visitor/compare/fold_span_panic
4073640
ns/iter (± 48245
)4108542
ns/iter (± 10792
)0.99
es/lexer/colors
17250
ns/iter (± 16
)17367
ns/iter (± 22
)0.99
es/lexer/angular
8207086
ns/iter (± 8355
)8257928
ns/iter (± 3436
)0.99
es/lexer/backbone
1072740
ns/iter (± 753
)1080457
ns/iter (± 453
)0.99
es/lexer/jquery
5946749
ns/iter (± 4121
)5978686
ns/iter (± 3042
)0.99
es/lexer/jquery mobile
9146349
ns/iter (± 7458
)9202340
ns/iter (± 12417
)0.99
es/lexer/mootools
4645345
ns/iter (± 3159
)4684544
ns/iter (± 16804
)0.99
es/lexer/underscore
895531
ns/iter (± 713
)900329
ns/iter (± 896
)0.99
es/lexer/three
27615252
ns/iter (± 18022
)27884558
ns/iter (± 29980
)0.99
es/lexer/yui
5035997
ns/iter (± 3111
)5054203
ns/iter (± 2742
)1.00
es/parser/colors
31050
ns/iter (± 158
)30724
ns/iter (± 220
)1.01
es/parser/angular
15534811
ns/iter (± 91838
)15878885
ns/iter (± 152803
)0.98
es/parser/backbone
2314304
ns/iter (± 13855
)2315848
ns/iter (± 13307
)1.00
es/parser/jquery
12523187
ns/iter (± 76020
)12413800
ns/iter (± 59325
)1.01
es/parser/jquery mobile
19963871
ns/iter (± 184042
)19673457
ns/iter (± 145504
)1.01
es/parser/mootools
9611333
ns/iter (± 25103
)9521221
ns/iter (± 26499
)1.01
es/parser/underscore
1977712
ns/iter (± 12683
)1959601
ns/iter (± 18638
)1.01
es/parser/three
58968656
ns/iter (± 823444
)57510556
ns/iter (± 531072
)1.03
es/parser/yui
9594936
ns/iter (± 52603
)9691207
ns/iter (± 135370
)0.99
es/preset-env/usage/builtin_type
144332
ns/iter (± 33819
)142876
ns/iter (± 33464
)1.01
es/preset-env/usage/property
21560
ns/iter (± 91
)21117
ns/iter (± 59
)1.02
es/resolver/typescript
110342706
ns/iter (± 1751028
)121827108
ns/iter (± 4889984
)0.91
es/fixer/typescript
84771889
ns/iter (± 1660213
)96738807
ns/iter (± 7479557
)0.88
es/hygiene/typescript
178688886
ns/iter (± 1124922
)200327275
ns/iter (± 1458717
)0.89
es/resolver_with_hygiene/typescript
308221829
ns/iter (± 1722096
)334983385
ns/iter (± 1640907
)0.92
es/visitor/base-perf/module_clone
76233
ns/iter (± 1649
)74907
ns/iter (± 1179
)1.02
es/visitor/base-perf/fold_empty
86602
ns/iter (± 1499
)85478
ns/iter (± 1454
)1.01
es/visitor/base-perf/fold_noop_impl_all
85770
ns/iter (± 1040
)85429
ns/iter (± 1757
)1.00
es/visitor/base-perf/fold_noop_impl_vec
86345
ns/iter (± 671
)85510
ns/iter (± 1847
)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
60
ns/iter (± 0
)59
ns/iter (± 0
)1.02
es/visitor/base-perf/boxing_boxed
103
ns/iter (± 0
)105
ns/iter (± 0
)0.98
es/visitor/base-perf/boxing_unboxed
102
ns/iter (± 0
)104
ns/iter (± 0
)0.98
es/visitor/base-perf/visit_contains_this
3418
ns/iter (± 54
)3430
ns/iter (± 60
)1.00
es/base/parallel/resolver/typescript
6086070536
ns/iter (± 509601635
)5957359693
ns/iter (± 564846972
)1.02
es/base/parallel/hygiene/typescript
2143588855
ns/iter (± 20807915
)2378353991
ns/iter (± 23512752
)0.90
misc/visitors/time-complexity/time 5
96
ns/iter (± 2
)101
ns/iter (± 0
)0.95
misc/visitors/time-complexity/time 10
318
ns/iter (± 0
)313
ns/iter (± 2
)1.02
misc/visitors/time-complexity/time 15
644
ns/iter (± 4
)674
ns/iter (± 30
)0.96
misc/visitors/time-complexity/time 20
1206
ns/iter (± 39
)1217
ns/iter (± 11
)0.99
misc/visitors/time-complexity/time 40
6104
ns/iter (± 12
)6570
ns/iter (± 1
)0.93
misc/visitors/time-complexity/time 60
15582
ns/iter (± 108
)17021
ns/iter (± 13
)0.92
es/full-target/es2016
188645
ns/iter (± 597
)188451
ns/iter (± 387
)1.00
es/full-target/es2017
183495
ns/iter (± 538
)183895
ns/iter (± 260
)1.00
es/full-target/es2018
172800
ns/iter (± 734
)173080
ns/iter (± 574
)1.00
es2020_nullish_coalescing
66966
ns/iter (± 855
)66950
ns/iter (± 106
)1.00
es2020_optional_chaining
97160
ns/iter (± 5680
)95732
ns/iter (± 227
)1.01
es2022_class_properties
93734
ns/iter (± 156
)93741
ns/iter (± 177
)1.00
es2018_object_rest_spread
71251
ns/iter (± 141
)71101
ns/iter (± 86
)1.00
es2019_optional_catch_binding
61664
ns/iter (± 139
)60758
ns/iter (± 93
)1.01
es2017_async_to_generator
61752
ns/iter (± 93
)61658
ns/iter (± 94
)1.00
es2016_exponentiation
64865
ns/iter (± 116
)64559
ns/iter (± 187
)1.00
es2015_arrow
70625
ns/iter (± 432
)70196
ns/iter (± 190
)1.01
es2015_block_scoped_fn
67437
ns/iter (± 257
)66023
ns/iter (± 158
)1.02
es2015_block_scoping
153920
ns/iter (± 8283
)150384
ns/iter (± 6307
)1.02
es2015_classes
116493
ns/iter (± 401
)116658
ns/iter (± 468
)1.00
es2015_computed_props
61023
ns/iter (± 99
)61092
ns/iter (± 143
)1.00
es2015_destructuring
114849
ns/iter (± 208
)116656
ns/iter (± 337
)0.98
es2015_duplicate_keys
63470
ns/iter (± 99
)63251
ns/iter (± 70
)1.00
es2015_parameters
79323
ns/iter (± 163
)79424
ns/iter (± 165
)1.00
es2015_fn_name
66444
ns/iter (± 338
)67057
ns/iter (± 698
)0.99
es2015_for_of
64182
ns/iter (± 83
)64060
ns/iter (± 85
)1.00
es2015_instanceof
63225
ns/iter (± 67
)63001
ns/iter (± 86
)1.00
es2015_shorthand_property
61090
ns/iter (± 96
)61103
ns/iter (± 103
)1.00
es2015_spread
61017
ns/iter (± 156
)61165
ns/iter (± 118
)1.00
es2015_sticky_regex
62333
ns/iter (± 70
)62108
ns/iter (± 68
)1.00
es2015_typeof_symbol
62127
ns/iter (± 155
)61794
ns/iter (± 150
)1.01
es/transform/baseline/base
51897
ns/iter (± 77
)51557
ns/iter (± 90
)1.01
es/transform/baseline/common_reserved_word
62577
ns/iter (± 58
)62370
ns/iter (± 108
)1.00
es/transform/baseline/common_typescript
142093
ns/iter (± 3505
)151578
ns/iter (± 8989
)0.94
es/target/es3
170508
ns/iter (± 194
)169927
ns/iter (± 264
)1.00
es/target/es2015
628419
ns/iter (± 1420
)624277
ns/iter (± 1020
)1.01
es/target/es2016
64998
ns/iter (± 135
)64731
ns/iter (± 113
)1.00
es/target/es2017
61631
ns/iter (± 155
)61828
ns/iter (± 51
)1.00
es/target/es2018
81259
ns/iter (± 136
)81305
ns/iter (± 194
)1.00
es/target/es2020
133250
ns/iter (± 284
)132879
ns/iter (± 166
)1.00
babelify-only
670894
ns/iter (± 940
)679808
ns/iter (± 1839
)0.99
parse_and_babelify_angular
42929418
ns/iter (± 753322
)47320030
ns/iter (± 736231
)0.91
parse_and_babelify_backbone
5420255
ns/iter (± 68487
)5559263
ns/iter (± 280908
)0.97
parse_and_babelify_jquery
31702368
ns/iter (± 427309
)33518224
ns/iter (± 580194
)0.95
parse_and_babelify_jquery_mobile
54270122
ns/iter (± 721923
)57362256
ns/iter (± 969822
)0.95
parse_and_babelify_mootools
33027633
ns/iter (± 354129
)34842550
ns/iter (± 573625
)0.95
parse_and_babelify_underscore
4390351
ns/iter (± 34815
)4382496
ns/iter (± 19249
)1.00
parse_and_babelify_yui
31751500
ns/iter (± 320788
)35020125
ns/iter (± 759045
)0.91
html/minify/document/css_spec
42204598
ns/iter (± 250063
)42247743
ns/iter (± 244100
)1.00
html/minify/document/github
17567596
ns/iter (± 20729
)17573241
ns/iter (± 78316
)1.00
html/minify/document/stackoverflow
15693481
ns/iter (± 46115
)15813973
ns/iter (± 29949
)0.99
html/minify/document_fragment/css_spec
40168130
ns/iter (± 239549
)40272308
ns/iter (± 321520
)1.00
html/minify/document_fragment/github
16864403
ns/iter (± 25457
)16807605
ns/iter (± 56120
)1.00
html/minify/document_fragment/stackoverflow
15277392
ns/iter (± 26325
)15224902
ns/iter (± 34033
)1.00
html/document/visitor/compare/clone
339035
ns/iter (± 2639
)339460
ns/iter (± 1692
)1.00
html/document/visitor/compare/visit_mut_span
366048
ns/iter (± 1762
)366934
ns/iter (± 1880
)1.00
html/document/visitor/compare/visit_mut_span_panic
372585
ns/iter (± 1994
)371518
ns/iter (± 2972
)1.00
html/document/visitor/compare/fold_span
403708
ns/iter (± 2050
)407966
ns/iter (± 1210
)0.99
html/document/visitor/compare/fold_span_panic
459133
ns/iter (± 1231
)464997
ns/iter (± 2173
)0.99
html/document_fragment/visitor/compare/clone
337546
ns/iter (± 2175
)336166
ns/iter (± 1967
)1.00
html/document_fragment/visitor/compare/visit_mut_span
364233
ns/iter (± 1660
)367298
ns/iter (± 2061
)0.99
html/document_fragment/visitor/compare/visit_mut_span_panic
373717
ns/iter (± 1604
)373243
ns/iter (± 2383
)1.00
html/document_fragment/visitor/compare/fold_span
407513
ns/iter (± 2102
)406660
ns/iter (± 2815
)1.00
html/document_fragment/visitor/compare/fold_span_panic
458640
ns/iter (± 2544
)461659
ns/iter (± 995
)0.99
html/lexer/css_2021_spec
15910035
ns/iter (± 80651
)15536354
ns/iter (± 99168
)1.02
html/lexer/github_com_17_05_2022
6181203
ns/iter (± 5432
)5998781
ns/iter (± 3135
)1.03
html/lexer/stackoverflow_com_17_05_2022
5733751
ns/iter (± 5595
)5621296
ns/iter (± 3192
)1.02
html/parser/parser_document/css_2021_spec
25610923
ns/iter (± 255948
)25648559
ns/iter (± 283619
)1.00
html/parser/parser_document/github_com_17_05_2022
8756767
ns/iter (± 8749
)8748588
ns/iter (± 8217
)1.00
html/parser/parser_document/stackoverflow_com_17_05_2022
7706281
ns/iter (± 4245
)7702667
ns/iter (± 3370
)1.00
html/parser/parser_document_fragment/css_2021_spec
25501860
ns/iter (± 138761
)25739198
ns/iter (± 114796
)0.99
html/parser/parser_document_fragment/github_com_17_05_2022
8745584
ns/iter (± 12969
)8771232
ns/iter (± 8936
)1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022
7721689
ns/iter (± 11170
)7726062
ns/iter (± 8493
)1.00
This comment was automatically generated by workflow using github-action-benchmark.