Skip to content

Commit

Permalink
fix(css/codegen): Preserve raw of numbers (#7131)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Mar 23, 2023
1 parent 42f7143 commit 150c2b6
Show file tree
Hide file tree
Showing 18 changed files with 525 additions and 523 deletions.
2 changes: 2 additions & 0 deletions crates/swc_css_codegen/src/lib.rs
Expand Up @@ -1680,6 +1680,8 @@ where
let minified = minify_numeric(n.value);

write_raw!(self, n.span, &minified);
} else if let Some(raw) = &n.raw {
write_raw!(self, n.span, raw);
} else {
write_raw!(self, n.span, &n.value.to_string());
}
Expand Down
4 changes: 2 additions & 2 deletions crates/swc_css_codegen/tests/fixture/function/1/output.css
@@ -1,6 +1,6 @@
div {
color: rgb(255, 255, 255);
color: rgb(255, 255, 255, 0.5);
color: rgb(255, 255, 255, .5);
color: rgb(255 255 255);
color: rgb(255 255 255/ 0.5);
color: rgb(255 255 255/ .5);
}
Expand Up @@ -142,7 +142,7 @@ nav ul li ul {
display: none;
height: auto;
left: -2px;
padding: 0.5rem 1rem;
padding: .5rem 1rem;
position: absolute;
top: 1.7rem;
white-space: nowrap;
Expand Down
30 changes: 15 additions & 15 deletions crates/swc_css_codegen/tests/fixture/packages/pure_2_0_6/output.css
Expand Up @@ -254,7 +254,7 @@ html {
}
.pure-u-1-8,
.pure-u-3-24 {
width: 12.5%;
width: 12.5000%;
}
.pure-u-1-6,
.pure-u-4-24 {
Expand All @@ -279,7 +279,7 @@ html {
}
.pure-u-3-8,
.pure-u-9-24 {
width: 37.5%;
width: 37.5000%;
}
.pure-u-2-5 {
width: 40%;
Expand Down Expand Up @@ -307,7 +307,7 @@ html {
}
.pure-u-5-8,
.pure-u-15-24 {
width: 62.5%;
width: 62.5000%;
}
.pure-u-2-3,
.pure-u-16-24 {
Expand All @@ -332,7 +332,7 @@ html {
}
.pure-u-7-8,
.pure-u-21-24 {
width: 87.5%;
width: 87.5000%;
}
.pure-u-11-12,
.pure-u-22-24 {
Expand Down Expand Up @@ -384,7 +384,7 @@ html {
font-family: inherit;
font-size: 100%;
padding: 0.5em 1em;
color: rgba(0, 0, 0, 0.8);
color: rgba(0, 0, 0, 0.80);
border: none rgba(0, 0, 0, 0);
background-color: #e6e6e6;
text-decoration: none;
Expand All @@ -393,16 +393,16 @@ html {
.pure-button-hover,
.pure-button:hover,
.pure-button:focus {
background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(40%, rgba(0, 0, 0, 0.05)), to(rgba(0, 0, 0, 0.1)));
background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.1));
background-image: -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(40%, rgba(0, 0, 0, 0.05)), to(rgba(0, 0, 0, 0.10)));
background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.05) 40%, rgba(0, 0, 0, 0.10));
}
.pure-button:focus {
outline: 0;
}
.pure-button-active,
.pure-button:active {
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset, 0 0 6px rgba(0, 0, 0, 0.2) inset;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset, 0 0 6px rgba(0, 0, 0, 0.2) inset;
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset, 0 0 6px rgba(0, 0, 0, 0.20) inset;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.15) inset, 0 0 6px rgba(0, 0, 0, 0.20) inset;
border-color: #000;
}
.pure-button[disabled],
Expand All @@ -412,7 +412,7 @@ html {
.pure-button-disabled:active {
border: none;
background-image: none;
opacity: 0.4;
opacity: 0.40;
cursor: not-allowed;
-webkit-box-shadow: none;
box-shadow: none;
Expand Down Expand Up @@ -845,18 +845,18 @@ a.pure-button-selected {
white-space: nowrap;
overflow-y: hidden;
overflow-x: auto;
padding: 0.5em 0;
padding: .5em 0;
}
.pure-menu-separator,
.pure-menu-horizontal .pure-menu-children .pure-menu-separator {
background-color: #ccc;
height: 1px;
margin: 0.3em 0;
margin: .3em 0;
}
.pure-menu-horizontal .pure-menu-separator {
width: 1px;
height: 1.3em;
margin: 0 0.3em;
margin: 0 .3em;
}
.pure-menu-horizontal .pure-menu-children .pure-menu-separator {
display: block;
Expand All @@ -874,10 +874,10 @@ a.pure-button-selected {
}
.pure-menu-link,
.pure-menu-heading {
padding: 0.5em 1em;
padding: .5em 1em;
}
.pure-menu-disabled {
opacity: 0.5;
opacity: .5;
}
.pure-menu-disabled .pure-menu-link:hover {
background-color: transparent;
Expand Down

1 comment on commit 150c2b6

@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: 150c2b6 Previous: dfe1a3f Ratio
es/full/bugs-1 306309 ns/iter (± 10598) 299338 ns/iter (± 12160) 1.02
es/full/minify/libraries/antd 1544331036 ns/iter (± 23836829) 1530115211 ns/iter (± 22055664) 1.01
es/full/minify/libraries/d3 297905755 ns/iter (± 9277237) 286425213 ns/iter (± 5395147) 1.04
es/full/minify/libraries/echarts 1189776727 ns/iter (± 20333102) 1158154835 ns/iter (± 18380567) 1.03
es/full/minify/libraries/jquery 90570410 ns/iter (± 701335) 88933628 ns/iter (± 832663) 1.02
es/full/minify/libraries/lodash 105047033 ns/iter (± 821945) 103476316 ns/iter (± 963530) 1.02
es/full/minify/libraries/moment 52333234 ns/iter (± 322107) 51822978 ns/iter (± 390190) 1.01
es/full/minify/libraries/react 19088112 ns/iter (± 128857) 18860386 ns/iter (± 133921) 1.01
es/full/minify/libraries/terser 246278714 ns/iter (± 2059315) 236310603 ns/iter (± 3340804) 1.04
es/full/minify/libraries/three 429377063 ns/iter (± 5787317) 418281429 ns/iter (± 6421719) 1.03
es/full/minify/libraries/typescript 2952679163 ns/iter (± 22958557) 2867710124 ns/iter (± 23607323) 1.03
es/full/minify/libraries/victory 636812459 ns/iter (± 12551148) 635776845 ns/iter (± 7474258) 1.00
es/full/minify/libraries/vue 130622693 ns/iter (± 1354843) 128648918 ns/iter (± 1868562) 1.02
es/full/codegen/es3 28414 ns/iter (± 56) 29011 ns/iter (± 37) 0.98
es/full/codegen/es5 28402 ns/iter (± 58) 29071 ns/iter (± 108) 0.98
es/full/codegen/es2015 28451 ns/iter (± 88) 28721 ns/iter (± 285) 0.99
es/full/codegen/es2016 28459 ns/iter (± 87) 28874 ns/iter (± 277) 0.99
es/full/codegen/es2017 28487 ns/iter (± 75) 28677 ns/iter (± 287) 0.99
es/full/codegen/es2018 28404 ns/iter (± 66) 28770 ns/iter (± 289) 0.99
es/full/codegen/es2019 28480 ns/iter (± 40) 29032 ns/iter (± 258) 0.98
es/full/codegen/es2020 28422 ns/iter (± 68) 29012 ns/iter (± 199) 0.98
es/full/all/es3 182764945 ns/iter (± 3474970) 181516665 ns/iter (± 2436416) 1.01
es/full/all/es5 174606539 ns/iter (± 2124503) 173602577 ns/iter (± 3464624) 1.01
es/full/all/es2015 139853870 ns/iter (± 2481156) 137590364 ns/iter (± 1567222) 1.02
es/full/all/es2016 136235429 ns/iter (± 1955167) 134337214 ns/iter (± 1447116) 1.01
es/full/all/es2017 135653999 ns/iter (± 1430636) 132406237 ns/iter (± 1994064) 1.02
es/full/all/es2018 131222362 ns/iter (± 2801201) 127966435 ns/iter (± 1983365) 1.03
es/full/all/es2019 130767849 ns/iter (± 1986608) 126490191 ns/iter (± 1786442) 1.03
es/full/all/es2020 120358561 ns/iter (± 859006) 118710883 ns/iter (± 397802) 1.01
es/full/parser 541288 ns/iter (± 6884) 524403 ns/iter (± 9090) 1.03
es/full/base/fixer 22549 ns/iter (± 30) 21978 ns/iter (± 160) 1.03
es/full/base/resolver_and_hygiene 84239 ns/iter (± 102) 82210 ns/iter (± 579) 1.02
serialization of ast node 123 ns/iter (± 7) 123 ns/iter (± 0) 1
serialization of serde 129 ns/iter (± 0) 126 ns/iter (± 1) 1.02
css/minify/libraries/bootstrap 28572222 ns/iter (± 185171) 27980381 ns/iter (± 107003) 1.02
css/visitor/compare/clone 2100638 ns/iter (± 15670) 2054204 ns/iter (± 27558) 1.02
css/visitor/compare/visit_mut_span 2282154 ns/iter (± 6753) 2246346 ns/iter (± 9641) 1.02
css/visitor/compare/visit_mut_span_panic 2332024 ns/iter (± 8079) 2289427 ns/iter (± 16979) 1.02
css/visitor/compare/fold_span 3037640 ns/iter (± 24973) 3038809 ns/iter (± 30977) 1.00
css/visitor/compare/fold_span_panic 3187967 ns/iter (± 19918) 3135893 ns/iter (± 16670) 1.02
css/lexer/bootstrap_5_1_3 5184516 ns/iter (± 31029) 5050544 ns/iter (± 38395) 1.03
css/lexer/foundation_6_7_4 4362809 ns/iter (± 7304) 4264020 ns/iter (± 35343) 1.02
css/lexer/tailwind_3_1_1 828896 ns/iter (± 4466) 804012 ns/iter (± 6722) 1.03
css/parser/bootstrap_5_1_3 21859507 ns/iter (± 99910) 21353661 ns/iter (± 103150) 1.02
css/parser/foundation_6_7_4 17447895 ns/iter (± 123322) 17258018 ns/iter (± 153604) 1.01
css/parser/tailwind_3_1_1 3343045 ns/iter (± 4598) 3307935 ns/iter (± 23661) 1.01
es/codegen/colors 333070 ns/iter (± 187836) 325653 ns/iter (± 183528) 1.02
es/codegen/large 1250270 ns/iter (± 641727) 1186953 ns/iter (± 606530) 1.05
es/codegen/with-parser/colors 47880 ns/iter (± 382) 47724 ns/iter (± 210) 1.00
es/codegen/with-parser/large 530934 ns/iter (± 1996) 519214 ns/iter (± 2890) 1.02
es/minify/libraries/antd 1336352812 ns/iter (± 16265901) 1313201326 ns/iter (± 13370580) 1.02
es/minify/libraries/d3 250237666 ns/iter (± 3015893) 244929442 ns/iter (± 1775034) 1.02
es/minify/libraries/echarts 1023353452 ns/iter (± 6295699) 979353645 ns/iter (± 9432930) 1.04
es/minify/libraries/jquery 78506161 ns/iter (± 482505) 76709294 ns/iter (± 637465) 1.02
es/minify/libraries/lodash 94934344 ns/iter (± 1302753) 91731419 ns/iter (± 815951) 1.03
es/minify/libraries/moment 45568085 ns/iter (± 198539) 44708116 ns/iter (± 203309) 1.02
es/minify/libraries/react 17182166 ns/iter (± 165280) 16764520 ns/iter (± 114239) 1.02
es/minify/libraries/terser 209222932 ns/iter (± 2836854) 200114929 ns/iter (± 941911) 1.05
es/minify/libraries/three 354293010 ns/iter (± 4659703) 337938084 ns/iter (± 4402559) 1.05
es/minify/libraries/typescript 2462938138 ns/iter (± 7532195) 2400982735 ns/iter (± 14377269) 1.03
es/minify/libraries/victory 551092666 ns/iter (± 13309865) 507667367 ns/iter (± 5053215) 1.09
es/minify/libraries/vue 115660795 ns/iter (± 1088275) 111340534 ns/iter (± 743384) 1.04
es/visitor/compare/clone 2292927 ns/iter (± 19514) 2276307 ns/iter (± 19092) 1.01
es/visitor/compare/visit_mut_span 2662100 ns/iter (± 9043) 2634171 ns/iter (± 8989) 1.01
es/visitor/compare/visit_mut_span_panic 2718794 ns/iter (± 7833) 2639557 ns/iter (± 13613) 1.03
es/visitor/compare/fold_span 3791228 ns/iter (± 7867) 3708498 ns/iter (± 23530) 1.02
es/visitor/compare/fold_span_panic 3935086 ns/iter (± 21009) 3864488 ns/iter (± 21378) 1.02
es/lexer/colors 15802 ns/iter (± 24) 14958 ns/iter (± 160) 1.06
es/lexer/angular 7706225 ns/iter (± 3629) 7204283 ns/iter (± 57825) 1.07
es/lexer/backbone 987703 ns/iter (± 335) 962677 ns/iter (± 6907) 1.03
es/lexer/jquery 5558041 ns/iter (± 2935) 5532024 ns/iter (± 10802) 1.00
es/lexer/jquery mobile 8563667 ns/iter (± 15288) 8515450 ns/iter (± 32218) 1.01
es/lexer/mootools 4405167 ns/iter (± 1440) 4371988 ns/iter (± 21527) 1.01
es/lexer/underscore 828422 ns/iter (± 191) 827526 ns/iter (± 5228) 1.00
es/lexer/three 26184632 ns/iter (± 97682) 26094930 ns/iter (± 39349) 1.00
es/lexer/yui 4736239 ns/iter (± 1412) 4653500 ns/iter (± 40661) 1.02
es/parser/colors 29320 ns/iter (± 48) 29909 ns/iter (± 213) 0.98
es/parser/angular 16164085 ns/iter (± 191455) 15329675 ns/iter (± 111139) 1.05
es/parser/backbone 2251989 ns/iter (± 13392) 2230130 ns/iter (± 15381) 1.01
es/parser/jquery 12328424 ns/iter (± 110230) 12167794 ns/iter (± 148246) 1.01
es/parser/jquery mobile 19813236 ns/iter (± 326616) 18793347 ns/iter (± 127951) 1.05
es/parser/mootools 9360948 ns/iter (± 25111) 9251594 ns/iter (± 62386) 1.01
es/parser/underscore 1902482 ns/iter (± 9573) 1897340 ns/iter (± 27860) 1.00
es/parser/three 56960006 ns/iter (± 340948) 53733442 ns/iter (± 998298) 1.06
es/parser/yui 9370159 ns/iter (± 85883) 9312505 ns/iter (± 61649) 1.01
es/preset-env/usage/builtin_type 137314 ns/iter (± 31332) 143319 ns/iter (± 34393) 0.96
es/preset-env/usage/property 21021 ns/iter (± 83) 21297 ns/iter (± 89) 0.99
es/resolver/typescript 115440637 ns/iter (± 1890716) 112709102 ns/iter (± 2124692) 1.02
es/fixer/typescript 79870747 ns/iter (± 1762029) 75937954 ns/iter (± 1266193) 1.05
es/hygiene/typescript 170987935 ns/iter (± 2190356) 161456485 ns/iter (± 1616487) 1.06
es/resolver_with_hygiene/typescript 317424798 ns/iter (± 1680812) 303116370 ns/iter (± 3519440) 1.05
es/visitor/base-perf/module_clone 78496 ns/iter (± 1025) 80482 ns/iter (± 1580) 0.98
es/visitor/base-perf/fold_empty 88543 ns/iter (± 1541) 89906 ns/iter (± 1165) 0.98
es/visitor/base-perf/fold_noop_impl_all 90254 ns/iter (± 671) 90372 ns/iter (± 1557) 1.00
es/visitor/base-perf/fold_noop_impl_vec 89537 ns/iter (± 1485) 90005 ns/iter (± 1321) 0.99
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 57 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_unboxed_clone 53 ns/iter (± 0) 54 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_boxed 100 ns/iter (± 0) 103 ns/iter (± 0) 0.97
es/visitor/base-perf/boxing_unboxed 96 ns/iter (± 0) 97 ns/iter (± 0) 0.99
es/visitor/base-perf/visit_contains_this 3411 ns/iter (± 79) 3211 ns/iter (± 101) 1.06
es/base/parallel/resolver/typescript 6996883744 ns/iter (± 432104603) 5996723366 ns/iter (± 323289861) 1.17
es/base/parallel/hygiene/typescript 1969916963 ns/iter (± 33895076) 1955402935 ns/iter (± 24068907) 1.01
misc/visitors/time-complexity/time 5 93 ns/iter (± 0) 98 ns/iter (± 0) 0.95
misc/visitors/time-complexity/time 10 308 ns/iter (± 3) 335 ns/iter (± 3) 0.92
misc/visitors/time-complexity/time 15 620 ns/iter (± 19) 671 ns/iter (± 14) 0.92
misc/visitors/time-complexity/time 20 1134 ns/iter (± 16) 1239 ns/iter (± 11) 0.92
misc/visitors/time-complexity/time 40 5781 ns/iter (± 32) 6393 ns/iter (± 19) 0.90
misc/visitors/time-complexity/time 60 12953 ns/iter (± 126) 14187 ns/iter (± 59) 0.91
es/full-target/es2016 250053 ns/iter (± 245) 243908 ns/iter (± 1523) 1.03
es/full-target/es2017 242770 ns/iter (± 290) 240228 ns/iter (± 1099) 1.01
es/full-target/es2018 231911 ns/iter (± 198) 230531 ns/iter (± 1573) 1.01
es2020_nullish_coalescing 90951 ns/iter (± 562) 88908 ns/iter (± 968) 1.02
es2020_optional_chaining 123236 ns/iter (± 558) 120920 ns/iter (± 1264) 1.02
es2022_class_properties 147103 ns/iter (± 277) 141468 ns/iter (± 1776) 1.04
es2018_object_rest_spread 94693 ns/iter (± 152) 90677 ns/iter (± 661) 1.04
es2019_optional_catch_binding 84113 ns/iter (± 213) 81302 ns/iter (± 1000) 1.03
es2017_async_to_generator 84910 ns/iter (± 145) 82523 ns/iter (± 1212) 1.03
es2016_exponentiation 89031 ns/iter (± 226) 84931 ns/iter (± 532) 1.05
es2015_arrow 93385 ns/iter (± 182) 89959 ns/iter (± 952) 1.04
es2015_block_scoped_fn 90657 ns/iter (± 220) 87126 ns/iter (± 575) 1.04
es2015_block_scoping 168926 ns/iter (± 127) 161717 ns/iter (± 1849) 1.04

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

Please sign in to comment.