Skip to content

Commit

Permalink
feat(css/ast): Make AST intuitive (#6606)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Dec 9, 2022
1 parent fef8fc9 commit b4eef53
Show file tree
Hide file tree
Showing 366 changed files with 193 additions and 13,175 deletions.
60 changes: 53 additions & 7 deletions crates/swc_css_ast/src/base.rs
Expand Up @@ -126,13 +126,15 @@ pub enum ComponentValue {
#[tag("SimpleBlock")]
SimpleBlock(Box<SimpleBlock>),

// Block Contents grammar
#[tag("DeclarationOrAtRule")]
DeclarationOrAtRule(Box<DeclarationOrAtRule>),
#[tag("Rule")]
Rule(Box<Rule>),
#[tag("StyleBlock")]
StyleBlock(Box<StyleBlock>),
#[tag("AtRule")]
AtRule(Box<AtRule>),

#[tag("QualifiedRule")]
QualifiedRule(Box<QualifiedRule>),

#[tag("ListOfComponentValues")]
ListOfComponentValues(Box<ListOfComponentValues>),

#[tag("KeyframeBlock")]
KeyframeBlock(Box<KeyframeBlock>),

Expand Down Expand Up @@ -181,6 +183,50 @@ pub enum ComponentValue {
Declaration(Box<Declaration>),
}

impl From<StyleBlock> for ComponentValue {
#[inline]
fn from(block: StyleBlock) -> Self {
match block {
StyleBlock::AtRule(at_rule) => ComponentValue::AtRule(at_rule),
StyleBlock::Declaration(declaration) => ComponentValue::Declaration(declaration),
StyleBlock::QualifiedRule(qualified_rule) => {
ComponentValue::QualifiedRule(qualified_rule)
}
StyleBlock::ListOfComponentValues(list_of_component_values) => {
ComponentValue::ListOfComponentValues(list_of_component_values)
}
}
}
}

impl From<DeclarationOrAtRule> for ComponentValue {
#[inline]
fn from(rule: DeclarationOrAtRule) -> Self {
match rule {
DeclarationOrAtRule::Declaration(declaration) => {
ComponentValue::Declaration(declaration)
}
DeclarationOrAtRule::AtRule(at_rule) => ComponentValue::AtRule(at_rule),
DeclarationOrAtRule::ListOfComponentValues(list_of_component_values) => {
ComponentValue::ListOfComponentValues(list_of_component_values)
}
}
}
}

impl From<Rule> for ComponentValue {
#[inline]
fn from(rule: Rule) -> Self {
match rule {
Rule::AtRule(at_rule) => ComponentValue::AtRule(at_rule),
Rule::QualifiedRule(qualified_rule) => ComponentValue::QualifiedRule(qualified_rule),
Rule::ListOfComponentValues(list_of_component_values) => {
ComponentValue::ListOfComponentValues(list_of_component_values)
}
}
}
}

#[ast_node]
#[derive(Eq, Hash, Is, EqIgnoreSpan)]
pub enum DeclarationOrAtRule {
Expand Down
80 changes: 33 additions & 47 deletions crates/swc_css_codegen/src/lib.rs
Expand Up @@ -1327,79 +1327,65 @@ where

for (idx, node) in n.value.iter().enumerate() {
match node {
ComponentValue::StyleBlock(_) => {
ComponentValue::ListOfComponentValues(_) | ComponentValue::Declaration(_) => {
if idx == 0 {
formatting_newline!(self);
}

increase_indent!(self);
}
ComponentValue::Rule(_) | ComponentValue::KeyframeBlock(_) => {
ComponentValue::AtRule(_)
| ComponentValue::QualifiedRule(_)
| ComponentValue::KeyframeBlock(_) => {
formatting_newline!(self);
increase_indent!(self);
}
ComponentValue::DeclarationOrAtRule(_) => {
if idx == 0 {
formatting_newline!(self);
}

increase_indent!(self);
}
_ => {}
}

emit!(self, node);
match node {
ComponentValue::ListOfComponentValues(node) => {
emit!(
&mut *self.with_ctx(Ctx {
in_list_of_component_values: true,
..self.ctx
}),
node
);
}
_ => {
emit!(self, node);
}
}

match node {
ComponentValue::Rule(_) => {
ComponentValue::AtRule(_) | ComponentValue::QualifiedRule(_) => {
formatting_newline!(self);
decrease_indent!(self);
}
ComponentValue::StyleBlock(node) => {
match &**node {
StyleBlock::AtRule(_) | StyleBlock::QualifiedRule(_) => {
formatting_newline!(self);
}
StyleBlock::Declaration(_) => {
if idx != len - 1 {
semi!(self);
} else {
formatting_semi!(self);
}

formatting_newline!(self);
}
StyleBlock::ListOfComponentValues(_) => {}
ComponentValue::Declaration(_) => {
if idx != len - 1 {
semi!(self);
} else {
formatting_semi!(self);
}

formatting_newline!(self);
decrease_indent!(self);
}
ComponentValue::ListOfComponentValues(_) => {
decrease_indent!(self);
}

ComponentValue::KeyframeBlock(_) => {
if idx == len - 1 {
formatting_newline!(self);
}

decrease_indent!(self);
}
ComponentValue::DeclarationOrAtRule(node) => {
match &**node {
DeclarationOrAtRule::AtRule(_) => {
formatting_newline!(self);
}
DeclarationOrAtRule::Declaration(_) => {
if idx != len - 1 {
semi!(self);
} else {
formatting_semi!(self);
}

formatting_newline!(self);
}
DeclarationOrAtRule::ListOfComponentValues(_) => {}
}

decrease_indent!(self);
}
_ => {
if !self.ctx.in_list_of_component_values && ending == "]" && idx != len - 1 {
space!(self);
Expand All @@ -1418,9 +1404,9 @@ where
ComponentValue::Function(n) => emit!(self, n),
ComponentValue::SimpleBlock(n) => emit!(self, n),

ComponentValue::StyleBlock(n) => emit!(self, n),
ComponentValue::DeclarationOrAtRule(n) => emit!(self, n),
ComponentValue::Rule(n) => emit!(self, n),
ComponentValue::ListOfComponentValues(n) => emit!(self, n),
ComponentValue::QualifiedRule(n) => emit!(self, n),
ComponentValue::AtRule(n) => emit!(self, n),
ComponentValue::KeyframeBlock(n) => emit!(self, n),

ComponentValue::Ident(n) => emit!(self, n),
Expand Down Expand Up @@ -1669,7 +1655,7 @@ where
}

#[emitter]
fn emit_frequency_cercentage(&mut self, n: &FrequencyPercentage) -> Result {
fn emit_frequency_percentage(&mut self, n: &FrequencyPercentage) -> Result {
match n {
FrequencyPercentage::Frequency(n) => emit!(self, n),
FrequencyPercentage::Percentage(n) => emit!(self, n),
Expand Down
29 changes: 7 additions & 22 deletions crates/swc_css_compat/src/nesting.rs
Expand Up @@ -231,14 +231,14 @@ impl NestingHandler {

for value in rule.block.value.take() {
match value {
ComponentValue::StyleBlock(box StyleBlock::QualifiedRule(mut nested)) => {
ComponentValue::QualifiedRule(mut nested) => {
self.process_prelude(&rule.prelude, &mut nested.prelude);

nested_rules.push(Rule::QualifiedRule(nested));

continue;
}
ComponentValue::StyleBlock(box StyleBlock::AtRule(ref at_rule)) => {
ComponentValue::AtRule(ref at_rule) => {
if let Some(
AtRulePrelude::MediaPrelude(..)
| AtRulePrelude::SupportsPrelude(..)
Expand All @@ -252,9 +252,7 @@ impl NestingHandler {

for n in &block.value {
match n {
ComponentValue::StyleBlock(box StyleBlock::QualifiedRule(
n,
)) => {
ComponentValue::QualifiedRule(n) => {
let mut q = n.clone();

self.process_prelude(&rule.prelude, &mut q.prelude);
Expand Down Expand Up @@ -284,12 +282,7 @@ impl NestingHandler {
},
});

nested_of_media.insert(
0,
ComponentValue::StyleBlock(Box::new(
StyleBlock::QualifiedRule(rule),
)),
);
nested_of_media.insert(0, ComponentValue::QualifiedRule(rule));
}

nested_rules.push(Rule::AtRule(Box::new(AtRule {
Expand Down Expand Up @@ -344,14 +337,12 @@ impl VisitMut for NestingHandler {

for n in n.take() {
match n {
ComponentValue::StyleBlock(box StyleBlock::QualifiedRule(mut n)) => {
ComponentValue::QualifiedRule(mut n) => {
let mut rules = self.extract_nested_rules(&mut n);

rules.visit_mut_with(self);

new.push(ComponentValue::StyleBlock(Box::new(
StyleBlock::QualifiedRule(n),
)));
new.push(ComponentValue::QualifiedRule(n));
new.extend(rules.into_iter().map(rule_to_component_value));
}

Expand All @@ -366,11 +357,5 @@ impl VisitMut for NestingHandler {
}

fn rule_to_component_value(rule: Rule) -> ComponentValue {
match rule {
Rule::QualifiedRule(q) => {
ComponentValue::StyleBlock(Box::new(StyleBlock::QualifiedRule(q)))
}
Rule::AtRule(r) => ComponentValue::StyleBlock(Box::new(StyleBlock::AtRule(r))),
Rule::ListOfComponentValues(..) => ComponentValue::Rule(Box::new(rule)),
}
rule.into()
}

1 comment on commit b4eef53

@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: b4eef53 Previous: 4c2d422 Ratio
es/full/bugs-1 304089 ns/iter (± 8388) 296451 ns/iter (± 8993) 1.03
es/full/minify/libraries/antd 1737174379 ns/iter (± 25417642) 1727826470 ns/iter (± 27097371) 1.01
es/full/minify/libraries/d3 367173466 ns/iter (± 7422878) 332093218 ns/iter (± 3026991) 1.11
es/full/minify/libraries/echarts 1454842611 ns/iter (± 11206747) 1448619083 ns/iter (± 10840107) 1.00
es/full/minify/libraries/jquery 97827950 ns/iter (± 2223557) 92031035 ns/iter (± 1039871) 1.06
es/full/minify/libraries/lodash 116586041 ns/iter (± 2440690) 109669221 ns/iter (± 648698) 1.06
es/full/minify/libraries/moment 55194916 ns/iter (± 694063) 53687519 ns/iter (± 275125) 1.03
es/full/minify/libraries/react 20293636 ns/iter (± 220430) 19443837 ns/iter (± 82077) 1.04
es/full/minify/libraries/terser 276254913 ns/iter (± 6890264) 261680358 ns/iter (± 3235586) 1.06
es/full/minify/libraries/three 504106551 ns/iter (± 11441271) 478733855 ns/iter (± 4762485) 1.05
es/full/minify/libraries/typescript 3216447742 ns/iter (± 33848435) 3267420850 ns/iter (± 14913891) 0.98
es/full/minify/libraries/victory 755777015 ns/iter (± 7252079) 695913656 ns/iter (± 7801457) 1.09
es/full/minify/libraries/vue 142490473 ns/iter (± 5345033) 133982645 ns/iter (± 1199658) 1.06
es/full/codegen/es3 27845 ns/iter (± 49) 28349 ns/iter (± 51) 0.98
es/full/codegen/es5 27880 ns/iter (± 63) 28365 ns/iter (± 62) 0.98
es/full/codegen/es2015 27910 ns/iter (± 44) 28255 ns/iter (± 203) 0.99
es/full/codegen/es2016 27851 ns/iter (± 83) 28285 ns/iter (± 44) 0.98
es/full/codegen/es2017 27812 ns/iter (± 49) 28322 ns/iter (± 63) 0.98
es/full/codegen/es2018 27829 ns/iter (± 61) 28351 ns/iter (± 48) 0.98
es/full/codegen/es2019 27841 ns/iter (± 52) 28345 ns/iter (± 72) 0.98
es/full/codegen/es2020 27810 ns/iter (± 69) 28363 ns/iter (± 30) 0.98
es/full/all/es3 170874166 ns/iter (± 2110967) 170683547 ns/iter (± 2163427) 1.00
es/full/all/es5 162384401 ns/iter (± 2989355) 158850513 ns/iter (± 4762882) 1.02
es/full/all/es2015 122603909 ns/iter (± 1398894) 119467584 ns/iter (± 1251143) 1.03
es/full/all/es2016 122048280 ns/iter (± 2514199) 119363348 ns/iter (± 1100953) 1.02
es/full/all/es2017 120425445 ns/iter (± 1616037) 118979913 ns/iter (± 648341) 1.01
es/full/all/es2018 118597597 ns/iter (± 1285084) 117385414 ns/iter (± 1032741) 1.01
es/full/all/es2019 117804890 ns/iter (± 1432660) 116507875 ns/iter (± 1141594) 1.01
es/full/all/es2020 114244053 ns/iter (± 2324303) 111836266 ns/iter (± 1245081) 1.02
es/full/parser 513917 ns/iter (± 8431) 520524 ns/iter (± 7860) 0.99
es/full/base/fixer 21722 ns/iter (± 49) 21759 ns/iter (± 40) 1.00
es/full/base/resolver_and_hygiene 77703 ns/iter (± 46) 77225 ns/iter (± 149) 1.01
serialization of ast node 142 ns/iter (± 0) 140 ns/iter (± 0) 1.01
serialization of serde 123 ns/iter (± 0) 123 ns/iter (± 0) 1
css/minify/libraries/bootstrap 27361921 ns/iter (± 215926) 27201032 ns/iter (± 53556) 1.01
css/visitor/compare/clone 2138711 ns/iter (± 12831) 2319682 ns/iter (± 4118) 0.92
css/visitor/compare/visit_mut_span 2317732 ns/iter (± 5867) 2542743 ns/iter (± 6942) 0.91
css/visitor/compare/visit_mut_span_panic 2359423 ns/iter (± 5792) 2544372 ns/iter (± 10598) 0.93
css/visitor/compare/fold_span 3003151 ns/iter (± 26406) 3456206 ns/iter (± 8051) 0.87
css/visitor/compare/fold_span_panic 3164749 ns/iter (± 19271) 3640104 ns/iter (± 9988) 0.87
css/lexer/bootstrap_5_1_3 5372986 ns/iter (± 1368) 5329023 ns/iter (± 23489) 1.01
css/lexer/foundation_6_7_4 4502041 ns/iter (± 4839) 4465934 ns/iter (± 2213) 1.01
css/lexer/tailwind_3_1_1 852838 ns/iter (± 777) 846339 ns/iter (± 615) 1.01
css/parser/bootstrap_5_1_3 20935322 ns/iter (± 406024) 21178071 ns/iter (± 24689) 0.99
css/parser/foundation_6_7_4 16587404 ns/iter (± 43532) 16816255 ns/iter (± 13565) 0.99
css/parser/tailwind_3_1_1 3222315 ns/iter (± 3153) 3236854 ns/iter (± 4307) 1.00
es/codegen/colors 331950 ns/iter (± 186505) 332195 ns/iter (± 187359) 1.00
es/codegen/large 1215440 ns/iter (± 634233) 1221004 ns/iter (± 636787) 1.00
es/codegen/with-parser/colors 45518 ns/iter (± 296) 45729 ns/iter (± 85) 1.00
es/codegen/with-parser/large 510400 ns/iter (± 2172) 511041 ns/iter (± 1390) 1.00
es/minify/libraries/antd 1406294623 ns/iter (± 13524317) 1507462812 ns/iter (± 12768308) 0.93
es/minify/libraries/d3 289019250 ns/iter (± 7849017) 288941359 ns/iter (± 3070061) 1.00
es/minify/libraries/echarts 1216227133 ns/iter (± 14995696) 1268863153 ns/iter (± 11158298) 0.96
es/minify/libraries/jquery 79103381 ns/iter (± 1048772) 79090846 ns/iter (± 504729) 1.00
es/minify/libraries/lodash 99331471 ns/iter (± 1523732) 97299632 ns/iter (± 584605) 1.02
es/minify/libraries/moment 46943287 ns/iter (± 868872) 46022761 ns/iter (± 212410) 1.02
es/minify/libraries/react 18195475 ns/iter (± 334347) 17291555 ns/iter (± 125786) 1.05
es/minify/libraries/terser 244032916 ns/iter (± 2931206) 217794374 ns/iter (± 2758952) 1.12
es/minify/libraries/three 446921368 ns/iter (± 10372480) 397831330 ns/iter (± 5750142) 1.12
es/minify/libraries/typescript 2783177542 ns/iter (± 27505299) 2821757199 ns/iter (± 11036530) 0.99
es/minify/libraries/victory 655461116 ns/iter (± 19207056) 600082513 ns/iter (± 12353037) 1.09
es/minify/libraries/vue 126608903 ns/iter (± 1835452) 118851074 ns/iter (± 1583836) 1.07
es/visitor/compare/clone 2477236 ns/iter (± 33397) 2441773 ns/iter (± 17941) 1.01
es/visitor/compare/visit_mut_span 2893690 ns/iter (± 25737) 2822832 ns/iter (± 7182) 1.03
es/visitor/compare/visit_mut_span_panic 2951076 ns/iter (± 20301) 2874224 ns/iter (± 8072) 1.03
es/visitor/compare/fold_span 4041559 ns/iter (± 31091) 3957149 ns/iter (± 20098) 1.02
es/visitor/compare/fold_span_panic 4385142 ns/iter (± 173378) 4094177 ns/iter (± 13473) 1.07
es/lexer/colors 17472 ns/iter (± 4) 17376 ns/iter (± 18) 1.01
es/lexer/angular 8253427 ns/iter (± 5472) 8217211 ns/iter (± 12527) 1.00
es/lexer/backbone 1077853 ns/iter (± 735) 1071575 ns/iter (± 610) 1.01
es/lexer/jquery 5976426 ns/iter (± 5857) 5949570 ns/iter (± 4964) 1.00
es/lexer/jquery mobile 9221298 ns/iter (± 4344) 9171848 ns/iter (± 84118) 1.01
es/lexer/mootools 4698859 ns/iter (± 2086) 4670617 ns/iter (± 2323) 1.01
es/lexer/underscore 898168 ns/iter (± 307) 893645 ns/iter (± 436) 1.01
es/lexer/three 28000678 ns/iter (± 14540) 27839994 ns/iter (± 25932) 1.01
es/lexer/yui 5077162 ns/iter (± 909) 5042559 ns/iter (± 2428) 1.01
es/parser/colors 30987 ns/iter (± 205) 31399 ns/iter (± 156) 0.99
es/parser/angular 17445857 ns/iter (± 133952) 15995561 ns/iter (± 136373) 1.09
es/parser/backbone 2323928 ns/iter (± 16335) 2323103 ns/iter (± 13835) 1.00
es/parser/jquery 12988645 ns/iter (± 209716) 12500928 ns/iter (± 74281) 1.04
es/parser/jquery mobile 21265012 ns/iter (± 281398) 19790275 ns/iter (± 194200) 1.07
es/parser/mootools 9676987 ns/iter (± 63346) 9515887 ns/iter (± 33762) 1.02
es/parser/underscore 1958630 ns/iter (± 12514) 1972816 ns/iter (± 13061) 0.99
es/parser/three 59809226 ns/iter (± 279922) 59136512 ns/iter (± 503130) 1.01
es/parser/yui 9636517 ns/iter (± 75464) 9627667 ns/iter (± 53791) 1.00
es/preset-env/usage/builtin_type 138068 ns/iter (± 30735) 142458 ns/iter (± 33030) 0.97
es/preset-env/usage/property 21150 ns/iter (± 121) 21166 ns/iter (± 49) 1.00
es/resolver/typescript 111918526 ns/iter (± 4572368) 121049500 ns/iter (± 4224871) 0.92
es/fixer/typescript 87305671 ns/iter (± 823542) 94933857 ns/iter (± 1476832) 0.92
es/hygiene/typescript 170878566 ns/iter (± 1039088) 189086324 ns/iter (± 1412074) 0.90
es/resolver_with_hygiene/typescript 295540711 ns/iter (± 2190024) 318592430 ns/iter (± 1100838) 0.93
es/visitor/base-perf/module_clone 74848 ns/iter (± 1344) 74485 ns/iter (± 1296) 1.00
es/visitor/base-perf/fold_empty 86587 ns/iter (± 1719) 86495 ns/iter (± 937) 1.00
es/visitor/base-perf/fold_noop_impl_all 86315 ns/iter (± 558) 86872 ns/iter (± 1428) 0.99
es/visitor/base-perf/fold_noop_impl_vec 86063 ns/iter (± 1347) 86490 ns/iter (± 1363) 1.00
es/visitor/base-perf/boxing_boxed_clone 54 ns/iter (± 0) 54 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed_clone 58 ns/iter (± 0) 58 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 100 ns/iter (± 0) 100 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed 100 ns/iter (± 0) 101 ns/iter (± 0) 0.99
es/visitor/base-perf/visit_contains_this 3539 ns/iter (± 52) 3469 ns/iter (± 66) 1.02
es/base/parallel/resolver/typescript 5079582372 ns/iter (± 256897746) 5629853411 ns/iter (± 480379795) 0.90
es/base/parallel/hygiene/typescript 1992761597 ns/iter (± 26898342) 2256258897 ns/iter (± 37164879) 0.88
misc/visitors/time-complexity/time 5 97 ns/iter (± 0) 97 ns/iter (± 0) 1
misc/visitors/time-complexity/time 10 321 ns/iter (± 2) 340 ns/iter (± 7) 0.94
misc/visitors/time-complexity/time 15 659 ns/iter (± 8) 672 ns/iter (± 1) 0.98
misc/visitors/time-complexity/time 20 1217 ns/iter (± 0) 1253 ns/iter (± 12) 0.97
misc/visitors/time-complexity/time 40 6205 ns/iter (± 5) 6223 ns/iter (± 3) 1.00
misc/visitors/time-complexity/time 60 15586 ns/iter (± 5) 15616 ns/iter (± 7) 1.00
es/full-target/es2016 186647 ns/iter (± 429) 187599 ns/iter (± 502) 0.99
es/full-target/es2017 180367 ns/iter (± 895) 180421 ns/iter (± 613) 1.00
es/full-target/es2018 169761 ns/iter (± 618) 169486 ns/iter (± 351) 1.00
es2020_nullish_coalescing 65820 ns/iter (± 5109) 65262 ns/iter (± 248) 1.01
es2020_optional_chaining 94053 ns/iter (± 5819) 94007 ns/iter (± 1269) 1.00
es2022_class_properties 92593 ns/iter (± 220) 92004 ns/iter (± 134) 1.01
es2018_object_rest_spread 70534 ns/iter (± 88) 69789 ns/iter (± 91) 1.01
es2019_optional_catch_binding 59841 ns/iter (± 87) 59557 ns/iter (± 103) 1.00
es2017_async_to_generator 60710 ns/iter (± 91) 59709 ns/iter (± 87) 1.02
es2016_exponentiation 63859 ns/iter (± 100) 63475 ns/iter (± 161) 1.01
es2015_arrow 69317 ns/iter (± 311) 69033 ns/iter (± 259) 1.00
es2015_block_scoped_fn 65050 ns/iter (± 125) 64018 ns/iter (± 125) 1.02
es2015_block_scoping 155931 ns/iter (± 7108) 138553 ns/iter (± 10855) 1.13
es2015_classes 115264 ns/iter (± 393) 115439 ns/iter (± 465) 1.00
es2015_computed_props 59887 ns/iter (± 131) 59382 ns/iter (± 92) 1.01
es2015_destructuring 114477 ns/iter (± 305) 114865 ns/iter (± 320) 1.00
es2015_duplicate_keys 62344 ns/iter (± 63) 62040 ns/iter (± 119) 1.00
es2015_parameters 78088 ns/iter (± 82) 77801 ns/iter (± 144) 1.00
es2015_fn_name 65578 ns/iter (± 523) 65417 ns/iter (± 563) 1.00
es2015_for_of 63126 ns/iter (± 126) 62556 ns/iter (± 80) 1.01
es2015_instanceof 61899 ns/iter (± 70) 61496 ns/iter (± 109) 1.01
es2015_shorthand_property 59852 ns/iter (± 73) 59420 ns/iter (± 197) 1.01
es2015_spread 60091 ns/iter (± 52) 59414 ns/iter (± 92) 1.01
es2015_sticky_regex 61066 ns/iter (± 100) 60382 ns/iter (± 109) 1.01
es2015_typeof_symbol 61430 ns/iter (± 132) 61149 ns/iter (± 157) 1.00
es/transform/baseline/base 50705 ns/iter (± 60) 50192 ns/iter (± 102) 1.01
es/transform/baseline/common_reserved_word 61591 ns/iter (± 79) 61239 ns/iter (± 78) 1.01
es/transform/baseline/common_typescript 140638 ns/iter (± 2010) 139598 ns/iter (± 652) 1.01
es/target/es3 167134 ns/iter (± 208) 167688 ns/iter (± 117) 1.00
es/target/es2015 627133 ns/iter (± 1527) 630623 ns/iter (± 1451) 0.99
es/target/es2016 63804 ns/iter (± 137) 63367 ns/iter (± 148) 1.01
es/target/es2017 60927 ns/iter (± 76) 59908 ns/iter (± 88) 1.02
es/target/es2018 80810 ns/iter (± 67) 79964 ns/iter (± 119) 1.01
es/target/es2020 130685 ns/iter (± 239) 131087 ns/iter (± 373) 1.00
babelify-only 664416 ns/iter (± 1484) 673071 ns/iter (± 1527) 0.99
parse_and_babelify_angular 41611143 ns/iter (± 831959) 43101004 ns/iter (± 564937) 0.97
parse_and_babelify_backbone 5417012 ns/iter (± 74454) 5498029 ns/iter (± 42314) 0.99
parse_and_babelify_jquery 32049376 ns/iter (± 447740) 33768455 ns/iter (± 659202) 0.95
parse_and_babelify_jquery_mobile 54292590 ns/iter (± 625858) 59998202 ns/iter (± 497274) 0.90
parse_and_babelify_mootools 34792751 ns/iter (± 1497998) 35524668 ns/iter (± 420136) 0.98
parse_and_babelify_underscore 4357539 ns/iter (± 82714) 4352697 ns/iter (± 27172) 1.00
parse_and_babelify_yui 31679970 ns/iter (± 861855) 33691709 ns/iter (± 344529) 0.94
html/minify/document/css_spec 43802813 ns/iter (± 219948) 44532968 ns/iter (± 208010) 0.98
html/minify/document/github 18519417 ns/iter (± 29817) 18758054 ns/iter (± 47868) 0.99
html/minify/document/stackoverflow 16420335 ns/iter (± 50431) 16328265 ns/iter (± 52354) 1.01
html/minify/document_fragment/css_spec 42894827 ns/iter (± 173534) 43158233 ns/iter (± 351156) 0.99
html/minify/document_fragment/github 17897369 ns/iter (± 42541) 17917392 ns/iter (± 54926) 1.00
html/minify/document_fragment/stackoverflow 15921202 ns/iter (± 49373) 15789170 ns/iter (± 52619) 1.01
html/document/visitor/compare/clone 342933 ns/iter (± 1553) 343353 ns/iter (± 2196) 1.00
html/document/visitor/compare/visit_mut_span 373316 ns/iter (± 2309) 375095 ns/iter (± 2031) 1.00
html/document/visitor/compare/visit_mut_span_panic 377995 ns/iter (± 2242) 382217 ns/iter (± 1469) 0.99
html/document/visitor/compare/fold_span 404582 ns/iter (± 1508) 406032 ns/iter (± 1482) 1.00
html/document/visitor/compare/fold_span_panic 464831 ns/iter (± 1659) 462624 ns/iter (± 1985) 1.00
html/document_fragment/visitor/compare/clone 341830 ns/iter (± 2314) 339147 ns/iter (± 1589) 1.01
html/document_fragment/visitor/compare/visit_mut_span 367354 ns/iter (± 2386) 371671 ns/iter (± 2315) 0.99
html/document_fragment/visitor/compare/visit_mut_span_panic 376720 ns/iter (± 1774) 377392 ns/iter (± 1066) 1.00
html/document_fragment/visitor/compare/fold_span 406095 ns/iter (± 2780) 408003 ns/iter (± 1563) 1.00
html/document_fragment/visitor/compare/fold_span_panic 460394 ns/iter (± 2118) 464124 ns/iter (± 1519) 0.99
html/lexer/css_2021_spec 15684074 ns/iter (± 6115) 15594891 ns/iter (± 10576) 1.01
html/lexer/github_com_17_05_2022 6068041 ns/iter (± 2844) 6069601 ns/iter (± 4185) 1.00
html/lexer/stackoverflow_com_17_05_2022 5668264 ns/iter (± 1579) 5665871 ns/iter (± 3127) 1.00
html/parser/parser_document/css_2021_spec 25906904 ns/iter (± 264886) 25636726 ns/iter (± 77139) 1.01
html/parser/parser_document/github_com_17_05_2022 8770675 ns/iter (± 3632) 8787930 ns/iter (± 6435) 1.00
html/parser/parser_document/stackoverflow_com_17_05_2022 7755788 ns/iter (± 7396) 7776118 ns/iter (± 5930) 1.00
html/parser/parser_document_fragment/css_2021_spec 26527777 ns/iter (± 206193) 25900650 ns/iter (± 151015) 1.02
html/parser/parser_document_fragment/github_com_17_05_2022 8793186 ns/iter (± 7315) 8814263 ns/iter (± 9983) 1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7794495 ns/iter (± 12304) 7825930 ns/iter (± 9569) 1.00

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

Please sign in to comment.