Skip to content

Commit 535e880

Browse files
committed
don't confuse -- in selectors for css vars. close #31.
1 parent ba0ad7d commit 535e880

6 files changed

Lines changed: 27 additions & 15 deletions

File tree

dist/dropcss.cjs.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -812,7 +812,7 @@ function removeBackwards(css, defs, used, shouldDrop, type) {
812812
return css;
813813
}
814814

815-
var CUSTOM_PROP_DEF = /(--[\w-]+)\s*:\s*([^;}]+);?\s*/gm;
815+
var CUSTOM_PROP_DEF = /([{};])\s*(--[\w-]+)\s*:\s*([^;}]+);?\s*/gm;
816816
var CUSTOM_PROP_USE = /var\(([\w-]+)\)/gm;
817817
var COMMA_SPACED = /\s*,\s*/gm;
818818

@@ -823,7 +823,7 @@ function resolveCustomProps(css) {
823823
while (CUSTOM_PROP_USE.test(css)) {
824824
// get all defs
825825
while (m = CUSTOM_PROP_DEF.exec(css))
826-
{ defs[m[1]] = m[2]; }
826+
{ defs[m[2]] = m[3]; }
827827

828828
// replace any non-composites
829829
css = css.replace(CUSTOM_PROP_USE, function (m0, m1) { return !CUSTOM_PROP_USE.test(defs[m1]) ? defs[m1] : m0; });
@@ -919,7 +919,7 @@ function dropCssVars(css, shouldDrop) {
919919

920920
do {
921921
css = css2;
922-
css2 = css.replace(CUSTOM_PROP_DEF, function (m, m1) { return css.indexOf('var(' + m1 + ')') != -1 ? m : ''; });
922+
css2 = css.replace(CUSTOM_PROP_DEF, function (m, m1, m2) { return css.indexOf('var(' + m2 + ')') != -1 ? m : m1; });
923923
} while (css2 != css);
924924

925925
return css2;
@@ -931,7 +931,7 @@ function postProc$1(out, shouldDrop, log, START) {
931931
// this is used for testing for "used" keyframes and fonts and
932932
// parsing resolved 'font-family:' names from @font-face defs,
933933
// so does not need to be regenerated during iterative purging
934-
var flatCss = resolveCustomProps(out).replace(CUSTOM_PROP_DEF, '');
934+
var flatCss = resolveCustomProps(out).replace(CUSTOM_PROP_DEF, function (m, m1) { return m1; });
935935

936936
out = dropKeyFrames(out, flatCss, shouldDrop);
937937

dist/dropcss.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -816,7 +816,7 @@
816816
return css;
817817
}
818818

819-
var CUSTOM_PROP_DEF = /(--[\w-]+)\s*:\s*([^;}]+);?\s*/gm;
819+
var CUSTOM_PROP_DEF = /([{};])\s*(--[\w-]+)\s*:\s*([^;}]+);?\s*/gm;
820820
var CUSTOM_PROP_USE = /var\(([\w-]+)\)/gm;
821821
var COMMA_SPACED = /\s*,\s*/gm;
822822

@@ -827,7 +827,7 @@
827827
while (CUSTOM_PROP_USE.test(css)) {
828828
// get all defs
829829
while (m = CUSTOM_PROP_DEF.exec(css))
830-
{ defs[m[1]] = m[2]; }
830+
{ defs[m[2]] = m[3]; }
831831

832832
// replace any non-composites
833833
css = css.replace(CUSTOM_PROP_USE, function (m0, m1) { return !CUSTOM_PROP_USE.test(defs[m1]) ? defs[m1] : m0; });
@@ -923,7 +923,7 @@
923923

924924
do {
925925
css = css2;
926-
css2 = css.replace(CUSTOM_PROP_DEF, function (m, m1) { return css.indexOf('var(' + m1 + ')') != -1 ? m : ''; });
926+
css2 = css.replace(CUSTOM_PROP_DEF, function (m, m1, m2) { return css.indexOf('var(' + m2 + ')') != -1 ? m : m1; });
927927
} while (css2 != css);
928928

929929
return css2;
@@ -935,7 +935,7 @@
935935
// this is used for testing for "used" keyframes and fonts and
936936
// parsing resolved 'font-family:' names from @font-face defs,
937937
// so does not need to be regenerated during iterative purging
938-
var flatCss = resolveCustomProps(out).replace(CUSTOM_PROP_DEF, '');
938+
var flatCss = resolveCustomProps(out).replace(CUSTOM_PROP_DEF, function (m, m1) { return m1; });
939939

940940
out = dropKeyFrames(out, flatCss, shouldDrop);
941941

0 commit comments

Comments
 (0)