2 <script src=
"../../../resources/js-test.js"></script>
4 window
.jsTestIsAsync
= true;
6 description('Test that MutationObservers are delivered to in order of creation.');
8 shouldBe('order.length', '10');
9 shouldBe('order[0]', '0');
10 shouldBe('order[1]', '1');
11 shouldBe('order[2]', '2');
12 shouldBe('order[3]', '3');
13 shouldBe('order[4]', '4');
14 shouldBe('order[5]', '5');
15 shouldBe('order[6]', '6');
16 shouldBe('order[7]', '7');
17 shouldBe('order[8]', '8');
18 shouldBe('order[9]', '9');
25 function setUpOrdering(num
) {
26 observers
.push(new MutationObserver(function(mutations
) {
31 for (var i
= 0; i
< 10; ++i
) {
35 var div
= document
.createElement('div');
36 observers
[3].observe(div
, {attributes
: true});
37 observers
[2].observe(div
, {characterData
: true, subtree
: true});
38 observers
[1].observe(div
, {attributes
: true});
39 observers
[7].observe(div
, {childList
: true});
40 observers
[4].observe(div
, {attributes
: true});
41 observers
[9].observe(div
, {attributes
: true});
42 observers
[0].observe(div
, {childList
: true});
43 observers
[5].observe(div
, {attributes
: true});
44 observers
[6].observe(div
, {characterData
: true, subtree
: true});
45 observers
[8].observe(div
, {attributes
: true});
46 div
.setAttribute('foo', 'bar');
47 div
.appendChild(document
.createTextNode('hello'));
48 div
.firstChild
.textContent
= 'goodbye';
49 setTimeout(finish
, 0);