Просмотр исходного кода

catch exceptions when parsing selectors

Gildas 7 лет назад
Родитель
Сommit
4239d333cd
1 измененных файлов с 7 добавлено и 3 удалено
  1. 7 3
      lib/single-file/css-rules-matcher.js

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

@@ -70,9 +70,13 @@ this.RulesMatcher = this.RulesMatcher || (() => {
 				getMatchedElementsRules(doc, cssRule.cssRules, ruleMediaInfo, sheetIndex, matchedElementsCache, unmatchedSelectorsCache);
 			} else if (cssRule.type == CSSRule.STYLE_RULE) {
 				if (cssRule.selectorText) {
-					let selectors = cssWhat.parse(cssRule.selectorText);
-					const selectorsText = selectors.map(selector => cssWhat.stringify([selector]));
-					selectors.forEach((selector, selectorIndex) => getMatchedElementsSelector(doc, cssRule, selector, selectorsText[selectorIndex], selectorsText, mediaInfo, ruleIndex, sheetIndex, matchedElementsCache, unmatchedSelectorsCache));
+					try {
+						let selectors = cssWhat.parse(cssRule.selectorText);
+						const selectorsText = selectors.map(selector => cssWhat.stringify([selector]));
+						selectors.forEach((selector, selectorIndex) => getMatchedElementsSelector(doc, cssRule, selector, selectorsText[selectorIndex], selectorsText, mediaInfo, ruleIndex, sheetIndex, matchedElementsCache, unmatchedSelectorsCache));
+					} catch (error) {
+						/* ignored */
+					}
 				}
 			}
 		});