docs: function matches(node, query) {
    return (node.matches =
      node.matchesSelector ||
      node.mozMatchesSelector ||
      node.msMatchesSelector ||
      node.oMatchesSelector ||
      node.webkitMatchesSelector ||
      function(s) {
        const matches = (this.document || this.ownerDocument).querySelectorAll(s);
        let i = matches.length;
        while (--i >= 0 && matches.item(i) !== this) {}
        return i > -1;
      }).call(node, query);
  }