From 2ea4662aeb7b3e10956a67768ca74b6aab764993 Mon Sep 17 00:00:00 2001 From: Raman Paulau Date: Tue, 31 Jan 2023 17:51:53 -0800 Subject: [PATCH] #709@patch: Properly detect ShadowRoot boundary when constructing `composedPath` for event. --- packages/happy-dom/src/event/Event.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/happy-dom/src/event/Event.ts b/packages/happy-dom/src/event/Event.ts index fead294bb..bdc465fcb 100644 --- a/packages/happy-dom/src/event/Event.ts +++ b/packages/happy-dom/src/event/Event.ts @@ -2,6 +2,7 @@ import IEventInit from './IEventInit'; import INode from '../nodes/node/INode'; import IWindow from '../window/IWindow'; import IShadowRoot from '../nodes/shadow-root/IShadowRoot'; +import ShadowRoot from '../nodes/shadow-root/ShadowRoot'; import IEventTarget from './IEventTarget'; /** @@ -69,8 +70,8 @@ export default class Event { composedPath.push(eventTarget); if (this.bubbles) { - if (this.composed && (eventTarget).host) { - eventTarget = (eventTarget).host; + if (this.composed && eventTarget instanceof ShadowRoot && eventTarget.host) { + eventTarget = eventTarget.host; } else if (((this.target)).ownerDocument === eventTarget) { eventTarget = ((this.target)).ownerDocument.defaultView; } else {