Skip to content

Commit

Permalink
fix(es): Allow any kind of input source maps if it's enabled (#7002)
Browse files Browse the repository at this point in the history
  • Loading branch information
limerickgds committed Mar 6, 2023
1 parent f32be0e commit da5367b
Show file tree
Hide file tree
Showing 4 changed files with 129 additions and 79 deletions.
174 changes: 95 additions & 79 deletions crates/swc/src/lib.rs
Expand Up @@ -269,99 +269,115 @@ impl Compiler {
self.run(|| -> Result<_, Error> {
let name = &fm.name;

// Load original source map
match input_src_map {
InputSourceMap::Bool(false) => Ok(None),
InputSourceMap::Bool(true) => {
let s = "sourceMappingURL=";
let idx = fm.src.rfind(s);
let src_mapping_url = idx.map(|idx| &fm.src[idx + s.len()..]);

// Load original source map if possible
match &name {
FileName::Real(filename) => {
let dir = match filename.parent() {
let read_inline_sourcemap =
|data_url: Option<&str>| -> Result<Option<sourcemap::SourceMap>, Error> {
match data_url {
Some(data_url) => {
let url = Url::parse(data_url).with_context(|| {
format!("failed to parse inline source map url\n{}", data_url)
})?;

let idx = match url.path().find("base64,") {
Some(v) => v,
None => {
bail!("unexpected: root directory is given as a input file")
}
};

let path = match src_mapping_url {
Some(src_mapping_url) => {
dir.join(src_mapping_url).display().to_string()
}
None => {
format!("{}.map", dir.join(filename).display())
bail!(
"failed to parse inline source map: not base64: {:?}",
url
)
}
};

let file = File::open(&path)
.or_else(|err| {
// Old behavior. This check would prevent regressions.
let f = format!("{}.map", filename.display());
let content = url.path()[idx + "base64,".len()..].trim();

match File::open(&f) {
Ok(v) => Ok(v),
Err(_) => Err(err),
}
})
.context("failed to open input source map file");

let file = if !is_default {
file?
} else {
match file {
Ok(v) => v,
Err(_) => return Ok(None),
}
};
let res = base64::decode_config(
content.as_bytes(),
base64::Config::new(base64::CharacterSet::Standard, true),
)
.context("failed to decode base64-encoded source map")?;

Ok(Some(sourcemap::SourceMap::from_reader(file).with_context(
|| format!("failed to read input source map from file at {}", path),
Ok(Some(sourcemap::SourceMap::from_slice(&res).context(
"failed to read input source map from inlined base64 encoded \
string",
)?))
}
_ => {
tracing::error!("Failed to load source map for non-file input");
Ok(None)
None => {
bail!("failed to parse inline source map: `sourceMappingURL` not found")
}
}
}
InputSourceMap::Str(ref s) => {
if s == "inline" {
const NEEDLE: &str = "sourceMappingURL=";
// Load inline source map by simple string
// operations
let idx = fm.src.rfind(NEEDLE);
let idx = match idx {
None => bail!(
"failed to parse inline source map: `sourceMappingURL` not found"
),
Some(v) => v,
};
let data_url = fm.src[idx + NEEDLE.len()..].trim();
let url = Url::parse(data_url).with_context(|| {
format!("failed to parse inline source map url\n{}", data_url)
})?;

let idx = match url.path().find("base64,") {
Some(v) => v,
None => {
bail!("failed to parse inline source map: not base64: {:?}", url)
}
};
};

let content = url.path()[idx + "base64,".len()..].trim();
let read_sourcemap = || -> Result<Option<sourcemap::SourceMap>, Error> {
let s = "sourceMappingURL=";
let idx = fm.src.rfind(s);
let data_url = idx.map(|idx| &fm.src[idx + s.len()..]);

match read_inline_sourcemap(data_url) {
Ok(r) => Ok(r),
Err(_) => {
// Load original source map if possible
match &name {
FileName::Real(filename) => {
let dir = match filename.parent() {
Some(v) => v,
None => {
bail!("unexpected: root directory is given as a input file")
}
};

let res = base64::decode_config(
content.as_bytes(),
base64::Config::new(base64::CharacterSet::Standard, true),
)
.context("failed to decode base64-encoded source map")?;
let path = match data_url {
Some(data_url) => dir.join(data_url).display().to_string(),
None => {
format!("{}.map", dir.join(filename).display())
}
};

let file = File::open(&path)
.or_else(|err| {
// Old behavior. This check would prevent
// regressions.
let f = format!("{}.map", filename.display());

match File::open(&f) {
Ok(v) => Ok(v),
Err(_) => Err(err),
}
})
.context("failed to open input source map file");

let file = if !is_default {
file?
} else {
match file {
Ok(v) => v,
Err(_) => return Ok(None),
}
};

Ok(Some(sourcemap::SourceMap::from_reader(file).with_context(
|| {
format!(
"failed to read input source map from file at {}",
path
)
},
)?))
}
_ => {
tracing::error!("Failed to load source map for non-file input");
Ok(None)
}
}
}
}
};

Ok(Some(sourcemap::SourceMap::from_slice(&res).context(
"failed to read input source map from inlined base64 encoded string",
)?))
// Load original source map
match input_src_map {
InputSourceMap::Bool(false) => Ok(None),
InputSourceMap::Bool(true) => read_sourcemap(),
InputSourceMap::Str(ref s) => {
if s == "inline" {
read_sourcemap()
} else {
// Load source map passed by user
Ok(Some(
Expand Down
5 changes: 5 additions & 0 deletions crates/swc/tests/source_map.rs
Expand Up @@ -69,6 +69,11 @@ fn file(f: &str, config: Config) -> Result<(), StdErr> {
})
}

#[test]
fn case_inline() {
inline("tests/srcmap/case-inline/index.js");
}

#[test]
fn issue_622() {
file("tests/srcmap/issue-622/index.js", Default::default()).unwrap();
Expand Down
3 changes: 3 additions & 0 deletions crates/swc/tests/srcmap/case-inline/.swcrc
@@ -0,0 +1,3 @@
{
"inputSourceMap": true,
}
26 changes: 26 additions & 0 deletions crates/swc/tests/srcmap/case-inline/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 comment on commit da5367b

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Benchmark suite Current: da5367b Previous: 3cb03d5 Ratio
es/full/bugs-1 304764 ns/iter (± 8673) 302642 ns/iter (± 10705) 1.01
es/full/minify/libraries/antd 1764128304 ns/iter (± 20367966) 1612799971 ns/iter (± 38232592) 1.09
es/full/minify/libraries/d3 312914535 ns/iter (± 4735409) 294701273 ns/iter (± 10371328) 1.06
es/full/minify/libraries/echarts 1337036225 ns/iter (± 8859751) 1220544598 ns/iter (± 10238645) 1.10
es/full/minify/libraries/jquery 93420411 ns/iter (± 493557) 89035530 ns/iter (± 759573) 1.05
es/full/minify/libraries/lodash 108805955 ns/iter (± 633047) 103569973 ns/iter (± 1221114) 1.05
es/full/minify/libraries/moment 54160814 ns/iter (± 508419) 51862134 ns/iter (± 575722) 1.04
es/full/minify/libraries/react 19495262 ns/iter (± 77662) 18988006 ns/iter (± 209149) 1.03
es/full/minify/libraries/terser 258519581 ns/iter (± 2782404) 243960118 ns/iter (± 3097761) 1.06
es/full/minify/libraries/three 468796930 ns/iter (± 4173465) 432753415 ns/iter (± 12686145) 1.08
es/full/minify/libraries/typescript 3301969573 ns/iter (± 17432502) 3099021986 ns/iter (± 18706285) 1.07
es/full/minify/libraries/victory 716758419 ns/iter (± 14649157) 636729613 ns/iter (± 16207071) 1.13
es/full/minify/libraries/vue 134212762 ns/iter (± 1564905) 128045185 ns/iter (± 1961210) 1.05
es/full/codegen/es3 26410 ns/iter (± 46) 26061 ns/iter (± 710) 1.01
es/full/codegen/es5 26397 ns/iter (± 65) 26150 ns/iter (± 210) 1.01
es/full/codegen/es2015 26432 ns/iter (± 30) 25708 ns/iter (± 258) 1.03
es/full/codegen/es2016 26427 ns/iter (± 60) 25664 ns/iter (± 300) 1.03
es/full/codegen/es2017 26428 ns/iter (± 80) 25360 ns/iter (± 156) 1.04
es/full/codegen/es2018 26437 ns/iter (± 39) 25411 ns/iter (± 161) 1.04
es/full/codegen/es2019 26383 ns/iter (± 51) 25344 ns/iter (± 215) 1.04
es/full/codegen/es2020 26433 ns/iter (± 36) 25491 ns/iter (± 185) 1.04
es/full/all/es3 173078665 ns/iter (± 2966467) 172924970 ns/iter (± 2709758) 1.00
es/full/all/es5 163804297 ns/iter (± 2590036) 165310334 ns/iter (± 2704952) 0.99
es/full/all/es2015 124915668 ns/iter (± 1898823) 122852181 ns/iter (± 2305702) 1.02
es/full/all/es2016 125436822 ns/iter (± 1897410) 122113708 ns/iter (± 838468) 1.03
es/full/all/es2017 123115542 ns/iter (± 994049) 121577030 ns/iter (± 1604742) 1.01
es/full/all/es2018 120126481 ns/iter (± 628189) 119835432 ns/iter (± 1348138) 1.00
es/full/all/es2019 119709122 ns/iter (± 1060444) 118317330 ns/iter (± 1041532) 1.01
es/full/all/es2020 115154387 ns/iter (± 594479) 114526703 ns/iter (± 1343521) 1.01
es/full/parser 543039 ns/iter (± 9009) 514069 ns/iter (± 8499) 1.06
es/full/base/fixer 22152 ns/iter (± 82) 21098 ns/iter (± 137) 1.05
es/full/base/resolver_and_hygiene 81378 ns/iter (± 93) 79765 ns/iter (± 895) 1.02
serialization of ast node 145 ns/iter (± 0) 140 ns/iter (± 0) 1.04
serialization of serde 134 ns/iter (± 0) 130 ns/iter (± 1) 1.03
css/minify/libraries/bootstrap 28306476 ns/iter (± 189203) 27151666 ns/iter (± 394902) 1.04
css/visitor/compare/clone 2071544 ns/iter (± 7700) 2062705 ns/iter (± 23972) 1.00
css/visitor/compare/visit_mut_span 2253334 ns/iter (± 6787) 2195989 ns/iter (± 13398) 1.03
css/visitor/compare/visit_mut_span_panic 2316537 ns/iter (± 6208) 2239782 ns/iter (± 16684) 1.03
css/visitor/compare/fold_span 3033700 ns/iter (± 20369) 2979638 ns/iter (± 37605) 1.02
css/visitor/compare/fold_span_panic 3139766 ns/iter (± 20608) 3104331 ns/iter (± 23291) 1.01
css/lexer/bootstrap_5_1_3 5219993 ns/iter (± 3629) 5096235 ns/iter (± 43559) 1.02
css/lexer/foundation_6_7_4 4396322 ns/iter (± 6049) 4266591 ns/iter (± 14239) 1.03
css/lexer/tailwind_3_1_1 834781 ns/iter (± 474) 814996 ns/iter (± 7615) 1.02
css/parser/bootstrap_5_1_3 21875527 ns/iter (± 54950) 21407327 ns/iter (± 231436) 1.02
css/parser/foundation_6_7_4 17460567 ns/iter (± 69697) 16887347 ns/iter (± 113637) 1.03
css/parser/tailwind_3_1_1 3322910 ns/iter (± 2614) 3214902 ns/iter (± 33376) 1.03
es/codegen/colors 319452 ns/iter (± 179088) 336323 ns/iter (± 184164) 0.95
es/codegen/large 1225202 ns/iter (± 639120) 1186654 ns/iter (± 611595) 1.03
es/codegen/with-parser/colors 48183 ns/iter (± 362) 47451 ns/iter (± 489) 1.02
es/codegen/with-parser/large 525773 ns/iter (± 2060) 504458 ns/iter (± 5389) 1.04
es/minify/libraries/antd 1545757256 ns/iter (± 17858773) 1450035046 ns/iter (± 19205491) 1.07
es/minify/libraries/d3 273971206 ns/iter (± 4175394) 246101639 ns/iter (± 1896423) 1.11
es/minify/libraries/echarts 1161942659 ns/iter (± 10403345) 1043039253 ns/iter (± 14789632) 1.11
es/minify/libraries/jquery 80312961 ns/iter (± 642906) 77451592 ns/iter (± 727196) 1.04
es/minify/libraries/lodash 97434043 ns/iter (± 2894731) 93728905 ns/iter (± 1102613) 1.04
es/minify/libraries/moment 46736398 ns/iter (± 293083) 45190756 ns/iter (± 501699) 1.03
es/minify/libraries/react 17306932 ns/iter (± 116548) 16885591 ns/iter (± 86451) 1.02
es/minify/libraries/terser 220573212 ns/iter (± 2164111) 203439717 ns/iter (± 1563291) 1.08
es/minify/libraries/three 395700799 ns/iter (± 6984398) 353122752 ns/iter (± 6923578) 1.12
es/minify/libraries/typescript 2837442368 ns/iter (± 13800844) 2668263909 ns/iter (± 22285770) 1.06
es/minify/libraries/victory 614486075 ns/iter (± 9684823) 549458957 ns/iter (± 12877441) 1.12
es/minify/libraries/vue 120369395 ns/iter (± 1253504) 113398948 ns/iter (± 2064874) 1.06
es/visitor/compare/clone 2363544 ns/iter (± 18524) 2324261 ns/iter (± 39150) 1.02
es/visitor/compare/visit_mut_span 2805627 ns/iter (± 6105) 2723363 ns/iter (± 26413) 1.03
es/visitor/compare/visit_mut_span_panic 2853581 ns/iter (± 6661) 2741744 ns/iter (± 14222) 1.04
es/visitor/compare/fold_span 3966402 ns/iter (± 13364) 3796496 ns/iter (± 28809) 1.04
es/visitor/compare/fold_span_panic 4122547 ns/iter (± 29017) 3971380 ns/iter (± 20525) 1.04
es/lexer/colors 16351 ns/iter (± 116) 15862 ns/iter (± 155) 1.03
es/lexer/angular 7862458 ns/iter (± 8204) 7518250 ns/iter (± 61958) 1.05
es/lexer/backbone 1014441 ns/iter (± 842) 970188 ns/iter (± 6827) 1.05
es/lexer/jquery 5619484 ns/iter (± 4827) 5420626 ns/iter (± 24652) 1.04
es/lexer/jquery mobile 8660777 ns/iter (± 7136) 8263951 ns/iter (± 40034) 1.05
es/lexer/mootools 4444737 ns/iter (± 3949) 4239423 ns/iter (± 30481) 1.05
es/lexer/underscore 845803 ns/iter (± 627) 808763 ns/iter (± 7245) 1.05
es/lexer/three 26249287 ns/iter (± 24525) 25261882 ns/iter (± 238342) 1.04
es/lexer/yui 4833112 ns/iter (± 4044) 4646566 ns/iter (± 22655) 1.04
es/parser/colors 30402 ns/iter (± 78) 29441 ns/iter (± 502) 1.03
es/parser/angular 15958669 ns/iter (± 170673) 14999639 ns/iter (± 198798) 1.06
es/parser/backbone 2312591 ns/iter (± 16219) 2197296 ns/iter (± 20797) 1.05
es/parser/jquery 12487510 ns/iter (± 134329) 11793229 ns/iter (± 88452) 1.06
es/parser/jquery mobile 19934913 ns/iter (± 421330) 18388686 ns/iter (± 214116) 1.08
es/parser/mootools 9501988 ns/iter (± 22198) 9176881 ns/iter (± 61630) 1.04
es/parser/underscore 1953878 ns/iter (± 12916) 1867640 ns/iter (± 19513) 1.05
es/parser/three 58980068 ns/iter (± 359489) 53417744 ns/iter (± 883432) 1.10
es/parser/yui 9579076 ns/iter (± 75130) 9141837 ns/iter (± 78126) 1.05
es/preset-env/usage/builtin_type 143731 ns/iter (± 32569) 138451 ns/iter (± 31046) 1.04
es/preset-env/usage/property 21327 ns/iter (± 72) 20392 ns/iter (± 142) 1.05
es/resolver/typescript 124900516 ns/iter (± 1473000) 120586167 ns/iter (± 3683701) 1.04
es/fixer/typescript 98090664 ns/iter (± 754358) 93270408 ns/iter (± 6512871) 1.05
es/hygiene/typescript 213517510 ns/iter (± 2122296) 202236549 ns/iter (± 2228485) 1.06
es/resolver_with_hygiene/typescript 351302048 ns/iter (± 2110634) 332638107 ns/iter (± 2957426) 1.06
es/visitor/base-perf/module_clone 77751 ns/iter (± 1602) 73725 ns/iter (± 1247) 1.05
es/visitor/base-perf/fold_empty 87321 ns/iter (± 1423) 82890 ns/iter (± 1643) 1.05
es/visitor/base-perf/fold_noop_impl_all 86940 ns/iter (± 1056) 83383 ns/iter (± 1468) 1.04
es/visitor/base-perf/fold_noop_impl_vec 86641 ns/iter (± 1368) 84387 ns/iter (± 1676) 1.03
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 54 ns/iter (± 0) 1.04
es/visitor/base-perf/boxing_unboxed_clone 59 ns/iter (± 0) 57 ns/iter (± 0) 1.04
es/visitor/base-perf/boxing_boxed 105 ns/iter (± 1) 102 ns/iter (± 0) 1.03
es/visitor/base-perf/boxing_unboxed 104 ns/iter (± 0) 100 ns/iter (± 0) 1.04
es/visitor/base-perf/visit_contains_this 3559 ns/iter (± 75) 3484 ns/iter (± 55) 1.02
es/base/parallel/resolver/typescript 5612768424 ns/iter (± 543329997) 6198225863 ns/iter (± 466766715) 0.91
es/base/parallel/hygiene/typescript 2426129918 ns/iter (± 20503266) 2366510470 ns/iter (± 20646089) 1.03
misc/visitors/time-complexity/time 5 102 ns/iter (± 0) 101 ns/iter (± 1) 1.01
misc/visitors/time-complexity/time 10 332 ns/iter (± 0) 313 ns/iter (± 3) 1.06
misc/visitors/time-complexity/time 15 664 ns/iter (± 19) 636 ns/iter (± 5) 1.04
misc/visitors/time-complexity/time 20 1218 ns/iter (± 5) 1169 ns/iter (± 6) 1.04
misc/visitors/time-complexity/time 40 6621 ns/iter (± 21) 6471 ns/iter (± 41) 1.02
misc/visitors/time-complexity/time 60 16989 ns/iter (± 17) 16718 ns/iter (± 153) 1.02
es/full-target/es2016 187158 ns/iter (± 508) 182226 ns/iter (± 1271) 1.03
es/full-target/es2017 182234 ns/iter (± 384) 175634 ns/iter (± 1513) 1.04
es/full-target/es2018 171447 ns/iter (± 1552) 165791 ns/iter (± 1960) 1.03
es2020_nullish_coalescing 66921 ns/iter (± 134) 64770 ns/iter (± 989) 1.03
es2020_optional_chaining 95862 ns/iter (± 1343) 92853 ns/iter (± 9063) 1.03
es2022_class_properties 93956 ns/iter (± 195) 91011 ns/iter (± 787) 1.03
es2018_object_rest_spread 71245 ns/iter (± 170) 68874 ns/iter (± 719) 1.03
es2019_optional_catch_binding 61411 ns/iter (± 109) 59121 ns/iter (± 352) 1.04
es2017_async_to_generator 61496 ns/iter (± 137) 59262 ns/iter (± 507) 1.04
es2016_exponentiation 65259 ns/iter (± 160) 63071 ns/iter (± 409) 1.03
es2015_arrow 70488 ns/iter (± 260) 68766 ns/iter (± 602) 1.03
es2015_block_scoped_fn 66287 ns/iter (± 124) 65982 ns/iter (± 358) 1.00
es2015_block_scoping 157129 ns/iter (± 7378) 136077 ns/iter (± 5992) 1.15
es2015_classes 117766 ns/iter (± 395) 113111 ns/iter (± 1298) 1.04
es2015_computed_props 60953 ns/iter (± 105) 60049 ns/iter (± 306) 1.02
es2015_destructuring 117134 ns/iter (± 181) 115005 ns/iter (± 598) 1.02
es2015_duplicate_keys 63465 ns/iter (± 126) 62462 ns/iter (± 362) 1.02
es2015_parameters 79563 ns/iter (± 90) 77055 ns/iter (± 567) 1.03
es2015_fn_name 66676 ns/iter (± 527) 64123 ns/iter (± 635) 1.04
es2015_for_of 64086 ns/iter (± 178) 62050 ns/iter (± 368) 1.03
es2015_instanceof 63050 ns/iter (± 74) 61264 ns/iter (± 592) 1.03
es2015_shorthand_property 60973 ns/iter (± 118) 59805 ns/iter (± 635) 1.02
es2015_spread 61040 ns/iter (± 133) 59252 ns/iter (± 408) 1.03
es2015_sticky_regex 62465 ns/iter (± 144) 61004 ns/iter (± 465) 1.02
es2015_typeof_symbol 62451 ns/iter (± 163) 60891 ns/iter (± 230) 1.03
es/transform/baseline/base 51704 ns/iter (± 82) 49803 ns/iter (± 225) 1.04
es/transform/baseline/common_reserved_word 62346 ns/iter (± 106) 60410 ns/iter (± 452) 1.03
es/transform/baseline/common_typescript 142700 ns/iter (± 273) 142229 ns/iter (± 9374) 1.00
es/target/es3 171010 ns/iter (± 171) 164701 ns/iter (± 1078) 1.04
es/target/es2015 632165 ns/iter (± 1768) 614470 ns/iter (± 6333) 1.03
es/target/es2016 65196 ns/iter (± 189) 63105 ns/iter (± 441) 1.03
es/target/es2017 61567 ns/iter (± 124) 59768 ns/iter (± 410) 1.03
es/target/es2018 81328 ns/iter (± 113) 78265 ns/iter (± 590) 1.04
es/target/es2020 133046 ns/iter (± 269) 128122 ns/iter (± 806) 1.04
babelify-only 671407 ns/iter (± 1429) 665741 ns/iter (± 4187) 1.01
parse_and_babelify_angular 45573061 ns/iter (± 801020) 41399554 ns/iter (± 608711) 1.10
parse_and_babelify_backbone 5592988 ns/iter (± 43971) 5263440 ns/iter (± 50514) 1.06
parse_and_babelify_jquery 34063279 ns/iter (± 578978) 31332753 ns/iter (± 399736) 1.09
parse_and_babelify_jquery_mobile 57502541 ns/iter (± 671418) 54876973 ns/iter (± 793573) 1.05
parse_and_babelify_mootools 35262322 ns/iter (± 464812) 32122155 ns/iter (± 319242) 1.10
parse_and_babelify_underscore 4417746 ns/iter (± 25956) 4308479 ns/iter (± 35923) 1.03
parse_and_babelify_yui 35594408 ns/iter (± 1017809) 31788921 ns/iter (± 823659) 1.12
html/minify/document/css_spec 42612935 ns/iter (± 377398) 40773894 ns/iter (± 460477) 1.05
html/minify/document/github 17599394 ns/iter (± 47275) 16950373 ns/iter (± 182289) 1.04
html/minify/document/stackoverflow 15839210 ns/iter (± 68160) 15197587 ns/iter (± 99812) 1.04
html/minify/document_fragment/css_spec 41222927 ns/iter (± 545359) 38453696 ns/iter (± 478418) 1.07
html/minify/document_fragment/github 16935351 ns/iter (± 75781) 16166762 ns/iter (± 122490) 1.05
html/minify/document_fragment/stackoverflow 15421112 ns/iter (± 52364) 14790922 ns/iter (± 92789) 1.04
html/document/visitor/compare/clone 340096 ns/iter (± 1781) 328499 ns/iter (± 2158) 1.04
html/document/visitor/compare/visit_mut_span 363562 ns/iter (± 2419) 353611 ns/iter (± 2672) 1.03
html/document/visitor/compare/visit_mut_span_panic 371225 ns/iter (± 2027) 362273 ns/iter (± 3018) 1.02
html/document/visitor/compare/fold_span 405759 ns/iter (± 2183) 388695 ns/iter (± 3197) 1.04
html/document/visitor/compare/fold_span_panic 461442 ns/iter (± 2675) 444823 ns/iter (± 4345) 1.04
html/document_fragment/visitor/compare/clone 340988 ns/iter (± 2339) 328641 ns/iter (± 2762) 1.04
html/document_fragment/visitor/compare/visit_mut_span 359979 ns/iter (± 2153) 351934 ns/iter (± 2784) 1.02
html/document_fragment/visitor/compare/visit_mut_span_panic 371904 ns/iter (± 2104) 359402 ns/iter (± 3957) 1.03
html/document_fragment/visitor/compare/fold_span 402860 ns/iter (± 2234) 393490 ns/iter (± 4175) 1.02
html/document_fragment/visitor/compare/fold_span_panic 464771 ns/iter (± 2527) 448153 ns/iter (± 3163) 1.04
html/lexer/css_2021_spec 15623532 ns/iter (± 16852) 15294222 ns/iter (± 211897) 1.02
html/lexer/github_com_17_05_2022 6043949 ns/iter (± 5414) 5867372 ns/iter (± 57988) 1.03
html/lexer/stackoverflow_com_17_05_2022 5666200 ns/iter (± 55108) 5518814 ns/iter (± 36523) 1.03
html/parser/parser_document/css_2021_spec 25841970 ns/iter (± 211624) 24519203 ns/iter (± 559827) 1.05
html/parser/parser_document/github_com_17_05_2022 8747701 ns/iter (± 9853) 8554851 ns/iter (± 96192) 1.02
html/parser/parser_document/stackoverflow_com_17_05_2022 7726041 ns/iter (± 6118) 7465730 ns/iter (± 106594) 1.03
html/parser/parser_document_fragment/css_2021_spec 26014374 ns/iter (± 223211) 24567341 ns/iter (± 161710) 1.06
html/parser/parser_document_fragment/github_com_17_05_2022 8809613 ns/iter (± 31967) 8459223 ns/iter (± 34075) 1.04
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7755072 ns/iter (± 8756) 7422567 ns/iter (± 58443) 1.04

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.