<p>This test checks for a NULL document crash that can happen when calling
location.assign. If the test passes, you'll see a PASS message below.</p>
<hr>
<pre id="pre"></pre>
<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()
{
    frames[0].location.assign("javascript:'<script>parent.pass()</script>'");
}

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

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

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

main();
-->
</script>
