Source code
Revision control
Copy as Markdown
Other Tools
// 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();