summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/bigint/bigint-mod-bailout.js
blob: 91deab5116049657e7d9f5b31590f0422d57b06b (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
// |jit-test| --ion-warmup-threshold=20

function testBailout() {
  function f(v, r) {
    for (var i = 0; i < 50; ++i) {
      // Ensure DCE and LICM don't eliminate modulus 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();