<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<link rel="stylesheet" href="../../../js/resources/js-test-style.css">
<script src="../../../js/resources/js-test-pre.js"></script>
</head>
<body>
<p id="description"></p>
<div id="console"></div>
<script>

function checkForLeftoverProperties(string, object)
{
    var array = new Array;
    for (var property in object) {
        array.push(property);
    }
    array.sort();
    for (var i = 0; i < array.length; ++i) {
        var property = array[i];
        shouldBeFalse(string + '.' + property + ' == "LEFTOVER"');
    }
}

checkForLeftoverProperties("history", window.history);
checkForLeftoverProperties("location", location);
checkForLeftoverProperties("locationbar", locationbar);
checkForLeftoverProperties("menubar", menubar);
checkForLeftoverProperties("personalbar", personalbar);
checkForLeftoverProperties("screen", screen);
checkForLeftoverProperties("scrollbars", scrollbars);
checkForLeftoverProperties("statusbar", statusbar);
checkForLeftoverProperties("toolbar", toolbar);

shouldBeUndefined('window.event');

var successfullyParsed = true;
</script>
<script src="../../../js/resources/js-test-post.js"></script>
<script>
if (window.layoutTestController)
    layoutTestController.notifyDone();
</script>
</body>
</html>
