Skip to content

Commit

Permalink
feat(css/parser): Normalize URL functions (#6675)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-akait committed Dec 19, 2022
1 parent bbeb7c9 commit c01464e
Show file tree
Hide file tree
Showing 7 changed files with 8 additions and 14 deletions.
6 changes: 0 additions & 6 deletions crates/swc_css_codegen/tests/fixture.rs
Expand Up @@ -300,12 +300,6 @@ impl VisitMut for NormalizeTest {
n.name.value = n.name.value.to_lowercase().into();
}

fn visit_mut_url(&mut self, n: &mut Url) {
n.visit_mut_children_with(self);

n.name.value = n.name.value.to_lowercase().into();
}

fn visit_mut_pseudo_class_selector(&mut self, n: &mut PseudoClassSelector) {
n.visit_mut_children_with(self);

Expand Down
2 changes: 1 addition & 1 deletion crates/swc_css_minifier/src/compressor/url.rs
Expand Up @@ -5,7 +5,7 @@ use super::Compressor;

impl Compressor {
pub(super) fn compress_url(&self, url: &mut Url) {
if !url.name.value.eq_ignore_ascii_case(&js_word!("url")) {
if url.name.value != js_word!("url") {
return;
}

Expand Down

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

2 changes: 1 addition & 1 deletion crates/swc_css_parser/src/parser/values_and_units/mod.rs
Expand Up @@ -2576,7 +2576,7 @@ where

let name = Ident {
span: Span::new(span.lo, span.hi - BytePos(1), Default::default()),
value: function_name,
value: function_name.to_ascii_lowercase(),
raw: Some(raw_function_name),
};

Expand Down
Expand Up @@ -412,7 +412,7 @@
"end": 194,
"ctxt": 0
},
"value": "URL",
"value": "url",
"raw": "URL"
},
"value": {
Expand Down
Expand Up @@ -269,7 +269,7 @@
"end": 229,
"ctxt": 0
},
"value": "URL",
"value": "url",
"raw": "URL"
},
"value": {
Expand Down
6 changes: 3 additions & 3 deletions crates/swc_css_parser/tests/fixture/value/url/output.json
Expand Up @@ -369,7 +369,7 @@
"end": 291,
"ctxt": 0
},
"value": "URL",
"value": "url",
"raw": "URL"
},
"value": {
Expand Down Expand Up @@ -419,7 +419,7 @@
"end": 346,
"ctxt": 0
},
"value": "URL",
"value": "url",
"raw": "\\URL"
},
"value": {
Expand Down Expand Up @@ -1087,7 +1087,7 @@
"end": 948,
"ctxt": 0
},
"value": "SRC",
"value": "src",
"raw": "SRC"
},
"value": {
Expand Down

1 comment on commit c01464e

@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: c01464e Previous: 5fed222 Ratio
es/full/bugs-1 296710 ns/iter (± 5145) 301781 ns/iter (± 2946) 0.98
es/full/minify/libraries/antd 1652805986 ns/iter (± 25244982) 1651208042 ns/iter (± 24910274) 1.00
es/full/minify/libraries/d3 320100777 ns/iter (± 8566351) 308173386 ns/iter (± 5960960) 1.04
es/full/minify/libraries/echarts 1287919624 ns/iter (± 13156131) 1272917467 ns/iter (± 8278490) 1.01
es/full/minify/libraries/jquery 91720854 ns/iter (± 1004987) 91359518 ns/iter (± 830160) 1.00
es/full/minify/libraries/lodash 108535538 ns/iter (± 803766) 108115545 ns/iter (± 838906) 1.00
es/full/minify/libraries/moment 53536657 ns/iter (± 410863) 54353958 ns/iter (± 1608468) 0.98
es/full/minify/libraries/react 19269428 ns/iter (± 125902) 19369543 ns/iter (± 299866) 0.99
es/full/minify/libraries/terser 257616157 ns/iter (± 3717371) 257586213 ns/iter (± 5186673) 1.00
es/full/minify/libraries/three 460118409 ns/iter (± 8631789) 470738195 ns/iter (± 4511335) 0.98
es/full/minify/libraries/typescript 3062786269 ns/iter (± 13800132) 3106745372 ns/iter (± 8822647) 0.99
es/full/minify/libraries/victory 699492544 ns/iter (± 7581304) 717653929 ns/iter (± 5615753) 0.97
es/full/minify/libraries/vue 132033293 ns/iter (± 1469935) 136170010 ns/iter (± 1673835) 0.97
es/full/codegen/es3 27963 ns/iter (± 79) 27815 ns/iter (± 218) 1.01
es/full/codegen/es5 28016 ns/iter (± 70) 27830 ns/iter (± 47) 1.01
es/full/codegen/es2015 27873 ns/iter (± 50) 27834 ns/iter (± 37) 1.00
es/full/codegen/es2016 27888 ns/iter (± 34) 27820 ns/iter (± 33) 1.00
es/full/codegen/es2017 27833 ns/iter (± 39) 27752 ns/iter (± 53) 1.00
es/full/codegen/es2018 27935 ns/iter (± 50) 27820 ns/iter (± 58) 1.00
es/full/codegen/es2019 27903 ns/iter (± 50) 27775 ns/iter (± 52) 1.00
es/full/codegen/es2020 27893 ns/iter (± 69) 27814 ns/iter (± 25) 1.00
es/full/all/es3 166904375 ns/iter (± 3191729) 170660258 ns/iter (± 2379578) 0.98
es/full/all/es5 158097754 ns/iter (± 3529483) 161802776 ns/iter (± 2026695) 0.98
es/full/all/es2015 119622762 ns/iter (± 1172620) 121079267 ns/iter (± 972513) 0.99
es/full/all/es2016 118745889 ns/iter (± 791848) 119966706 ns/iter (± 874193) 0.99
es/full/all/es2017 118370880 ns/iter (± 778784) 119079015 ns/iter (± 1035819) 0.99
es/full/all/es2018 116139839 ns/iter (± 1111991) 118081369 ns/iter (± 927912) 0.98
es/full/all/es2019 116262659 ns/iter (± 518342) 117395047 ns/iter (± 969610) 0.99
es/full/all/es2020 111406872 ns/iter (± 621397) 113098765 ns/iter (± 1102285) 0.99
es/full/parser 513080 ns/iter (± 7837) 511554 ns/iter (± 8274) 1.00
es/full/base/fixer 21886 ns/iter (± 30) 22053 ns/iter (± 26) 0.99
es/full/base/resolver_and_hygiene 78076 ns/iter (± 261) 78156 ns/iter (± 120) 1.00
serialization of ast node 119 ns/iter (± 0) 119 ns/iter (± 0) 1
serialization of serde 123 ns/iter (± 0) 122 ns/iter (± 0) 1.01
css/minify/libraries/bootstrap 27176579 ns/iter (± 102341) 27551172 ns/iter (± 164328) 0.99
css/visitor/compare/clone 2065287 ns/iter (± 20854) 2092059 ns/iter (± 6033) 0.99
css/visitor/compare/visit_mut_span 2249620 ns/iter (± 7065) 2274993 ns/iter (± 8979) 0.99
css/visitor/compare/visit_mut_span_panic 2315194 ns/iter (± 5656) 2321251 ns/iter (± 5433) 1.00
css/visitor/compare/fold_span 2972357 ns/iter (± 35010) 3019018 ns/iter (± 18281) 0.98
css/visitor/compare/fold_span_panic 3105123 ns/iter (± 24174) 3157791 ns/iter (± 24548) 0.98
css/lexer/bootstrap_5_1_3 5258268 ns/iter (± 813) 5220824 ns/iter (± 2209) 1.01
css/lexer/foundation_6_7_4 4435589 ns/iter (± 2317) 4433649 ns/iter (± 1903) 1.00
css/lexer/tailwind_3_1_1 831758 ns/iter (± 244) 830364 ns/iter (± 353) 1.00
css/parser/bootstrap_5_1_3 21152107 ns/iter (± 169620) 20914107 ns/iter (± 414256) 1.01
css/parser/foundation_6_7_4 16840619 ns/iter (± 60622) 16692901 ns/iter (± 69115) 1.01
css/parser/tailwind_3_1_1 3205984 ns/iter (± 1977) 3194358 ns/iter (± 3865) 1.00
es/codegen/colors 328286 ns/iter (± 183795) 328315 ns/iter (± 184273) 1.00
es/codegen/large 1176424 ns/iter (± 611272) 1179575 ns/iter (± 615325) 1.00
es/codegen/with-parser/colors 46421 ns/iter (± 257) 46669 ns/iter (± 305) 0.99
es/codegen/with-parser/large 512940 ns/iter (± 1339) 515433 ns/iter (± 1420) 1.00
es/minify/libraries/antd 1455038135 ns/iter (± 17499803) 1444590240 ns/iter (± 13835848) 1.01
es/minify/libraries/d3 266341782 ns/iter (± 4745493) 264293807 ns/iter (± 3662536) 1.01
es/minify/libraries/echarts 1099825274 ns/iter (± 12484363) 1099133568 ns/iter (± 5662166) 1.00
es/minify/libraries/jquery 79049836 ns/iter (± 679630) 78555244 ns/iter (± 658815) 1.01
es/minify/libraries/lodash 96262180 ns/iter (± 811539) 95446057 ns/iter (± 804762) 1.01
es/minify/libraries/moment 46294575 ns/iter (± 272106) 46274920 ns/iter (± 403100) 1.00
es/minify/libraries/react 17171986 ns/iter (± 106693) 17180685 ns/iter (± 121585) 1.00
es/minify/libraries/terser 222897541 ns/iter (± 4081560) 218596775 ns/iter (± 2770219) 1.02
es/minify/libraries/three 385875957 ns/iter (± 6255884) 379130752 ns/iter (± 3990504) 1.02
es/minify/libraries/typescript 2631187910 ns/iter (± 11100013) 2630954662 ns/iter (± 14040766) 1.00
es/minify/libraries/victory 602465597 ns/iter (± 4765990) 602040306 ns/iter (± 8491445) 1.00
es/minify/libraries/vue 118269790 ns/iter (± 888902) 118569255 ns/iter (± 998676) 1.00
es/visitor/compare/clone 2391706 ns/iter (± 23370) 2392077 ns/iter (± 8311) 1.00
es/visitor/compare/visit_mut_span 2800204 ns/iter (± 4971) 2816040 ns/iter (± 23006) 0.99
es/visitor/compare/visit_mut_span_panic 2838839 ns/iter (± 8831) 2854179 ns/iter (± 13650) 0.99
es/visitor/compare/fold_span 3979724 ns/iter (± 28987) 3949367 ns/iter (± 44381) 1.01
es/visitor/compare/fold_span_panic 4132579 ns/iter (± 43919) 4103248 ns/iter (± 10545) 1.01
es/lexer/colors 17307 ns/iter (± 6) 17249 ns/iter (± 28) 1.00
es/lexer/angular 8258459 ns/iter (± 4835) 8245389 ns/iter (± 2858) 1.00
es/lexer/backbone 1076600 ns/iter (± 396) 1074610 ns/iter (± 370) 1.00
es/lexer/jquery 5990414 ns/iter (± 4371) 5968456 ns/iter (± 3755) 1.00
es/lexer/jquery mobile 9205855 ns/iter (± 56213) 9196474 ns/iter (± 5999) 1.00
es/lexer/mootools 4696727 ns/iter (± 7761) 4682101 ns/iter (± 5017) 1.00
es/lexer/underscore 901451 ns/iter (± 1397) 899090 ns/iter (± 769) 1.00
es/lexer/three 28094538 ns/iter (± 54265) 27999071 ns/iter (± 40894) 1.00
es/lexer/yui 5060856 ns/iter (± 2148) 5049403 ns/iter (± 2208) 1.00
es/parser/colors 30893 ns/iter (± 172) 30932 ns/iter (± 69) 1.00
es/parser/angular 16090805 ns/iter (± 371403) 15773706 ns/iter (± 224447) 1.02
es/parser/backbone 2318006 ns/iter (± 10430) 2325235 ns/iter (± 12019) 1.00
es/parser/jquery 12777118 ns/iter (± 130757) 12755896 ns/iter (± 185379) 1.00
es/parser/jquery mobile 20955942 ns/iter (± 399172) 20952807 ns/iter (± 348747) 1.00
es/parser/mootools 9698034 ns/iter (± 22589) 9680035 ns/iter (± 28759) 1.00
es/parser/underscore 1983997 ns/iter (± 16508) 1978687 ns/iter (± 10924) 1.00
es/parser/three 60814660 ns/iter (± 228102) 59900371 ns/iter (± 169406) 1.02
es/parser/yui 9634347 ns/iter (± 79844) 9628294 ns/iter (± 47010) 1.00
es/preset-env/usage/builtin_type 145514 ns/iter (± 34376) 143080 ns/iter (± 33298) 1.02
es/preset-env/usage/property 21076 ns/iter (± 72) 21186 ns/iter (± 90) 0.99
es/resolver/typescript 113683649 ns/iter (± 2100308) 111553650 ns/iter (± 2050342) 1.02
es/fixer/typescript 86123806 ns/iter (± 1071521) 84370905 ns/iter (± 404534) 1.02
es/hygiene/typescript 168069121 ns/iter (± 1860044) 167748427 ns/iter (± 1100210) 1.00
es/resolver_with_hygiene/typescript 300994243 ns/iter (± 2844064) 298310607 ns/iter (± 2008429) 1.01
es/visitor/base-perf/module_clone 76064 ns/iter (± 1160) 76723 ns/iter (± 1597) 0.99
es/visitor/base-perf/fold_empty 86457 ns/iter (± 1275) 87133 ns/iter (± 1354) 0.99
es/visitor/base-perf/fold_noop_impl_all 86804 ns/iter (± 1884) 86929 ns/iter (± 1671) 1.00
es/visitor/base-perf/fold_noop_impl_vec 86146 ns/iter (± 1678) 87011 ns/iter (± 1507) 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 60 ns/iter (± 0) 59 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_boxed 103 ns/iter (± 0) 103 ns/iter (± 0) 1
es/visitor/base-perf/boxing_unboxed 104 ns/iter (± 0) 102 ns/iter (± 0) 1.02
es/visitor/base-perf/visit_contains_this 3329 ns/iter (± 104) 3653 ns/iter (± 91) 0.91
es/base/parallel/resolver/typescript 5233155050 ns/iter (± 385650734) 4932369215 ns/iter (± 519066938) 1.06
es/base/parallel/hygiene/typescript 2011646829 ns/iter (± 36917301) 2006592821 ns/iter (± 23896821) 1.00
misc/visitors/time-complexity/time 5 103 ns/iter (± 0) 104 ns/iter (± 0) 0.99
misc/visitors/time-complexity/time 10 320 ns/iter (± 0) 321 ns/iter (± 4) 1.00
misc/visitors/time-complexity/time 15 670 ns/iter (± 13) 657 ns/iter (± 0) 1.02
misc/visitors/time-complexity/time 20 1256 ns/iter (± 32) 1231 ns/iter (± 0) 1.02
misc/visitors/time-complexity/time 40 6835 ns/iter (± 111) 6615 ns/iter (± 1) 1.03
misc/visitors/time-complexity/time 60 17066 ns/iter (± 11) 17252 ns/iter (± 37) 0.99
es/full-target/es2016 187815 ns/iter (± 488) 187376 ns/iter (± 605) 1.00
es/full-target/es2017 182481 ns/iter (± 467) 182118 ns/iter (± 688) 1.00
es/full-target/es2018 171141 ns/iter (± 537) 170859 ns/iter (± 395) 1.00
es2020_nullish_coalescing 67109 ns/iter (± 1075) 67044 ns/iter (± 121) 1.00
es2020_optional_chaining 96107 ns/iter (± 319) 95542 ns/iter (± 7660) 1.01
es2022_class_properties 94063 ns/iter (± 126) 94066 ns/iter (± 98) 1.00
es2018_object_rest_spread 71739 ns/iter (± 79) 71531 ns/iter (± 123) 1.00
es2019_optional_catch_binding 61822 ns/iter (± 94) 61479 ns/iter (± 100) 1.01
es2017_async_to_generator 62395 ns/iter (± 71) 61877 ns/iter (± 105) 1.01
es2016_exponentiation 65745 ns/iter (± 139) 65246 ns/iter (± 70) 1.01
es2015_arrow 70740 ns/iter (± 81) 70083 ns/iter (± 179) 1.01
es2015_block_scoped_fn 66527 ns/iter (± 165) 66048 ns/iter (± 141) 1.01
es2015_block_scoping 152343 ns/iter (± 9384) 146680 ns/iter (± 10724) 1.04
es2015_classes 117536 ns/iter (± 376) 117216 ns/iter (± 534) 1.00
es2015_computed_props 61678 ns/iter (± 55) 61759 ns/iter (± 77) 1.00
es2015_destructuring 116863 ns/iter (± 255) 116272 ns/iter (± 225) 1.01
es2015_duplicate_keys 64450 ns/iter (± 96) 64661 ns/iter (± 139) 1.00
es2015_parameters 79827 ns/iter (± 193) 79947 ns/iter (± 185) 1.00
es2015_fn_name 67237 ns/iter (± 539) 67181 ns/iter (± 428) 1.00
es2015_for_of 64751 ns/iter (± 123) 64535 ns/iter (± 80) 1.00
es2015_instanceof 63765 ns/iter (± 136) 63774 ns/iter (± 106) 1.00
es2015_shorthand_property 61389 ns/iter (± 66) 61259 ns/iter (± 100) 1.00
es2015_spread 61564 ns/iter (± 96) 61365 ns/iter (± 89) 1.00
es2015_sticky_regex 62571 ns/iter (± 103) 62434 ns/iter (± 86) 1.00
es2015_typeof_symbol 63027 ns/iter (± 67) 62761 ns/iter (± 151) 1.00
es/transform/baseline/base 52514 ns/iter (± 164) 52182 ns/iter (± 95) 1.01
es/transform/baseline/common_reserved_word 63193 ns/iter (± 148) 63013 ns/iter (± 97) 1.00
es/transform/baseline/common_typescript 142826 ns/iter (± 178) 169892 ns/iter (± 7854) 0.84
es/target/es3 170058 ns/iter (± 319) 170178 ns/iter (± 312) 1.00
es/target/es2015 630591 ns/iter (± 1260) 629703 ns/iter (± 1139) 1.00
es/target/es2016 65569 ns/iter (± 173) 65405 ns/iter (± 85) 1.00
es/target/es2017 62364 ns/iter (± 111) 62022 ns/iter (± 75) 1.01
es/target/es2018 81590 ns/iter (± 164) 81669 ns/iter (± 98) 1.00
es/target/es2020 132831 ns/iter (± 219) 132589 ns/iter (± 148) 1.00
babelify-only 673299 ns/iter (± 998) 671490 ns/iter (± 4862) 1.00
parse_and_babelify_angular 44833014 ns/iter (± 1571178) 45151239 ns/iter (± 832078) 0.99
parse_and_babelify_backbone 5424629 ns/iter (± 53760) 5543415 ns/iter (± 47923) 0.98
parse_and_babelify_jquery 32394206 ns/iter (± 333127) 33240651 ns/iter (± 577571) 0.97
parse_and_babelify_jquery_mobile 55076770 ns/iter (± 1038807) 57035174 ns/iter (± 639152) 0.97
parse_and_babelify_mootools 33705852 ns/iter (± 453039) 33294983 ns/iter (± 330112) 1.01
parse_and_babelify_underscore 4357755 ns/iter (± 59790) 4373188 ns/iter (± 21781) 1.00
parse_and_babelify_yui 32457642 ns/iter (± 293092) 33067053 ns/iter (± 199356) 0.98
html/minify/document/css_spec 42439579 ns/iter (± 351498) 42072804 ns/iter (± 192717) 1.01
html/minify/document/github 17536544 ns/iter (± 69774) 17380697 ns/iter (± 44650) 1.01
html/minify/document/stackoverflow 15612007 ns/iter (± 113669) 15601834 ns/iter (± 82686) 1.00
html/minify/document_fragment/css_spec 40934309 ns/iter (± 560550) 40701018 ns/iter (± 429905) 1.01
html/minify/document_fragment/github 16749327 ns/iter (± 35930) 16691890 ns/iter (± 35938) 1.00
html/minify/document_fragment/stackoverflow 15141476 ns/iter (± 43586) 15188422 ns/iter (± 43769) 1.00
html/document/visitor/compare/clone 343053 ns/iter (± 1924) 341420 ns/iter (± 2550) 1.00
html/document/visitor/compare/visit_mut_span 367571 ns/iter (± 1856) 361730 ns/iter (± 1698) 1.02
html/document/visitor/compare/visit_mut_span_panic 376478 ns/iter (± 2324) 376280 ns/iter (± 2204) 1.00
html/document/visitor/compare/fold_span 404782 ns/iter (± 2440) 404075 ns/iter (± 3179) 1.00
html/document/visitor/compare/fold_span_panic 459534 ns/iter (± 2517) 457693 ns/iter (± 1753) 1.00
html/document_fragment/visitor/compare/clone 338013 ns/iter (± 1732) 335057 ns/iter (± 1023) 1.01
html/document_fragment/visitor/compare/visit_mut_span 364562 ns/iter (± 2744) 367596 ns/iter (± 2687) 0.99
html/document_fragment/visitor/compare/visit_mut_span_panic 373998 ns/iter (± 1324) 370421 ns/iter (± 2412) 1.01
html/document_fragment/visitor/compare/fold_span 405562 ns/iter (± 2243) 402347 ns/iter (± 1918) 1.01
html/document_fragment/visitor/compare/fold_span_panic 460107 ns/iter (± 2307) 457712 ns/iter (± 1646) 1.01
html/lexer/css_2021_spec 17354385 ns/iter (± 6902) 15491829 ns/iter (± 18325) 1.12
html/lexer/github_com_17_05_2022 6455943 ns/iter (± 2678) 6013586 ns/iter (± 1489) 1.07
html/lexer/stackoverflow_com_17_05_2022 6268017 ns/iter (± 16182) 5626511 ns/iter (± 2467) 1.11
html/parser/parser_document/css_2021_spec 26242875 ns/iter (± 212701) 26210743 ns/iter (± 165765) 1.00
html/parser/parser_document/github_com_17_05_2022 8702206 ns/iter (± 8092) 8756299 ns/iter (± 13751) 0.99
html/parser/parser_document/stackoverflow_com_17_05_2022 7686799 ns/iter (± 16617) 7701276 ns/iter (± 8578) 1.00
html/parser/parser_document_fragment/css_2021_spec 26053728 ns/iter (± 214517) 26335131 ns/iter (± 190018) 0.99
html/parser/parser_document_fragment/github_com_17_05_2022 8759577 ns/iter (± 10283) 8742008 ns/iter (± 7330) 1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7704567 ns/iter (± 6496) 7696664 ns/iter (± 7116) 1.00

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

Please sign in to comment.