// 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();