40 lines
1.1 KiB
HTML
40 lines
1.1 KiB
HTML
<!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>
|