summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/auto-regress/bug1875487.js
blob: e682652330e334e1f7327dc6ee64e26a4281a47e (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
function f(i) {
  // Add use of the boxed Int32 parameter |i| as a Double.
  (2 ** i);

  // This call into |g| will get inlined and an inline-arguments object will be
  // created. |i| was unboxed to Double earlier, but we must not store the
  // unboxed Double into the inline-arguments object, because other uses of the
  // boxed Int32 |i| may expect Int32 inputs.
  return g(i);
}

function g(i) {
  // Add use of aliased |i| as an Int32.
  if (i) {
    // Add use |arguments| to make |i| an aliased variable which gets stored in
    // the inline-arguments object.
    return arguments;
  }
}

// Don't inline |f| into the top-level script.
with ({});

for (let i = 0; i < 4000; i++) {
  f(i);
}