<p>This page tests the evaluated value of a while expression.</p>
<pre id="console"></pre>

<script>
if (window.layoutTestController)
    layoutTestController.dumpAsText();

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

function shouldBe(a, b)
{
    var evalA;
    try {
        evalA = eval(a);
    } catch(e) {
        evalA = e;
    }
    
    if (evalA === b) {
        log("PASS: " + a + " should be " + b + " and is.");
    } else {
        log("FAIL: " + a + " should be " + b + " but instead is " + evalA + ".");
    }
}

var x, condition;

condition = true;
x = eval("while (condition) { condition = false; 1; }");
shouldBe("x", 1);

condition = true;
var x = eval("while (condition) { condition = false; 1; break; }");
shouldBe("x", 1);

condition = true;
var x = eval("while (condition) { condition = false; 1; continue; }");
shouldBe("x", 1);

condition = true;
var x = eval("while (condition) { condition = false; 1; ; }");
shouldBe("x", 1);

</script>
