1<!DOCTYPE html> 2<meta charset="utf-8"> 3<title>Listeners are invoked in correct order (AT_TARGET phase)</title> 4<script src="/resources/testharness.js"></script> 5<script src="/resources/testharnessreport.js"></script> 6<div id="log"></div> 7<script> 8"use strict"; 9 10test(() => { 11 const el = document.createElement("div"); 12 const expectedOrder = ["capturing", "bubbling"]; 13 14 let actualOrder = []; 15 el.addEventListener("click", evt => { 16 assert_equals(evt.eventPhase, Event.AT_TARGET); 17 actualOrder.push("bubbling"); 18 }, false); 19 el.addEventListener("click", evt => { 20 assert_equals(evt.eventPhase, Event.AT_TARGET); 21 actualOrder.push("capturing"); 22 }, true); 23 24 el.dispatchEvent(new Event("click", {bubbles: true})); 25 assert_array_equals(actualOrder, expectedOrder, "bubbles: true"); 26 27 actualOrder = []; 28 el.dispatchEvent(new Event("click", {bubbles: false})); 29 assert_array_equals(actualOrder, expectedOrder, "bubbles: false"); 30}, "Listeners are invoked in correct order (AT_TARGET phase)"); 31</script> 32