function reallyDeepNestedExit(schedule) { var c = 0, j = 0; for (var i = 0; i < 5; i++) { for (j = 0; j < 4; j++) { c += (schedule[i*4 + j] == 1) ? 1 : 2; } } return c; } function testReallyDeepNestedExit() { var c = 0; var schedule1 = new Array(5*4); var schedule2 = new Array(5*4); for (var i = 0; i < 5*4; i++) { schedule1[i] = 0; schedule2[i] = 0; } /** * First innermost compile: true branch runs through. * Second '': false branch compiles new loop edge. * First outer compile: expect true branch. * Second '': hit false branch. */ schedule1[0*4 + 3] = 1; var schedules = [schedule1, schedule2, schedule1, schedule2, schedule2]; for (var i = 0; i < 5; i++) { c += reallyDeepNestedExit(schedules[i]); } return c; } assertEq(testReallyDeepNestedExit(), 198);