summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/testNestedExitStackOuter.js
blob: 5da8a1f968a5dfbde358d9105cd5b4a751943bfc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// 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);