Skip to content

Commit

Permalink
feat(css/parser): Normalize selector AST (#6657)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-akait committed Dec 15, 2022
1 parent 3cefa62 commit 649438b
Show file tree
Hide file tree
Showing 24 changed files with 649 additions and 96 deletions.
12 changes: 12 additions & 0 deletions crates/swc_atoms/words.txt
Expand Up @@ -836,6 +836,9 @@ createClass
createReactClass
crossorigin
cubic-bezier
cue
cue-region
current
currentColor
currentcolor
cursor
Expand Down Expand Up @@ -1022,6 +1025,7 @@ frameset
from
from-image
function
future
g
get
global
Expand Down Expand Up @@ -1053,14 +1057,18 @@ h4
h5
h6
hanging-punctuation
has
head
header
headers
height
hgroup
highlight
historical-forms
hkern
horizontal-tb
host
host-context
hr
href
hsl
Expand Down Expand Up @@ -1306,7 +1314,9 @@ noscript
not
nowrap
nth-child
nth-col
nth-last-child
nth-last-col
nth-last-of-type
nth-of-type
null
Expand Down Expand Up @@ -1474,6 +1484,7 @@ paint-order
panose-1
param
part
past
path
pathLength
pathlength
Expand Down Expand Up @@ -1657,6 +1668,7 @@ skewx
skewy
slice
slot
slotted
small
solid
solidColor
Expand Down

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

18 changes: 9 additions & 9 deletions crates/swc_css_minifier/src/compressor/mod.rs
Expand Up @@ -255,14 +255,14 @@ impl VisitMut for Compressor {
fn visit_mut_pseudo_class_selector(&mut self, n: &mut PseudoClassSelector) {
match &n.name {
Ident { value, .. }
if matches_eq_ignore_ascii_case!(
value,
js_word!("not"),
js_word!("is"),
js_word!("where"),
js_word!("matches"),
js_word!("-moz-any"),
js_word!("-webkit-any")
if matches!(
*value,
js_word!("not")
| js_word!("is")
| js_word!("where")
| js_word!("matches")
| js_word!("-moz-any")
| js_word!("-webkit-any")
) =>
{
n.visit_mut_children_with(&mut *self.with_ctx(Ctx {
Expand All @@ -279,7 +279,7 @@ impl VisitMut for Compressor {
fn visit_mut_selector_list(&mut self, n: &mut SelectorList) {
n.visit_mut_children_with(self);

self.comrpess_selector_list(n);
self.compress_selector_list(n);
}

fn visit_mut_forgiving_selector_list(&mut self, n: &mut ForgivingSelectorList) {
Expand Down
36 changes: 11 additions & 25 deletions crates/swc_css_minifier/src/compressor/selector.rs
Expand Up @@ -6,7 +6,7 @@ use super::Compressor;
use crate::util::dedup;

impl Compressor {
pub(super) fn comrpess_selector_list(&mut self, selector_list: &mut SelectorList) {
pub(super) fn compress_selector_list(&mut self, selector_list: &mut SelectorList) {
dedup(&mut selector_list.children);
}

Expand Down Expand Up @@ -62,9 +62,7 @@ impl Compressor {
});
}
// `even` => `2n`
AnPlusB::Ident(Ident { value, span, .. })
if value.eq_ignore_ascii_case(&js_word!("even")) =>
{
AnPlusB::Ident(Ident { value, span, .. }) if *value == js_word!("even") => {
*an_plus_b = AnPlusB::AnPlusBNotation(AnPlusBNotation {
span: *span,
a: Some(2),
Expand Down Expand Up @@ -110,12 +108,12 @@ impl Compressor {
pub(super) fn compress_subclass_selector(&mut self, subclass_selector: &mut SubclassSelector) {
match &subclass_selector {
SubclassSelector::PseudoElement(PseudoElementSelector { name, span, .. }) => {
if matches_eq_ignore_ascii_case!(
if matches!(
name.value,
js_word!("before"),
js_word!("after"),
js_word!("first-letter"),
js_word!("first-line")
js_word!("before")
| js_word!("after")
| js_word!("first-letter")
| js_word!("first-line")
) {
*subclass_selector = SubclassSelector::PseudoClass(PseudoClassSelector {
span: *span,
Expand All @@ -129,9 +127,7 @@ impl Compressor {
children: Some(children),
span,
..
}) if name.value.eq_ignore_ascii_case(&js_word!("nth-child"))
&& children.len() == 1 =>
{
}) if name.value == js_word!("nth-child") && children.len() == 1 => {
match children.get(0) {
Some(PseudoClassSelectorChildren::AnPlusB(AnPlusB::AnPlusBNotation(
AnPlusBNotation {
Expand All @@ -158,11 +154,7 @@ impl Compressor {
children: Some(children),
span,
..
}) if name
.value
.eq_str_ignore_ascii_case(&js_word!("nth-last-child"))
&& children.len() == 1 =>
{
}) if name.value == js_word!("nth-last-child") && children.len() == 1 => {
match children.get(0) {
Some(PseudoClassSelectorChildren::AnPlusB(AnPlusB::AnPlusBNotation(
AnPlusBNotation {
Expand All @@ -189,9 +181,7 @@ impl Compressor {
children: Some(children),
span,
..
}) if name.value.eq_ignore_ascii_case(&js_word!("nth-of-type"))
&& children.len() == 1 =>
{
}) if name.value == js_word!("nth-of-type") && children.len() == 1 => {
match children.get(0) {
Some(PseudoClassSelectorChildren::AnPlusB(AnPlusB::AnPlusBNotation(
AnPlusBNotation {
Expand All @@ -218,11 +208,7 @@ impl Compressor {
children: Some(children),
span,
..
}) if name
.value
.eq_ignore_ascii_case(&js_word!("nth-last-of-type"))
&& children.len() == 1 =>
{
}) if name.value == js_word!("nth-last-of-type") && children.len() == 1 => {
match children.get(0) {
Some(PseudoClassSelectorChildren::AnPlusB(AnPlusB::AnPlusBNotation(
AnPlusBNotation {
Expand Down
Expand Up @@ -186,4 +186,7 @@ a:has(> a, > a) {color:red}
.alpha > .beta {& + & {order: 2}}
a {& *.bar {color: red}}
a {&*.bar {color: red}}
.class {&*.bar {color: red}}
.class {&*.bar {color: red}}

h1,H1{color:red}
*:NOT(H1, H1) {color: blue}

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

16 changes: 8 additions & 8 deletions crates/swc_css_modules/tests/fixture/url/url.transform.json
Expand Up @@ -53,10 +53,10 @@
"name": "__local__root-relative"
}
],
"my-background": [
"highlight": [
{
"type": "local",
"name": "__local__my-background"
"name": "__local__highlight"
}
],
"aliases": [
Expand All @@ -71,6 +71,12 @@
"name": "__local__strange"
}
],
"my-background": [
{
"type": "local",
"name": "__local__my-background"
}
],
"other-test-case": [
{
"type": "local",
Expand Down Expand Up @@ -106,11 +112,5 @@
"type": "local",
"name": "__local__pure-url"
}
],
"highlight": [
{
"type": "local",
"name": "__local__highlight"
}
]
}

1 comment on commit 649438b

@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: 649438b Previous: cb4173a Ratio
es/full/bugs-1 296299 ns/iter (± 16273) 307549 ns/iter (± 17103) 0.96
es/full/minify/libraries/antd 1830287585 ns/iter (± 11651720) 1747643644 ns/iter (± 19341265) 1.05
es/full/minify/libraries/d3 365293821 ns/iter (± 11331611) 313284816 ns/iter (± 4775108) 1.17
es/full/minify/libraries/echarts 1503875690 ns/iter (± 18090508) 1354874075 ns/iter (± 12750915) 1.11
es/full/minify/libraries/jquery 93585985 ns/iter (± 1328737) 92036818 ns/iter (± 776717) 1.02
es/full/minify/libraries/lodash 112260190 ns/iter (± 1093909) 107803067 ns/iter (± 793937) 1.04
es/full/minify/libraries/moment 54524652 ns/iter (± 514091) 53624495 ns/iter (± 356373) 1.02
es/full/minify/libraries/react 20227393 ns/iter (± 197217) 19217933 ns/iter (± 334353) 1.05
es/full/minify/libraries/terser 282131741 ns/iter (± 6065975) 257417945 ns/iter (± 2765754) 1.10
es/full/minify/libraries/three 514857603 ns/iter (± 13343668) 491971444 ns/iter (± 5626645) 1.05
es/full/minify/libraries/typescript 3395964686 ns/iter (± 20901087) 3343596629 ns/iter (± 36374127) 1.02
es/full/minify/libraries/victory 757394783 ns/iter (± 17750687) 755861182 ns/iter (± 15794788) 1.00
es/full/minify/libraries/vue 138965072 ns/iter (± 1542790) 132540867 ns/iter (± 2237567) 1.05
es/full/codegen/es3 27769 ns/iter (± 79) 27342 ns/iter (± 60) 1.02
es/full/codegen/es5 27732 ns/iter (± 39) 27224 ns/iter (± 48) 1.02
es/full/codegen/es2015 27739 ns/iter (± 57) 27206 ns/iter (± 75) 1.02
es/full/codegen/es2016 27756 ns/iter (± 48) 27199 ns/iter (± 58) 1.02
es/full/codegen/es2017 27777 ns/iter (± 48) 27159 ns/iter (± 64) 1.02
es/full/codegen/es2018 27769 ns/iter (± 101) 27169 ns/iter (± 72) 1.02
es/full/codegen/es2019 27796 ns/iter (± 29) 27196 ns/iter (± 38) 1.02
es/full/codegen/es2020 27752 ns/iter (± 182) 27183 ns/iter (± 58) 1.02
es/full/all/es3 167465553 ns/iter (± 1775235) 165807884 ns/iter (± 2838023) 1.01
es/full/all/es5 159781498 ns/iter (± 2388322) 159599653 ns/iter (± 1206851) 1.00
es/full/all/es2015 120376769 ns/iter (± 1341563) 119457396 ns/iter (± 651824) 1.01
es/full/all/es2016 119429811 ns/iter (± 861873) 118742186 ns/iter (± 754297) 1.01
es/full/all/es2017 118443911 ns/iter (± 1092097) 117044212 ns/iter (± 946954) 1.01
es/full/all/es2018 116927849 ns/iter (± 971921) 115900335 ns/iter (± 625258) 1.01
es/full/all/es2019 116778817 ns/iter (± 1686421) 115242257 ns/iter (± 757364) 1.01
es/full/all/es2020 111374015 ns/iter (± 802977) 110804480 ns/iter (± 773503) 1.01
es/full/parser 509953 ns/iter (± 8214) 517522 ns/iter (± 8407) 0.99
es/full/base/fixer 21825 ns/iter (± 30) 21674 ns/iter (± 24) 1.01
es/full/base/resolver_and_hygiene 77565 ns/iter (± 61) 77950 ns/iter (± 400) 1.00
serialization of ast node 139 ns/iter (± 3) 138 ns/iter (± 0) 1.01
serialization of serde 124 ns/iter (± 0) 124 ns/iter (± 0) 1
css/minify/libraries/bootstrap 27548919 ns/iter (± 124215) 27171931 ns/iter (± 159908) 1.01
css/visitor/compare/clone 2090187 ns/iter (± 12060) 2052928 ns/iter (± 16640) 1.02
css/visitor/compare/visit_mut_span 2287550 ns/iter (± 3396) 2254912 ns/iter (± 5824) 1.01
css/visitor/compare/visit_mut_span_panic 2292746 ns/iter (± 3696) 2302595 ns/iter (± 3875) 1.00
css/visitor/compare/fold_span 2988188 ns/iter (± 18535) 3014376 ns/iter (± 22136) 0.99
css/visitor/compare/fold_span_panic 3139496 ns/iter (± 36674) 3140004 ns/iter (± 21920) 1.00
css/lexer/bootstrap_5_1_3 5226417 ns/iter (± 2201) 5195876 ns/iter (± 5685) 1.01
css/lexer/foundation_6_7_4 4433659 ns/iter (± 679) 4411955 ns/iter (± 5414) 1.00
css/lexer/tailwind_3_1_1 830767 ns/iter (± 443) 827014 ns/iter (± 921) 1.00
css/parser/bootstrap_5_1_3 20894488 ns/iter (± 139751) 20795778 ns/iter (± 92331) 1.00
css/parser/foundation_6_7_4 16622741 ns/iter (± 83392) 16614590 ns/iter (± 358718) 1.00
css/parser/tailwind_3_1_1 3196895 ns/iter (± 3197) 3191332 ns/iter (± 1817) 1.00
es/codegen/colors 323693 ns/iter (± 182127) 322832 ns/iter (± 181265) 1.00
es/codegen/large 1241612 ns/iter (± 627035) 1222619 ns/iter (± 648829) 1.02
es/codegen/with-parser/colors 46807 ns/iter (± 872) 46444 ns/iter (± 185) 1.01
es/codegen/with-parser/large 508697 ns/iter (± 1683) 506151 ns/iter (± 792) 1.01
es/minify/libraries/antd 1598486771 ns/iter (± 21424055) 1537765646 ns/iter (± 17495496) 1.04
es/minify/libraries/d3 302421080 ns/iter (± 4158158) 270564678 ns/iter (± 2546261) 1.12
es/minify/libraries/echarts 1309930501 ns/iter (± 18797324) 1168670568 ns/iter (± 8739553) 1.12
es/minify/libraries/jquery 79952474 ns/iter (± 1003477) 79049173 ns/iter (± 402012) 1.01
es/minify/libraries/lodash 100615143 ns/iter (± 2412985) 97178072 ns/iter (± 654722) 1.04
es/minify/libraries/moment 46664137 ns/iter (± 389188) 46448220 ns/iter (± 557728) 1.00
es/minify/libraries/react 17453201 ns/iter (± 73951) 17132418 ns/iter (± 178791) 1.02
es/minify/libraries/terser 225507279 ns/iter (± 6187977) 221322840 ns/iter (± 1344115) 1.02
es/minify/libraries/three 422994852 ns/iter (± 4702871) 407318621 ns/iter (± 6715311) 1.04
es/minify/libraries/typescript 2887384025 ns/iter (± 8407232) 2872945859 ns/iter (± 16800180) 1.01
es/minify/libraries/victory 635586595 ns/iter (± 20288427) 661292915 ns/iter (± 13593674) 0.96
es/minify/libraries/vue 121204002 ns/iter (± 1076797) 120009351 ns/iter (± 1165564) 1.01
es/visitor/compare/clone 2444071 ns/iter (± 14110) 2397189 ns/iter (± 32516) 1.02
es/visitor/compare/visit_mut_span 2832454 ns/iter (± 3838) 2820002 ns/iter (± 6403) 1.00
es/visitor/compare/visit_mut_span_panic 2861325 ns/iter (± 24037) 2895829 ns/iter (± 9637) 0.99
es/visitor/compare/fold_span 4014728 ns/iter (± 15322) 4073064 ns/iter (± 19496) 0.99
es/visitor/compare/fold_span_panic 4148545 ns/iter (± 34932) 4186693 ns/iter (± 40180) 0.99
es/lexer/colors 17265 ns/iter (± 9) 17301 ns/iter (± 11) 1.00
es/lexer/angular 8205406 ns/iter (± 3140) 8277733 ns/iter (± 3768) 0.99
es/lexer/backbone 1070244 ns/iter (± 441) 1080932 ns/iter (± 653) 0.99
es/lexer/jquery 5948829 ns/iter (± 4416) 5989510 ns/iter (± 9387) 0.99
es/lexer/jquery mobile 9148830 ns/iter (± 5185) 9217453 ns/iter (± 8822) 0.99
es/lexer/mootools 4656533 ns/iter (± 3127) 4703594 ns/iter (± 6606) 0.99
es/lexer/underscore 893658 ns/iter (± 520) 903078 ns/iter (± 1696) 0.99
es/lexer/three 27843983 ns/iter (± 6207) 28083250 ns/iter (± 23122) 0.99
es/lexer/yui 5038925 ns/iter (± 2209) 5078391 ns/iter (± 4588) 0.99
es/parser/colors 31145 ns/iter (± 165) 31127 ns/iter (± 172) 1.00
es/parser/angular 16436600 ns/iter (± 196097) 16169038 ns/iter (± 216179) 1.02
es/parser/backbone 2312133 ns/iter (± 14448) 2329835 ns/iter (± 15506) 0.99
es/parser/jquery 12620905 ns/iter (± 89138) 12518000 ns/iter (± 69109) 1.01
es/parser/jquery mobile 20110757 ns/iter (± 260536) 19906042 ns/iter (± 165118) 1.01
es/parser/mootools 9575834 ns/iter (± 49366) 9577984 ns/iter (± 22266) 1.00
es/parser/underscore 1963887 ns/iter (± 11738) 1972276 ns/iter (± 9221) 1.00
es/parser/three 60525945 ns/iter (± 472905) 60737398 ns/iter (± 552253) 1.00
es/parser/yui 9693713 ns/iter (± 67826) 9722516 ns/iter (± 58254) 1.00
es/preset-env/usage/builtin_type 138585 ns/iter (± 30567) 138109 ns/iter (± 29992) 1.00
es/preset-env/usage/property 21541 ns/iter (± 63) 21520 ns/iter (± 119) 1.00
es/resolver/typescript 123215755 ns/iter (± 3134039) 121828619 ns/iter (± 2534116) 1.01
es/fixer/typescript 99126349 ns/iter (± 6393047) 100484955 ns/iter (± 7791125) 0.99
es/hygiene/typescript 190953460 ns/iter (± 2052469) 199837365 ns/iter (± 767829) 0.96
es/resolver_with_hygiene/typescript 331842402 ns/iter (± 4115202) 340751107 ns/iter (± 1599241) 0.97
es/visitor/base-perf/module_clone 77176 ns/iter (± 1552) 76327 ns/iter (± 1135) 1.01
es/visitor/base-perf/fold_empty 86983 ns/iter (± 1490) 86218 ns/iter (± 1582) 1.01
es/visitor/base-perf/fold_noop_impl_all 85275 ns/iter (± 1950) 85527 ns/iter (± 630) 1.00
es/visitor/base-perf/fold_noop_impl_vec 86285 ns/iter (± 1346) 86968 ns/iter (± 1212) 0.99
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) 60 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_boxed 102 ns/iter (± 0) 102 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed 104 ns/iter (± 0) 108 ns/iter (± 0) 0.96
es/visitor/base-perf/visit_contains_this 3522 ns/iter (± 58) 3560 ns/iter (± 95) 0.99
es/base/parallel/resolver/typescript 6032090799 ns/iter (± 527267451) 6119864528 ns/iter (± 453058491) 0.99
es/base/parallel/hygiene/typescript 2256981383 ns/iter (± 56332710) 2247701111 ns/iter (± 22222650) 1.00
misc/visitors/time-complexity/time 5 94 ns/iter (± 0) 93 ns/iter (± 0) 1.01
misc/visitors/time-complexity/time 10 325 ns/iter (± 0) 331 ns/iter (± 4) 0.98
misc/visitors/time-complexity/time 15 635 ns/iter (± 0) 638 ns/iter (± 1) 1.00
misc/visitors/time-complexity/time 20 1206 ns/iter (± 10) 1196 ns/iter (± 5) 1.01
misc/visitors/time-complexity/time 40 6162 ns/iter (± 12) 6149 ns/iter (± 10) 1.00
misc/visitors/time-complexity/time 60 15512 ns/iter (± 11) 15522 ns/iter (± 11) 1.00
es/full-target/es2016 187951 ns/iter (± 808) 189636 ns/iter (± 1289) 0.99
es/full-target/es2017 183054 ns/iter (± 497) 183036 ns/iter (± 612) 1.00
es/full-target/es2018 172120 ns/iter (± 604) 172317 ns/iter (± 656) 1.00
es2020_nullish_coalescing 66413 ns/iter (± 76) 67161 ns/iter (± 188) 0.99
es2020_optional_chaining 96160 ns/iter (± 772) 95859 ns/iter (± 368) 1.00
es2022_class_properties 93104 ns/iter (± 197) 93487 ns/iter (± 166) 1.00
es2018_object_rest_spread 71559 ns/iter (± 164) 71647 ns/iter (± 120) 1.00
es2019_optional_catch_binding 61105 ns/iter (± 100) 60909 ns/iter (± 115) 1.00
es2017_async_to_generator 61817 ns/iter (± 107) 61540 ns/iter (± 125) 1.00
es2016_exponentiation 64941 ns/iter (± 131) 65125 ns/iter (± 90) 1.00
es2015_arrow 70504 ns/iter (± 154) 70293 ns/iter (± 281) 1.00
es2015_block_scoped_fn 65600 ns/iter (± 216) 65846 ns/iter (± 106) 1.00
es2015_block_scoping 140834 ns/iter (± 8855) 153039 ns/iter (± 9249) 0.92
es2015_classes 118898 ns/iter (± 538) 117250 ns/iter (± 455) 1.01
es2015_computed_props 60737 ns/iter (± 111) 60986 ns/iter (± 151) 1.00
es2015_destructuring 116335 ns/iter (± 250) 116234 ns/iter (± 795) 1.00
es2015_duplicate_keys 63402 ns/iter (± 65) 63729 ns/iter (± 80) 0.99
es2015_parameters 79310 ns/iter (± 165) 79609 ns/iter (± 130) 1.00
es2015_fn_name 66392 ns/iter (± 443) 66921 ns/iter (± 448) 0.99
es2015_for_of 64143 ns/iter (± 84) 64215 ns/iter (± 163) 1.00
es2015_instanceof 62820 ns/iter (± 91) 63376 ns/iter (± 135) 0.99
es2015_shorthand_property 60866 ns/iter (± 94) 61026 ns/iter (± 200) 1.00
es2015_spread 60814 ns/iter (± 73) 61113 ns/iter (± 125) 1.00
es2015_sticky_regex 62184 ns/iter (± 133) 62722 ns/iter (± 255) 0.99
es2015_typeof_symbol 62020 ns/iter (± 115) 62302 ns/iter (± 156) 1.00
es/transform/baseline/base 51595 ns/iter (± 138) 51825 ns/iter (± 126) 1.00
es/transform/baseline/common_reserved_word 61964 ns/iter (± 113) 62141 ns/iter (± 197) 1.00
es/transform/baseline/common_typescript 144912 ns/iter (± 1806) 142944 ns/iter (± 165) 1.01
es/target/es3 169463 ns/iter (± 267) 169271 ns/iter (± 416) 1.00
es/target/es2015 632774 ns/iter (± 1344) 632907 ns/iter (± 1455) 1.00
es/target/es2016 64894 ns/iter (± 83) 65235 ns/iter (± 100) 0.99
es/target/es2017 61694 ns/iter (± 118) 61693 ns/iter (± 139) 1.00
es/target/es2018 81751 ns/iter (± 139) 81578 ns/iter (± 164) 1.00
es/target/es2020 132221 ns/iter (± 371) 132271 ns/iter (± 435) 1.00
babelify-only 670812 ns/iter (± 792) 671107 ns/iter (± 1558) 1.00
parse_and_babelify_angular 45237097 ns/iter (± 823725) 45717147 ns/iter (± 894610) 0.99
parse_and_babelify_backbone 5615318 ns/iter (± 101485) 5450147 ns/iter (± 52413) 1.03
parse_and_babelify_jquery 35514089 ns/iter (± 932905) 33290365 ns/iter (± 284656) 1.07
parse_and_babelify_jquery_mobile 58821560 ns/iter (± 1226435) 57085374 ns/iter (± 525509) 1.03
parse_and_babelify_mootools 34979090 ns/iter (± 507577) 34689749 ns/iter (± 223867) 1.01
parse_and_babelify_underscore 4431109 ns/iter (± 39105) 4368149 ns/iter (± 22565) 1.01
parse_and_babelify_yui 33856978 ns/iter (± 637740) 34397162 ns/iter (± 983371) 0.98
html/minify/document/css_spec 42577256 ns/iter (± 535265) 42316429 ns/iter (± 153518) 1.01
html/minify/document/github 17451346 ns/iter (± 65732) 17503163 ns/iter (± 56464) 1.00
html/minify/document/stackoverflow 15717569 ns/iter (± 103030) 15608511 ns/iter (± 50109) 1.01
html/minify/document_fragment/css_spec 41832613 ns/iter (± 280158) 40783326 ns/iter (± 133475) 1.03
html/minify/document_fragment/github 16816259 ns/iter (± 78280) 16794670 ns/iter (± 35438) 1.00
html/minify/document_fragment/stackoverflow 15245770 ns/iter (± 75536) 15219623 ns/iter (± 54089) 1.00
html/document/visitor/compare/clone 339474 ns/iter (± 2075) 342927 ns/iter (± 2157) 0.99
html/document/visitor/compare/visit_mut_span 367972 ns/iter (± 2948) 363714 ns/iter (± 1807) 1.01
html/document/visitor/compare/visit_mut_span_panic 378807 ns/iter (± 1063) 374205 ns/iter (± 2336) 1.01
html/document/visitor/compare/fold_span 403855 ns/iter (± 2421) 403141 ns/iter (± 2523) 1.00
html/document/visitor/compare/fold_span_panic 465150 ns/iter (± 1882) 458588 ns/iter (± 2549) 1.01
html/document_fragment/visitor/compare/clone 333733 ns/iter (± 1851) 334030 ns/iter (± 1848) 1.00
html/document_fragment/visitor/compare/visit_mut_span 362000 ns/iter (± 1382) 363046 ns/iter (± 3489) 1.00
html/document_fragment/visitor/compare/visit_mut_span_panic 370404 ns/iter (± 2503) 372158 ns/iter (± 1811) 1.00
html/document_fragment/visitor/compare/fold_span 398081 ns/iter (± 2084) 402757 ns/iter (± 2100) 0.99
html/document_fragment/visitor/compare/fold_span_panic 453984 ns/iter (± 1584) 462885 ns/iter (± 2117) 0.98
html/lexer/css_2021_spec 15493505 ns/iter (± 10629) 15551820 ns/iter (± 67920) 1.00
html/lexer/github_com_17_05_2022 6022962 ns/iter (± 4628) 6014614 ns/iter (± 5386) 1.00
html/lexer/stackoverflow_com_17_05_2022 5624260 ns/iter (± 2477) 5627358 ns/iter (± 7907) 1.00
html/parser/parser_document/css_2021_spec 25918369 ns/iter (± 1485074) 25829958 ns/iter (± 137744) 1.00
html/parser/parser_document/github_com_17_05_2022 8796514 ns/iter (± 11080) 8793884 ns/iter (± 23491) 1.00
html/parser/parser_document/stackoverflow_com_17_05_2022 7704309 ns/iter (± 3215) 7713298 ns/iter (± 15061) 1.00
html/parser/parser_document_fragment/css_2021_spec 26059445 ns/iter (± 144526) 25804260 ns/iter (± 473366) 1.01
html/parser/parser_document_fragment/github_com_17_05_2022 8797927 ns/iter (± 17005) 8793308 ns/iter (± 19000) 1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7719565 ns/iter (± 12253) 7737262 ns/iter (± 60702) 1.00

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

Please sign in to comment.