| <html> |
| <import src="../resources/chai.sky" /> |
| <import src="../resources/mocha.sky" /> |
| <script> |
| window.jsTestIsAsync = true; |
| |
| describe('MutationObservers', function() { |
| it ('must wait for the next loop when created during delivery', function(done) { |
| var order = []; |
| var div = document.createElement('div'); |
| |
| var observer3; |
| var observer1 = new MutationObserver(function(mutations) { |
| order.push(1); |
| if (!observer3) { |
| observer3 = new MutationObserver(function(mutations) { |
| order.push(3); |
| }); |
| observer3.observe(div, {attributes: true}); |
| div.setAttribute('foo', 'baz'); |
| } |
| }); |
| var observer2 = new MutationObserver(function(mutations) { |
| order.push(2); |
| }); |
| |
| observer1.observe(div, {attributes: true}); |
| observer2.observe(div, {attributes: true}); |
| div.setAttribute('foo', 'bar'); |
| setTimeout(function() { |
| assert.deepEqual(order, [1, 2, 1, 3]); |
| done(); |
| }, 0); |
| }); |
| }); |
| </script> |
| </html> |