<p>This test checks for a crash when removing an iframe with scrollbars from a document. See &lt;rdar://problem/5061807&gt;.</p>
<p>If the test passes, you'll see a PASS message below.</p>
<hr>
<pre id="console"></pre>
<iframe id="iframe" src="data:text/html,<body style='overflow-x: hidden'><div style='height:1000px'</body>" style="width:152px; height:300px"></iframe>

<script>
function log(s)
{
    document.getElementById("console").appendChild(document.createTextNode(s));
}

var iframe = document.getElementById("iframe");

function destroyIframe()
{
    iframe.parentNode.removeChild(iframe);
    log("PASS: Yout didn't crash.");
    testRunner.notifyDone();
}

iframe.onload = function() { setTimeout(destroyIframe, 0); }
testRunner.dumpAsText();
testRunner.waitUntilDone();
</script>
