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

function runTest()
{
    if (window.layoutTestController) {
        layoutTestController.dumpAsText();
        layoutTestController.waitUntilDone();
        layoutTestController.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>
