summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/dense-elements-hole-negative.js
blob: cf63da92e0927cc69c303b73c421813e6723593b (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
// The index is negative before code generation.

let v = {};
let negativeIndex = -1;

function f(obj) {
  assertEq(obj[negativeIndex] === v, true);
}
for (let i = 0; i < 2000; i++) {
  let obj = {};
  obj[1] = {};
  obj[negativeIndex] = v;
  f(obj);
}

// The sign of the index changes after the code generation.

function g(obj, i) {
  for (let j = 0; j < 4; j++) {
    assertEq(obj[i-j] === v, true);
  }
}
for (let i = 0; i < 2000; i++) {
  let obj = {};
  obj[1] = {};
  let X = 2000 - i;
  for (let j = 0; j < 10; j++) {
    obj[X-j] = v;
  }
  g(obj, X);
}