function workaround() {
    var node = document.createElement('div');

    function matches(element, selector) {
        if (method.call(element, selector)) {
            return true;
        } else if (!element.parentNode) {
            // If node is not attached, temporarily attach to node
            node.appendChild(element);
            var result = method.call(element, selector);
            node.removeChild(element);
            return result;
        } else {
            return false;
        }
    }

    return matches;
}
function workaround() {
    var node = document.createElement('div');

    function matches(element, selector) {
        if (method.call(element, selector)) {
            return true;
        } else if (!element.parentNode) {
            
            node.appendChild(element);
            var result = method.call(element, selector);
            node.removeChild(element);
            return result;
        } else {
            return false;
        }
    }

    return matches;
}
function workaround ( ) { var node = document . createElement ( 'div' ) ; function matches ( element , selector ) { if ( method . call ( element , selector ) ) { return true ; } else if ( ! element . parentNode ) { // If node is not attached, temporarily attach to node node . appendChild ( element ) ; var result = method . call ( element , selector ) ; node . removeChild ( element ) ; return result ; } else { return false ; } } return matches ; }
Return a workaround function to fix the bug. Note that this will slow down matching, but only if the bug exists in this browser.
Return a workaround function to fix the bug . Note that this will slow down matching but only if the bug exists in this browser .