Pārlūkot izejas kodu

removed Array#find usage

Gildas 7 gadi atpakaļ
vecāks
revīzija
d62db5de8a
1 mainītis faili ar 9 papildinājumiem un 3 dzēšanām
  1. 9 3
      lib/single-file/css-rules-matcher.js

+ 9 - 3
lib/single-file/css-rules-matcher.js

@@ -120,9 +120,15 @@ this.RulesMatcher = this.RulesMatcher || (() => {
 					ruleInfo = elementInfo[elementRuleIndex];
 				}
 				if (ruleInfo) {
-					if (compareSpecificity(ruleInfo.specificity, specificity) == 1 && !IGNORED_PSEUDO_CLASSES.find(pseudoClass => selectorText.includes(pseudoClass))) {
-						ruleInfo.specificity = specificity;
-						ruleInfo.selectorText = selectorText;
+					if (compareSpecificity(ruleInfo.specificity, specificity) == 1) {
+						let pseudoClassIndex = 0;
+						while (pseudoClassIndex < IGNORED_PSEUDO_CLASSES.length && !selectorText.includes(IGNORED_PSEUDO_CLASSES[pseudoClassIndex])) {
+							pseudoClassIndex++;
+						}
+						if (pseudoClassIndex < IGNORED_PSEUDO_CLASSES.length && selectorText.includes(IGNORED_PSEUDO_CLASSES[pseudoClassIndex])) {
+							ruleInfo.specificity = specificity;
+							ruleInfo.selectorText = selectorText;
+						}
 					}
 				} else {
 					ruleInfo = { cssRule, specificity, selectorText, selectorsText };