summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/warp/trial-inline-gc-3.js
blob: 4e64a22167cd44bd619e44386aad02a36ccc38c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// |jit-test| --fast-warmup
function h(i) {
  if (i === 150) {
      with(this) {} // Don't inline.
      // Trigger an invalidation of f's IonScript (with g inlined into it) on
      // the stack. Before we bail out, replace g and trial-inline the new
      // function. The bailout must not get confused by this.
      gc(this, "shrinking");
      g = (i, x) => x + 20;
      f();
  }
}
function g(i, x) {
  h(i);
  return x + 1;
}
function f() {
  for (var i = 0; i < 300; i++) {
      g(i, "foo");
      g(i, 1);
  }
}
f();