<html>
<script>
function handleTimeout()
{
    i++;
    w.status = i;
    
    if (i == 2) {
        if (window.testRunner)
            testRunner.notifyDone();
    }
    
    setTimeout(handleTimeout, 1);    
}

function runTest()
{
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
        testRunner.setCanOpenWindows();
    }
    
    i = 0;
    w = open('about:blank');
    w.close();
    setTimeout(handleTimeout, 1);
}
</script>
<body onload="runTest()">
<p>This tests that setting properties on a closed window object does not crash.</p>
<p>SUCCESS - Didn't crash</p>
</body>
</html>
