<!DOCTYPE html>
<div>Tests for a crash due to modifying the DOM during mutation events due to an adoptNode call. If this page doesn't crash and DOMSubtreeModified is fire, this test succeeds.</div>
<div id="result"></div>
<div id="node-to-adopt"></div>
<iframe></iframe>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

var nodeToAdopt = document.getElementById('node-to-adopt');

var mutationHandler = function() {
    document.body.removeEventListener('DOMSubtreeModified', mutationHandler, true);
    document.getElementById('result').innerHTML = "DOMSubtreeModified fired";
    document.body.appendChild(nodeToAdopt);
};
document.body.addEventListener('DOMSubtreeModified', mutationHandler, true);

var iframe = document.querySelector('iframe');
var iframeDoc = iframe.contentDocument;
iframeDoc.adoptNode(nodeToAdopt);
// The crash happens when the iframe's document is getting detached.
document.body.removeChild(iframe);
</script>
