blob: ebd4296075b9e57db86cf78d076f8c66158d30b9 [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script src="../../resources/js-test.js"></script>
<script>
description("Make sure that event targets do not get cleared after dispatching an event at the node that was not in a shadow tree but gets moved into a shadow tree by an event listener.");
host = document.createElement("div");
shadow = host.attachShadow({ mode: "open" });
child = document.createElement("trala");
host.appendChild(child);
counter = 0;
child.addEventListener("hi",(_e) => {
e = _e;
shouldBe("window.event", "e");
shouldBe("counter++", "0");
});
child.addEventListener("hi", (_e) => {
e = _e;
// Move the node into the shadow tree.
shadow.appendChild(child);
shouldBe("window.event", "e");
shouldBe("counter++", "1");
});
child.addEventListener("hi", (_e) => {
e = _e;
shouldBe("window.event", "e");
shouldBe("counter++", "2");
});
let event = new MouseEvent("hi", { composed: false, relatedTarget: document.body });
child.dispatchEvent(event);
shouldBe("counter", "3");
shouldBe("event.target", "child");
shouldBe("event.relatedTarget", "document.body");
</script>
</body>
</html>