| <!DOCTYPE html> |
| <div id="sandbox" style="display:none"><span></span></div> |
| <script src="../../../resources/js-test-pre.js"></script> |
| <script> |
| description("Test MutationEvents interfering with MutationObservers: adding nodes 'out of order'"); |
| var sandbox = document.getElementById('sandbox'); |
| var inserted = false; |
| sandbox.addEventListener('DOMNodeRemoved', function() { |
| if (!inserted) { |
| sandbox.appendChild(document.createElement('div')); |
| inserted = true; |
| } |
| }); |
| var observer = new MutationObserver(function(){}); |
| observer.observe(sandbox, {childList: true}); |
| sandbox.textContent = 'hello world'; |
| |
| var mutations = observer.takeRecords(); |
| shouldBe("mutations.length", "3"); |
| shouldBe("mutations[0].addedNodes.length", "0"); |
| shouldBe("mutations[0].removedNodes.length", "1"); |
| shouldBe("mutations[0].removedNodes[0].tagName", "'SPAN'"); |
| shouldBe("mutations[1].addedNodes.length", "1"); |
| shouldBe("mutations[1].removedNodes.length", "0"); |
| shouldBe("mutations[1].addedNodes[0].tagName", "'DIV'"); |
| shouldBe("mutations[2].addedNodes.length", "1"); |
| shouldBe("mutations[2].removedNodes.length", "0"); |
| shouldBe("mutations[2].addedNodes[0].nodeValue", "'hello world'"); |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |