summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/bigint/bigint-div-bailout.js
blob: 4e9bf7ff386400fa75a4ee9ad7a7be599f19503a (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
30
31
setJitCompilerOption("ion.warmup.trigger", 20);

function testBailout() {
  function f(v, r) {
    for (var i = 0; i < 50; ++i) {
      // Ensure DCE and LICM don't eliminate divisions when the divisor is zero.
      if (i === 0) {
        r();
      }
      1n / v;
      1n / v;
      1n / v;
    }
  }

  var result = [];
  function r() {
    result.push("ok");
  }

  do {
    result.length = 0;
    try {
      f(1n, r);
      f(1n, r);
      f(0n, r);
    } catch (e) {}
    assertEq(result.length, 3);
  } while (!inIon());
}
testBailout();