"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = matches; var _inDOM = _interopRequireDefault(require("../util/inDOM")); var _querySelectorAll = _interopRequireDefault(require("./querySelectorAll")); var matchesCache; function matches(node, selector) { if (!matchesCache && _inDOM.default) { var body = document.body; var nativeMatch = body.matches || body.matchesSelector || body.webkitMatchesSelector || body.mozMatchesSelector || body.msMatchesSelector; matchesCache = nativeMatch ? function (node, selector) { return nativeMatch.call(node, selector); } : ie8MatchesSelector; } return matchesCache ? matchesCache(node, selector) : null; } function ie8MatchesSelector(node, selector) { var matches = (0, _querySelectorAll.default)(node.document || node.ownerDocument, selector), i = 0; while (matches[i] && matches[i] !== node) { i++; } return !!matches[i]; } module.exports = exports["default"];