<!DOCTYPE html>
<script src="../../../resources/js-test-pre.js"></script>
<script>
window.jsTestIsAsync = true;

description('Test that MutationObservers created during delivery must wait for the next loop.');
function finish() {
    shouldBe('order.length', '4');
    shouldBe('order[0]', '1');
    shouldBe('order[1]', '2');
    shouldBe('order[2]', '1');
    shouldBe('order[3]', '3');
    finishJSTest();
}

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(finish, 0);
</script>
<script src="../../../resources/js-test-post.js"></script>
