WebKit export of https://bugs.webkit.org/show_bug.cgi?id=233834 (#31893)

diff --git a/dom/events/event-global.html b/dom/events/event-global.html
index 5cb1b14..3e8d25e 100644
--- a/dom/events/event-global.html
+++ b/dom/events/event-global.html
@@ -5,6 +5,8 @@
 <script src="/resources/testharnessreport.js"></script>
 <div id=log></div>
 <script>
+setup({allow_uncaught_exception: true});
+
 test(t => {
   assert_own_property(window, "event");
   assert_equals(window.event, undefined);
@@ -63,6 +65,30 @@
 }, "window.event is undefined if the target is in a shadow tree (event dispatched inside shadow tree)");
 
 async_test(t => {
+  let parent = document.createElement("div");
+  let root = parent.attachShadow({mode: "open"});
+  document.body.append(parent)
+  let span = document.createElement("span");
+  root.append(span);
+  let shadowNode = root.firstElementChild;
+
+  shadowNode.addEventListener("error", t.step_func(e => {
+    assert_not_equals(window.event, e);
+    assert_equals(window.event, undefined);
+  }));
+
+  let windowOnErrorCalled = false;
+  window.onerror = t.step_func_done(() => {
+    windowOnErrorCalled = true;
+    assert_equals(typeof window.event, "object");
+    assert_equals(window.event.type, "error");
+  });
+
+  shadowNode.dispatchEvent(new ErrorEvent("error", {composed: true, bubbles: true}));
+  assert_true(windowOnErrorCalled);
+}, "window.event is undefined inside window.onerror if the target is in a shadow tree (ErrorEvent dispatched inside shadow tree)");
+
+async_test(t => {
   let target1 = document.createElement("div");
   let target2 = document.createElement("div");