function filterUnusedSelectors(selectors, ignore, usedSelectors) {
    /* There are some selectors not supported for matching, like
     *   :before, :after
     * They should be removed only if the parent is not found.
     * Example: '.clearfix:before' should be removed only if there
     *          is no '.clearfix'
     */
    return selectors.filter((selector) => {
        selector = dePseudify(selector);
        /* TODO: process @-rules */
        if (selector[0] === '@') {
            return true;
        }
        for (let i = 0, len = ignore.length; i < len; ++i) {
            if (_.isRegExp(ignore[i]) && ignore[i].test(selector)) {
                return true;
            }
            if (ignore[i] === selector) {
                return true;
            }
        }
        return usedSelectors.indexOf(selector) !== -1;
    });
}
function filterUnusedSelectors(selectors, ignore, usedSelectors) {
    
    return selectors.filter((selector) => {
        selector = dePseudify(selector);
        
        if (selector[0] === '@') {
            return true;
        }
        for (let i = 0, len = ignore.length; i < len; ++i) {
            if (_.isRegExp(ignore[i]) && ignore[i].test(selector)) {
                return true;
            }
            if (ignore[i] === selector) {
                return true;
            }
        }
        return usedSelectors.indexOf(selector) !== -1;
    });
}
function filterUnusedSelectors ( selectors , ignore , usedSelectors ) { /* There are some selectors not supported for matching, like
     *   :before, :after
     * They should be removed only if the parent is not found.
     * Example: '.clearfix:before' should be removed only if there
     *          is no '.clearfix'
     */ return selectors . filter ( ( selector ) => { selector = dePseudify ( selector ) ; /* TODO: process @-rules */ if ( selector [ 0 ] === '@' ) { return true ; } for ( let i = 0 , len = ignore . length ; i < len ; ++ i ) { if ( _ . isRegExp ( ignore [ i ] ) && ignore [ i ] . test ( selector ) ) { return true ; } if ( ignore [ i ] === selector ) { return true ; } } return usedSelectors . indexOf ( selector ) !== - 1 ; } ) ; }
Private function used in filterUnusedRules.
@param  {Array} selectors      CSS selectors created by the CSS parser
@param  {Array} ignore         List of selectors to be ignored
@param  {Array} usedSelectors  List of Selectors found in the jsdom pages
@return {Array}                The selectors matched in the DOMs
Private function used in filterUnusedRules .