| OLD | NEW |
| (Empty) | |
| 1 <!DOCTYPE html> |
| 2 <title>Event handler invocation order</title> |
| 3 <script src="../../../../../../resources/testharness.js"></script> |
| 4 <script src="../../../../../../resources/testharnessreport.js"></script> |
| 5 <div id="log"></div> |
| 6 <script> |
| 7 var objects = [{}, function() {}, new Number(42), new String()]; |
| 8 var primitives = [42, null, undefined, ""]; |
| 9 objects.forEach(function(object) { |
| 10 var t = async_test("Event handler listeners should be registered when they " + |
| 11 "are first set to an object value (" + |
| 12 format_value(object) + ")."); |
| 13 t.step(function() { |
| 14 var i = 0; |
| 15 var uncalled = "t.step(function() { assert_unreached('First event handler.')
})" |
| 16 var button = document.createElement('button'); |
| 17 button.onclick = object; // event handler listener is registered here |
| 18 button.addEventListener('click', t.step_func(function () { assert_equals(++i
, 2) }), false); |
| 19 button.setAttribute('onclick', uncalled); |
| 20 button.addEventListener('click', t.step_func(function () { assert_equals(++i
, 3) }), false); |
| 21 button.onclick = t.step_func(function () { assert_equals(++i, 1); }); |
| 22 button.addEventListener('click', t.step_func(function () { assert_equals(++i
, 4) }), false); |
| 23 button.click() |
| 24 assert_equals(button.getAttribute("onclick"), uncalled) |
| 25 assert_equals(i, 4); |
| 26 t.done() |
| 27 }); |
| 28 }); |
| 29 primitives.forEach(function(primitive) { |
| 30 var t = async_test("Event handler listeners should be registered when they " + |
| 31 "are first set to an object value (" + |
| 32 format_value(primitive) + ")."); |
| 33 t.step(function() { |
| 34 var i = 0; |
| 35 var uncalled = "t.step(function() { assert_unreached('First event handler.')
})" |
| 36 var button = document.createElement('button'); |
| 37 button.onclick = primitive; |
| 38 button.addEventListener('click', t.step_func(function () { assert_equals(++i
, 1) }), false); |
| 39 button.setAttribute('onclick', uncalled); // event handler listener is regis
tered here |
| 40 button.addEventListener('click', t.step_func(function () { assert_equals(++i
, 3) }), false); |
| 41 button.onclick = t.step_func(function () { assert_equals(++i, 2); }); |
| 42 button.addEventListener('click', t.step_func(function () { assert_equals(++i
, 4) }), false); |
| 43 button.click() |
| 44 assert_equals(button.getAttribute("onclick"), uncalled) |
| 45 assert_equals(i, 4); |
| 46 t.done() |
| 47 }); |
| 48 }); |
| 49 var t = async_test("Event handler listeners should be registered when they " + |
| 50 "are first set to an object value."); |
| 51 t.step(function() { |
| 52 var i = 0; |
| 53 var uncalled = "t.step(function() { assert_unreached('First event handler.') }
)" |
| 54 var button = document.createElement('button'); |
| 55 button.addEventListener('click', t.step_func(function () { assert_equals(++i,
1) }), false); |
| 56 button.setAttribute('onclick', uncalled); // event handler listener is registe
red here |
| 57 button.addEventListener('click', t.step_func(function () { assert_equals(++i,
3) }), false); |
| 58 button.onclick = t.step_func(function () { assert_equals(++i, 2); }); |
| 59 button.addEventListener('click', t.step_func(function () { assert_equals(++i,
4) }), false); |
| 60 button.click() |
| 61 assert_equals(button.getAttribute("onclick"), uncalled) |
| 62 assert_equals(i, 4); |
| 63 t.done() |
| 64 }); |
| 65 </script> |
| OLD | NEW |