tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

testReallyDeepNestedExit.js (985B)


      1 function reallyDeepNestedExit(schedule)
      2 {
      3    var c = 0, j = 0;
      4    for (var i = 0; i < 5; i++) {
      5        for (j = 0; j < 4; j++) {
      6            c += (schedule[i*4 + j] == 1) ? 1 : 2;
      7        }
      8    }
      9    return c;
     10 }
     11 function testReallyDeepNestedExit()
     12 {
     13    var c = 0;
     14    var schedule1 = new Array(5*4);
     15    var schedule2 = new Array(5*4);
     16    for (var i = 0; i < 5*4; i++) {
     17        schedule1[i] = 0;
     18        schedule2[i] = 0;
     19    }
     20    /**
     21     * First innermost compile: true branch runs through.
     22     * Second '': false branch compiles new loop edge.
     23     * First outer compile: expect true branch.
     24     * Second '': hit false branch.
     25     */
     26    schedule1[0*4 + 3] = 1;
     27    var schedules = [schedule1,
     28                     schedule2,
     29                     schedule1,
     30                     schedule2,
     31                     schedule2];
     32 
     33    for (var i = 0; i < 5; i++) {
     34        c += reallyDeepNestedExit(schedules[i]);
     35    }
     36    return c;
     37 }
     38 assertEq(testReallyDeepNestedExit(), 198);