Source code

Revision control

Copy as Markdown

Other Tools

// Test stack reconstruction after a nested exit
function testNestedExitStackInner(j, counter) {
++counter;
var b = 0;
for (var i = 1; i <= 9; i++) {
++b;
var a;
// Make sure that once everything has been traced we suddenly switch to
// a different control flow the first time we run the outermost tree,
// triggering a side exit.
if (j < 9)
a = 1;
else
a = 0;
++b;
b += a;
}
return counter + b;
}
function testNestedExitStackOuter() {
var counter = 0;
for (var j = 1; j <= 9; ++j) {
for (var k = 1; k <= 9; ++k) {
counter = testNestedExitStackInner(j, counter);
}
}
return counter;
}
//assertEq(testNestedExitStackOuter(), 81);