<p>This page verifies that eval can be overridden.</p>
<p>If the test passes, you'll see a series of pass messages below.</p>
<pre id="console"></pre>
<hr>

<script>
if (window.testRunner)
    testRunner.dumpAsText();
    
var x = "built-in eval";

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

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

// Test overriding eval in global scope
eval = function() { return "global-scope eval override"; }
shouldBe('eval("x")', eval("x"), "global-scope eval override");

// Test overriding eval using "with"
with ({ eval: function() { return "with-scope eval override"; }}) {
    shouldBe('eval("x")', eval("x"), "with-scope eval override");
}

// Test overriding eval using "catch"
try {
    throw function() { return "catch-scope eval override"; };
} catch(eval) {
    shouldBe('eval("x")', eval("x"), "catch-scope eval override");
}

// Test overriding eval using locally declared function
(function()
{
    function eval() { return "local-scope eval override"; }
    shouldBe('eval("x")', eval("x"), "local-scope eval override");
})()
</script>
