<p>
This page tests for correct behavior in the case of a global object that has
had a property deleted. If the test passes, you'll see a PASS message below.
</p>

<pre id="console"></pre>

<script>
(function() {
    if (window.testRunner)
        testRunner.dumpAsText();

    function log(s)
    {
        if (this.document)
            document.getElementById("console").appendChild(document.createTextNode(s + "\n"));
        else
            print(s + "\n");
    }

    function shouldBe(a, aDescription, b)
    {
        if (a === b) {
            log("PASS: " + aDescription + " should be " + b + " and is.");
        } else {
            log("FAIL: " + aDescription + " should be " + b + " but instead is " + a + ".");
        }
    }

    a = 1;
    delete a;
    y = "";
    window.__defineGetter__("x", function() { return y; });
    x;
    window.__defineGetter__("y", function() { return 42; });

    shouldBe(x, "x", 42);
})();
</script>
