|
|
@@ -74,10 +74,11 @@ this.cssRulesMinifier = this.cssRulesMinifier || (() => {
|
|
|
mediaRuleIndex++;
|
|
|
} else if (cssRuleData.type == "Rule") {
|
|
|
const ruleInfo = mediaInfo.rules.get(cssRuleData);
|
|
|
- if (!ruleInfo && !mediaInfo.pseudoSelectors.has(cssRuleData)) {
|
|
|
+ const pseudoSelectors = mediaInfo.pseudoRules.get(cssRuleData);
|
|
|
+ if (!ruleInfo && !pseudoSelectors) {
|
|
|
removedCssRules.push(cssRule);
|
|
|
} else if (ruleInfo) {
|
|
|
- processRuleInfo(cssRuleData, ruleInfo);
|
|
|
+ processRuleInfo(cssRuleData, ruleInfo, pseudoSelectors);
|
|
|
if (!cssRuleData.prelude.children.getSize() || !cssRuleData.block.children.getSize()) {
|
|
|
removedCssRules.push(cssRule);
|
|
|
}
|
|
|
@@ -91,7 +92,7 @@ this.cssRulesMinifier = this.cssRulesMinifier || (() => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function processRuleInfo(cssRule, ruleInfo) {
|
|
|
+ function processRuleInfo(cssRule, ruleInfo, pseudoSelectors) {
|
|
|
const removedDeclarations = [];
|
|
|
const removedSelectors = [];
|
|
|
for (let declaration = cssRule.block.children.head; declaration; declaration = declaration.next) {
|
|
|
@@ -100,7 +101,8 @@ this.cssRulesMinifier = this.cssRulesMinifier || (() => {
|
|
|
}
|
|
|
}
|
|
|
for (let selector = cssRule.prelude.children.head; selector; selector = selector.next) {
|
|
|
- if (!ruleInfo.matchedSelectors.has(cssTree.generate(selector.data))) {
|
|
|
+ const selectorText = cssTree.generate(selector.data);
|
|
|
+ if (!ruleInfo.matchedSelectors.has(selectorText) && (!pseudoSelectors || !pseudoSelectors.has(selectorText))) {
|
|
|
removedSelectors.push(selector);
|
|
|
}
|
|
|
}
|