%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
<!DOCTYPE html> <meta charset=utf-8> <title>EventTarget.dispatchEvent</title> <link rel="author" title="Olli Pettay" href="mailto:Olli.Pettay@gmail.com"> <link rel="author" title="Ms2ger" href="mailto:Ms2ger@gmail.com"> <link rel="help" href="https://dom.spec.whatwg.org/#dom-eventtarget-dispatchevent"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/dom/nodes/Document-createEvent.js"></script> <div id="log"></div> <script> setup({ "allow_uncaught_exception": true, }) test(function() { assert_throws_js(TypeError, function() { document.dispatchEvent(null) }) }, "Calling dispatchEvent(null).") for (var alias in aliases) { test(function() { var e = document.createEvent(alias) assert_equals(e.type, "", "Event type should be empty string before initialization") assert_throws_dom("InvalidStateError", function() { document.dispatchEvent(e) }) }, "If the event's initialized flag is not set, an InvalidStateError must be thrown (" + alias + ").") } var dispatch_dispatch = async_test("If the event's dispatch flag is set, an InvalidStateError must be thrown.") dispatch_dispatch.step(function() { var e = document.createEvent("Event") e.initEvent("type", false, false) var target = document.createElement("div") target.addEventListener("type", dispatch_dispatch.step_func(function() { assert_throws_dom("InvalidStateError", function() { target.dispatchEvent(e) }) assert_throws_dom("InvalidStateError", function() { document.dispatchEvent(e) }) }), false) assert_equals(target.dispatchEvent(e), true, "dispatchEvent must return true") dispatch_dispatch.done() }) test(function() { // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17713 // https://www.w3.org/Bugs/Public/show_bug.cgi?id=17714 var e = document.createEvent("Event") e.initEvent("type", false, false) var called = [] var target = document.createElement("div") target.addEventListener("type", function() { called.push("First") throw new Error() }, false) target.addEventListener("type", function() { called.push("Second") }, false) assert_equals(target.dispatchEvent(e), true, "dispatchEvent must return true") assert_array_equals(called, ["First", "Second"], "Should have continued to call other event listeners") }, "Exceptions from event listeners must not be propagated.") async_test(function() { var results = [] var outerb = document.createElement("b") var middleb = outerb.appendChild(document.createElement("b")) var innerb = middleb.appendChild(document.createElement("b")) outerb.addEventListener("x", this.step_func(function() { middleb.addEventListener("x", this.step_func(function() { results.push("middle") }), true) results.push("outer") }), true) innerb.dispatchEvent(new Event("x")) assert_array_equals(results, ["outer", "middle"]) this.done() }, "Event listeners added during dispatch should be called"); async_test(function() { var results = [] var b = document.createElement("b") b.addEventListener("x", this.step_func(function() { results.push(1) }), true) b.addEventListener("x", this.step_func(function() { results.push(2) }), false) b.addEventListener("x", this.step_func(function() { results.push(3) }), true) b.dispatchEvent(new Event("x")) assert_array_equals(results, [1, 3, 2]) this.done() }, "Capturing event listeners should be called before non-capturing ones") </script>