aboutsummaryrefslogtreecommitdiff
path: root/js/src/dom/selectorEngine.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/dom/selectorEngine.js')
-rw-r--r--js/src/dom/selectorEngine.js12
1 files changed, 8 insertions, 4 deletions
diff --git a/js/src/dom/selectorEngine.js b/js/src/dom/selectorEngine.js
index f6f3fe82f..1c98c15ae 100644
--- a/js/src/dom/selectorEngine.js
+++ b/js/src/dom/selectorEngine.js
@@ -16,8 +16,9 @@ if (!Element.prototype.matches) {
}
// closest polyfill (see: https://mzl.la/2vXggaI)
+let fnClosest = null
if (!Element.prototype.closest) {
- Element.prototype.closest = (element, selector) => {
+ fnClosest = (element, selector) => {
let ancestor = element
if (!document.documentElement.contains(element)) {
return null
@@ -33,10 +34,13 @@ if (!Element.prototype.closest) {
return null
}
+} else {
+ // eslint-disable-next-line arrow-body-style
+ fnClosest = (element, selector) => {
+ return element.closest(selector)
+ }
}
-const fnClosest = Element.prototype.closest
-
const SelectorEngine = {
matches(element, selector) {
return fnMatches.call(element, selector)
@@ -56,7 +60,7 @@ const SelectorEngine = {
},
closest(element, selector) {
- return fnClosest.call(element, selector)
+ return fnClosest(element, selector)
}
}