<p>This test checks for a NULL document crash that can happen when calling
window.open. If the test passes, you'll see a PASS message below.</p>
<hr>
<pre id="pre"></pre>
<iframe name="iframe" style="visibility:hidden" src="does-not-exist.bogus"></iframe> <!-- forces asynchronous load -->
<script>
<!--
function log(s)
{
    document.getElementById("pre").appendChild(document.createTextNode(s));
}

function test()
{
    window.open("javascript:'<script>parent.pass()</script>'", "iframe");
}

function pass()
{
    log("PASS: You didn't crash.");

    if (window.layoutTestController)
        layoutTestController.notifyDone();
}

function main()
{
    if (window.layoutTestController) {
        layoutTestController.dumpAsText();
        layoutTestController.waitUntilDone();
    }    
    
    // setTimeout forces execution in the context of the frame
    frames[0].setTimeout(test, 0);
}

main();
-->
</script>
