<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();
    }
    
    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>
