Skip to content

Commit

Permalink
fix(css/minifier): Fix a bug with a modern hash (#6664)
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-akait committed Dec 19, 2022
1 parent 23e27a9 commit 1d3e06a
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 2 deletions.
3 changes: 2 additions & 1 deletion crates/swc_css_minifier/src/compressor/color.rs
Expand Up @@ -151,8 +151,9 @@ macro_rules! make_color {
let is_alpha_hex_supported = false;

if is_alpha_hex_supported {
let alpha = (($a * 255.0) as f64).round().max(0.0).min(255.0) as u8;
let hex: u32 =
((r as u32) << 24) | ((g as u32) << 16) | ((b as u32) << 8) | ($a as u32);
((r as u32) << 24) | ((g as u32) << 16) | ((b as u32) << 8) | (alpha as u32);

let compact = get_short_hex(hex);
let value = if hex == get_long_hex(compact) {
Expand Down
Expand Up @@ -436,3 +436,8 @@
color: #123f;
color: #123abcff;
}

.a {
color: hsl(270, 100%, 50%, 50%);
background: hsl(270, 100%, 50%, 0.5);
}

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

1 comment on commit 1d3e06a

@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: 1d3e06a Previous: 39afc46 Ratio
es/full/bugs-1 291483 ns/iter (± 12646) 287090 ns/iter (± 9682) 1.02
es/full/minify/libraries/antd 1671935764 ns/iter (± 26253306) 1602951540 ns/iter (± 21369537) 1.04
es/full/minify/libraries/d3 318424057 ns/iter (± 5011450) 303926543 ns/iter (± 6526843) 1.05
es/full/minify/libraries/echarts 1276963386 ns/iter (± 9428292) 1231470036 ns/iter (± 20755151) 1.04
es/full/minify/libraries/jquery 92266057 ns/iter (± 1067706) 90329077 ns/iter (± 716334) 1.02
es/full/minify/libraries/lodash 107886474 ns/iter (± 693554) 106311320 ns/iter (± 987753) 1.01
es/full/minify/libraries/moment 53126842 ns/iter (± 368245) 52585701 ns/iter (± 237039) 1.01
es/full/minify/libraries/react 19180238 ns/iter (± 215682) 19024325 ns/iter (± 171229) 1.01
es/full/minify/libraries/terser 254095677 ns/iter (± 5095139) 251244081 ns/iter (± 5712143) 1.01
es/full/minify/libraries/three 458798398 ns/iter (± 5521901) 448035052 ns/iter (± 13705223) 1.02
es/full/minify/libraries/typescript 3096933690 ns/iter (± 20747933) 3020194902 ns/iter (± 12710047) 1.03
es/full/minify/libraries/victory 697455697 ns/iter (± 11209791) 683308538 ns/iter (± 11944678) 1.02
es/full/minify/libraries/vue 134014351 ns/iter (± 1301207) 131423465 ns/iter (± 6770161) 1.02
es/full/codegen/es3 27379 ns/iter (± 53) 27613 ns/iter (± 69) 0.99
es/full/codegen/es5 27385 ns/iter (± 87) 27593 ns/iter (± 39) 0.99
es/full/codegen/es2015 27416 ns/iter (± 56) 27635 ns/iter (± 49) 0.99
es/full/codegen/es2016 27425 ns/iter (± 54) 27602 ns/iter (± 35) 0.99
es/full/codegen/es2017 27383 ns/iter (± 64) 27623 ns/iter (± 68) 0.99
es/full/codegen/es2018 27403 ns/iter (± 57) 27606 ns/iter (± 50) 0.99
es/full/codegen/es2019 27386 ns/iter (± 78) 27604 ns/iter (± 89) 0.99
es/full/codegen/es2020 27370 ns/iter (± 53) 27616 ns/iter (± 49) 0.99
es/full/all/es3 164137751 ns/iter (± 4021376) 166589487 ns/iter (± 3225089) 0.99
es/full/all/es5 157967613 ns/iter (± 2008513) 158179604 ns/iter (± 3133857) 1.00
es/full/all/es2015 118619900 ns/iter (± 621522) 119739019 ns/iter (± 737101) 0.99
es/full/all/es2016 117508896 ns/iter (± 2129552) 117821852 ns/iter (± 1096791) 1.00
es/full/all/es2017 116510315 ns/iter (± 891129) 117946357 ns/iter (± 631043) 0.99
es/full/all/es2018 115351493 ns/iter (± 629894) 116122037 ns/iter (± 649452) 0.99
es/full/all/es2019 114648746 ns/iter (± 1093470) 115368371 ns/iter (± 984541) 0.99
es/full/all/es2020 109502652 ns/iter (± 638807) 110793508 ns/iter (± 747220) 0.99
es/full/parser 499861 ns/iter (± 8635) 511797 ns/iter (± 7370) 0.98
es/full/base/fixer 22248 ns/iter (± 47) 22062 ns/iter (± 35) 1.01
es/full/base/resolver_and_hygiene 78079 ns/iter (± 106) 78328 ns/iter (± 101) 1.00
serialization of ast node 118 ns/iter (± 0) 138 ns/iter (± 0) 0.86
serialization of serde 122 ns/iter (± 0) 123 ns/iter (± 0) 0.99
css/minify/libraries/bootstrap 27015081 ns/iter (± 219765) 26749206 ns/iter (± 85704) 1.01
css/visitor/compare/clone 2068843 ns/iter (± 12424) 2046369 ns/iter (± 24023) 1.01
css/visitor/compare/visit_mut_span 2274195 ns/iter (± 6344) 2262312 ns/iter (± 2836) 1.01
css/visitor/compare/visit_mut_span_panic 2323192 ns/iter (± 6983) 2332902 ns/iter (± 12583) 1.00
css/visitor/compare/fold_span 3029675 ns/iter (± 24799) 3036685 ns/iter (± 31425) 1.00
css/visitor/compare/fold_span_panic 3146619 ns/iter (± 41420) 3124398 ns/iter (± 22287) 1.01
css/lexer/bootstrap_5_1_3 5294397 ns/iter (± 1345) 5204588 ns/iter (± 1970) 1.02
css/lexer/foundation_6_7_4 4430480 ns/iter (± 1942) 4422476 ns/iter (± 664) 1.00
css/lexer/tailwind_3_1_1 832589 ns/iter (± 1064) 831378 ns/iter (± 163) 1.00
css/parser/bootstrap_5_1_3 20829521 ns/iter (± 76476) 20816347 ns/iter (± 237560) 1.00
css/parser/foundation_6_7_4 16567884 ns/iter (± 99304) 16668787 ns/iter (± 32224) 0.99
css/parser/tailwind_3_1_1 3176364 ns/iter (± 4244) 3204606 ns/iter (± 2034) 0.99
es/codegen/colors 329680 ns/iter (± 184846) 332353 ns/iter (± 187006) 0.99
es/codegen/large 1182777 ns/iter (± 622177) 1219032 ns/iter (± 641085) 0.97
es/codegen/with-parser/colors 46282 ns/iter (± 571) 46715 ns/iter (± 325) 0.99
es/codegen/with-parser/large 509706 ns/iter (± 1189) 506480 ns/iter (± 411) 1.01
es/minify/libraries/antd 1443201278 ns/iter (± 11134617) 1385381917 ns/iter (± 10520553) 1.04
es/minify/libraries/d3 263062941 ns/iter (± 4030406) 253367360 ns/iter (± 3354890) 1.04
es/minify/libraries/echarts 1118892274 ns/iter (± 13258413) 1080117681 ns/iter (± 6375569) 1.04
es/minify/libraries/jquery 79336000 ns/iter (± 707113) 78409572 ns/iter (± 1416555) 1.01
es/minify/libraries/lodash 96203524 ns/iter (± 1356989) 95028746 ns/iter (± 836837) 1.01
es/minify/libraries/moment 46132988 ns/iter (± 276261) 45777114 ns/iter (± 316658) 1.01
es/minify/libraries/react 17032411 ns/iter (± 105579) 16837223 ns/iter (± 127537) 1.01
es/minify/libraries/terser 224684421 ns/iter (± 5263064) 210695529 ns/iter (± 3528083) 1.07
es/minify/libraries/three 386802015 ns/iter (± 11712309) 367481763 ns/iter (± 13703054) 1.05
es/minify/libraries/typescript 2670702179 ns/iter (± 17271442) 2607184630 ns/iter (± 13527567) 1.02
es/minify/libraries/victory 612550617 ns/iter (± 15456865) 578948185 ns/iter (± 10237271) 1.06
es/minify/libraries/vue 118163466 ns/iter (± 791823) 116733196 ns/iter (± 2789559) 1.01
es/visitor/compare/clone 2377105 ns/iter (± 6000) 2366215 ns/iter (± 5004) 1.00
es/visitor/compare/visit_mut_span 2784082 ns/iter (± 11064) 2766216 ns/iter (± 10355) 1.01
es/visitor/compare/visit_mut_span_panic 2855541 ns/iter (± 12670) 2823263 ns/iter (± 3382) 1.01
es/visitor/compare/fold_span 3993358 ns/iter (± 15501) 3941578 ns/iter (± 11259) 1.01
es/visitor/compare/fold_span_panic 4128730 ns/iter (± 38593) 4097220 ns/iter (± 14976) 1.01
es/lexer/colors 17279 ns/iter (± 12) 17170 ns/iter (± 8) 1.01
es/lexer/angular 8252055 ns/iter (± 3146) 8195061 ns/iter (± 2182) 1.01
es/lexer/backbone 1077242 ns/iter (± 880) 1066388 ns/iter (± 167) 1.01
es/lexer/jquery 5972601 ns/iter (± 2571) 5929621 ns/iter (± 3102) 1.01
es/lexer/jquery mobile 9198875 ns/iter (± 2473) 9125641 ns/iter (± 2120) 1.01
es/lexer/mootools 4692382 ns/iter (± 1374) 4647670 ns/iter (± 1289) 1.01
es/lexer/underscore 899938 ns/iter (± 498) 891573 ns/iter (± 397) 1.01
es/lexer/three 27983400 ns/iter (± 7991) 27787887 ns/iter (± 15303) 1.01
es/lexer/yui 5068481 ns/iter (± 899) 5030765 ns/iter (± 1447) 1.01
es/parser/colors 30806 ns/iter (± 173) 31009 ns/iter (± 118) 0.99
es/parser/angular 15892215 ns/iter (± 239113) 15858942 ns/iter (± 174885) 1.00
es/parser/backbone 2345273 ns/iter (± 12319) 2309672 ns/iter (± 18014) 1.02
es/parser/jquery 12824505 ns/iter (± 91030) 12455559 ns/iter (± 51287) 1.03
es/parser/jquery mobile 20612933 ns/iter (± 286441) 19820014 ns/iter (± 216435) 1.04
es/parser/mootools 9800594 ns/iter (± 66239) 9549809 ns/iter (± 30820) 1.03
es/parser/underscore 1985133 ns/iter (± 9691) 1953362 ns/iter (± 11069) 1.02
es/parser/three 60842547 ns/iter (± 408585) 58428359 ns/iter (± 615282) 1.04
es/parser/yui 9727303 ns/iter (± 53548) 9642140 ns/iter (± 268352) 1.01
es/preset-env/usage/builtin_type 139245 ns/iter (± 30597) 140135 ns/iter (± 31477) 0.99
es/preset-env/usage/property 20815 ns/iter (± 64) 21224 ns/iter (± 77) 0.98
es/resolver/typescript 114447016 ns/iter (± 2676735) 109811832 ns/iter (± 2489055) 1.04
es/fixer/typescript 86452482 ns/iter (± 1153462) 83878150 ns/iter (± 727500) 1.03
es/hygiene/typescript 174423600 ns/iter (± 850439) 168969600 ns/iter (± 1159775) 1.03
es/resolver_with_hygiene/typescript 306291203 ns/iter (± 2537269) 304512736 ns/iter (± 1018250) 1.01
es/visitor/base-perf/module_clone 76643 ns/iter (± 981) 75764 ns/iter (± 1746) 1.01
es/visitor/base-perf/fold_empty 87266 ns/iter (± 2015) 85924 ns/iter (± 721) 1.02
es/visitor/base-perf/fold_noop_impl_all 86814 ns/iter (± 1435) 85790 ns/iter (± 2078) 1.01
es/visitor/base-perf/fold_noop_impl_vec 88744 ns/iter (± 1892) 85525 ns/iter (± 761) 1.04
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 55 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed_clone 59 ns/iter (± 0) 59 ns/iter (± 0) 1
es/visitor/base-perf/boxing_boxed 104 ns/iter (± 0) 102 ns/iter (± 0) 1.02
es/visitor/base-perf/boxing_unboxed 102 ns/iter (± 0) 102 ns/iter (± 0) 1
es/visitor/base-perf/visit_contains_this 3404 ns/iter (± 76) 3482 ns/iter (± 46) 0.98
es/base/parallel/resolver/typescript 4894920999 ns/iter (± 579865225) 5360428418 ns/iter (± 457821744) 0.91
es/base/parallel/hygiene/typescript 2001982186 ns/iter (± 31707831) 2007298291 ns/iter (± 39971285) 1.00
misc/visitors/time-complexity/time 5 104 ns/iter (± 0) 93 ns/iter (± 0) 1.12
misc/visitors/time-complexity/time 10 320 ns/iter (± 0) 327 ns/iter (± 1) 0.98
misc/visitors/time-complexity/time 15 656 ns/iter (± 0) 633 ns/iter (± 1) 1.04
misc/visitors/time-complexity/time 20 1256 ns/iter (± 5) 1190 ns/iter (± 1) 1.06
misc/visitors/time-complexity/time 40 6707 ns/iter (± 49) 6150 ns/iter (± 3) 1.09
misc/visitors/time-complexity/time 60 17411 ns/iter (± 12) 15492 ns/iter (± 6) 1.12
es/full-target/es2016 187654 ns/iter (± 381) 187977 ns/iter (± 899) 1.00
es/full-target/es2017 182503 ns/iter (± 606) 182934 ns/iter (± 577) 1.00
es/full-target/es2018 171248 ns/iter (± 629) 172136 ns/iter (± 618) 0.99
es2020_nullish_coalescing 67388 ns/iter (± 168) 66947 ns/iter (± 151) 1.01
es2020_optional_chaining 96241 ns/iter (± 9822) 95247 ns/iter (± 418) 1.01
es2022_class_properties 93737 ns/iter (± 137) 93308 ns/iter (± 239) 1.00
es2018_object_rest_spread 71619 ns/iter (± 193) 71581 ns/iter (± 160) 1.00
es2019_optional_catch_binding 61340 ns/iter (± 95) 61058 ns/iter (± 145) 1.00
es2017_async_to_generator 61981 ns/iter (± 69) 61580 ns/iter (± 131) 1.01
es2016_exponentiation 65413 ns/iter (± 191) 64922 ns/iter (± 56) 1.01
es2015_arrow 70140 ns/iter (± 248) 70306 ns/iter (± 165) 1.00
es2015_block_scoped_fn 66063 ns/iter (± 82) 65930 ns/iter (± 200) 1.00
es2015_block_scoping 151877 ns/iter (± 10263) 154924 ns/iter (± 7364) 0.98
es2015_classes 117860 ns/iter (± 1281) 116924 ns/iter (± 293) 1.01
es2015_computed_props 61483 ns/iter (± 134) 60845 ns/iter (± 88) 1.01
es2015_destructuring 116100 ns/iter (± 240) 115306 ns/iter (± 313) 1.01
es2015_duplicate_keys 64231 ns/iter (± 152) 63732 ns/iter (± 84) 1.01
es2015_parameters 79477 ns/iter (± 193) 79783 ns/iter (± 165) 1.00
es2015_fn_name 66761 ns/iter (± 498) 66357 ns/iter (± 427) 1.01
es2015_for_of 64693 ns/iter (± 168) 64116 ns/iter (± 110) 1.01
es2015_instanceof 63069 ns/iter (± 120) 63531 ns/iter (± 144) 0.99
es2015_shorthand_property 61364 ns/iter (± 147) 61125 ns/iter (± 123) 1.00
es2015_spread 61212 ns/iter (± 116) 61004 ns/iter (± 80) 1.00
es2015_sticky_regex 62228 ns/iter (± 83) 62549 ns/iter (± 132) 0.99
es2015_typeof_symbol 62697 ns/iter (± 100) 62350 ns/iter (± 153) 1.01
es/transform/baseline/base 52167 ns/iter (± 94) 52092 ns/iter (± 206) 1.00
es/transform/baseline/common_reserved_word 62827 ns/iter (± 127) 62616 ns/iter (± 163) 1.00
es/transform/baseline/common_typescript 161131 ns/iter (± 11484) 168709 ns/iter (± 331) 0.96
es/target/es3 169991 ns/iter (± 410) 169646 ns/iter (± 431) 1.00
es/target/es2015 630926 ns/iter (± 1374) 627921 ns/iter (± 1857) 1.00
es/target/es2016 65324 ns/iter (± 136) 64934 ns/iter (± 161) 1.01
es/target/es2017 62021 ns/iter (± 65) 61697 ns/iter (± 62) 1.01
es/target/es2018 81288 ns/iter (± 163) 81795 ns/iter (± 116) 0.99
es/target/es2020 132564 ns/iter (± 381) 132380 ns/iter (± 205) 1.00
babelify-only 679346 ns/iter (± 850) 672299 ns/iter (± 791) 1.01
parse_and_babelify_angular 45032063 ns/iter (± 1090603) 41482742 ns/iter (± 849963) 1.09
parse_and_babelify_backbone 5437625 ns/iter (± 88408) 5313844 ns/iter (± 45877) 1.02
parse_and_babelify_jquery 32414936 ns/iter (± 478245) 30992425 ns/iter (± 428708) 1.05
parse_and_babelify_jquery_mobile 56354795 ns/iter (± 1010097) 53646758 ns/iter (± 1799129) 1.05
parse_and_babelify_mootools 33442299 ns/iter (± 423654) 31926663 ns/iter (± 280134) 1.05
parse_and_babelify_underscore 4336825 ns/iter (± 36269) 4317496 ns/iter (± 21820) 1.00
parse_and_babelify_yui 32155178 ns/iter (± 348015) 31540989 ns/iter (± 461646) 1.02
html/minify/document/css_spec 42684249 ns/iter (± 456091) 41431301 ns/iter (± 259692) 1.03
html/minify/document/github 17578749 ns/iter (± 62634) 17356511 ns/iter (± 21430) 1.01
html/minify/document/stackoverflow 15574775 ns/iter (± 50597) 15543975 ns/iter (± 32420) 1.00
html/minify/document_fragment/css_spec 41164182 ns/iter (± 460212) 39620135 ns/iter (± 178896) 1.04
html/minify/document_fragment/github 16916464 ns/iter (± 41301) 16745228 ns/iter (± 21360) 1.01
html/minify/document_fragment/stackoverflow 15291404 ns/iter (± 58735) 15054899 ns/iter (± 21017) 1.02
html/document/visitor/compare/clone 342035 ns/iter (± 2175) 332699 ns/iter (± 2525) 1.03
html/document/visitor/compare/visit_mut_span 369528 ns/iter (± 2148) 360141 ns/iter (± 2031) 1.03
html/document/visitor/compare/visit_mut_span_panic 376362 ns/iter (± 1847) 370809 ns/iter (± 2034) 1.01
html/document/visitor/compare/fold_span 403565 ns/iter (± 2585) 404478 ns/iter (± 2299) 1.00
html/document/visitor/compare/fold_span_panic 461980 ns/iter (± 2598) 456420 ns/iter (± 2083) 1.01
html/document_fragment/visitor/compare/clone 334749 ns/iter (± 2535) 333923 ns/iter (± 1380) 1.00
html/document_fragment/visitor/compare/visit_mut_span 362905 ns/iter (± 2652) 366854 ns/iter (± 1896) 0.99
html/document_fragment/visitor/compare/visit_mut_span_panic 376074 ns/iter (± 1986) 373233 ns/iter (± 2000) 1.01
html/document_fragment/visitor/compare/fold_span 407813 ns/iter (± 1962) 402661 ns/iter (± 1661) 1.01
html/document_fragment/visitor/compare/fold_span_panic 456154 ns/iter (± 1671) 454591 ns/iter (± 1233) 1.00
html/lexer/css_2021_spec 15568580 ns/iter (± 178950) 15556328 ns/iter (± 6220) 1.00
html/lexer/github_com_17_05_2022 6043556 ns/iter (± 4967) 6023585 ns/iter (± 1879) 1.00
html/lexer/stackoverflow_com_17_05_2022 5631129 ns/iter (± 2196) 5646068 ns/iter (± 7517) 1.00
html/parser/parser_document/css_2021_spec 25915284 ns/iter (± 158784) 25574138 ns/iter (± 297482) 1.01
html/parser/parser_document/github_com_17_05_2022 8729926 ns/iter (± 10733) 8745845 ns/iter (± 6790) 1.00
html/parser/parser_document/stackoverflow_com_17_05_2022 7681607 ns/iter (± 7130) 7695139 ns/iter (± 9099) 1.00
html/parser/parser_document_fragment/css_2021_spec 26021554 ns/iter (± 385360) 25617785 ns/iter (± 124990) 1.02
html/parser/parser_document_fragment/github_com_17_05_2022 8735735 ns/iter (± 23248) 8745094 ns/iter (± 25883) 1.00
html/parser/parser_document_fragment/stackoverflow_com_17_05_2022 7746366 ns/iter (± 12712) 7790547 ns/iter (± 5417) 0.99

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

Please sign in to comment.