@@ -935,12 +935,18 @@ void function() { try {
935935 let keyframe = rule . cssRules [ index ] ;
936936 var atrulesUsageForKeyframeOfSelector = atrulesUsageForSelector . keyframes ;
937937
938- if ( keyframe . keyText ) {
939- if ( ! atrulesUsageForKeyframeOfSelector [ keyframe . keyText ] ) {
940- atrulesUsageForKeyframeOfSelector [ keyframe . keyText ] = { "count" : 1 } ;
938+ if ( ! keyframe . keyText ) {
939+ continue ;
940+ }
941+
942+ var frames = keyframe . keyText . split ( ', ' ) ;
943+
944+ for ( let frame of frames ) {
945+ if ( ! atrulesUsageForKeyframeOfSelector [ frame ] ) {
946+ atrulesUsageForKeyframeOfSelector [ frame ] = { "count" : 1 } ;
941947 } else {
942- var keyframeCount = atrulesUsageForKeyframeOfSelector [ keyframe . keyText ] . count ;
943- atrulesUsageForKeyframeOfSelector [ keyframe . keyText ] . count = keyframeCount + 1 ;
948+ var keyframeCount = atrulesUsageForKeyframeOfSelector [ frame ] . count ;
949+ atrulesUsageForKeyframeOfSelector [ frame ] . count = keyframeCount + 1 ;
944950 }
945951 }
946952 }
@@ -1455,6 +1461,20 @@ void function() { try {
14551461 continue ;
14561462 }
14571463
1464+ if ( ruleBody . selector ) {
1465+ try {
1466+ var selectorText = CssPropertyValuesAnalyzer . cleanSelectorText ( ruleBody . selectorText ) ;
1467+ var matchedElements = [ ] . slice . call ( document . querySelectorAll ( selectorText ) ) ;
1468+
1469+ if ( matchedElements . length == 0 ) {
1470+ continue ;
1471+ }
1472+ } catch ( ex ) {
1473+ console . warn ( ex . stack || ( "Invalid selector: " + selectorText + " -- via " + ruleBody . selectorText ) ) ;
1474+ continue ;
1475+ }
1476+ }
1477+
14581478 let cssText = ' ' + style . cssText . toLowerCase ( ) ;
14591479
14601480 for ( var i = style . length ; i -- ; ) {
@@ -1781,6 +1801,8 @@ void function() { try {
17811801 delete cssUsageRules [ key ] ;
17821802 }
17831803 }
1804+
1805+ delete CSSUsageResults . atrules [ "@atrule:8" ] ; // delete duplicated data from atrule:7, keyframe
17841806 }
17851807 } ( ) ;
17861808
0 commit comments