// Tests for IFEQX and GOTOX ops.
function testIfElse() {
    var src =
        "var a = 0;\n" +
        "if (x) {\n";
    for (var i=0; i<7000; i++) {
        src += "a = 1;";
    }
    src += "} else {\n";
    for (var i=0; i<7000; i++) {
        src += "a = 2;";
    }
    src += "}\n";
    src += "return a;";

    var f = new Function("x", src);
    assertEq(f(true), 1);
    assertEq(f(false), 2);
    assertEq(f([1, 2, 3]), 1);
    assertEq(f(), 2);
}
testIfElse();

function testWhile() {
    var src =
        "var i = 0, j = 0;\n" +
        "while (i++ < 50) {\n";
    for (var i=0; i<5000; i++) {
        src += "j = i;";
    }
    src += "}\n";
    src += "return j;";

    var f = new Function(src);
    assertEq(f(), 50);
}
testWhile();