Skip to content

Commit 757bd81

Browse files
committed
fixes a potential TypeError: this.element.contains is not a function error in ElementObserver
1 parent 422eb81 commit 757bd81

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/core/binding.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,17 @@ export class Binding {
9696

9797
if (this.element === eventTarget) {
9898
return true
99-
} else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {
99+
} else if (eventTarget instanceof Element && this.containsElement(eventTarget)) {
100100
return this.scope.containsElement(eventTarget)
101101
} else {
102102
return this.scope.containsElement(this.action.element)
103103
}
104104
}
105105

106+
private containsElement(element: Element): boolean {
107+
return HTMLElement.prototype.contains.call(this.element, element)
108+
}
109+
106110
private get controller(): Controller {
107111
return this.context.controller
108112
}

src/mutation-observers/element_observer.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ export class ElementObserver {
146146
if (element.isConnected != this.element.isConnected) {
147147
return false
148148
} else {
149-
return this.element.contains(element)
149+
return this.containsElement(element)
150150
}
151151
}
152152

@@ -171,4 +171,8 @@ export class ElementObserver {
171171
}
172172
}
173173
}
174+
175+
private containsElement(element: Element): boolean {
176+
return HTMLElement.prototype.contains.call(this.element, element)
177+
}
174178
}

0 commit comments

Comments
 (0)