summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/cacheir/array-slice.js
blob: 2ed43926ffd60ee1791484fffdf9b01714eda68c (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
32
33
34
35
36
37
38
39
function packed() {
  var a = [0, 1, 2, 3];
  for (var i = 0; i <= 100; ++i) {
    var r = a.slice(0);
    assertEq(r.length, 4);
  }
}

for (var i = 0; i < 2; ++i) {
  packed();
}

function packedThenUnpacked() {
  var a = [0, 1, 2, 3];
  var q = 0;
  for (var i = 0; i <= 100; ++i) {
    if (i === 100) a[10] = 0;

    var r = a.slice(0);
    assertEq(r.length, i < 100 ? 4 : 11);
  }
}

for (var i = 0; i < 2; ++i) {
  packedThenUnpacked();
}

function unpacked() {
  var a = [0, 1, /* hole */ , 3];
  for (var i = 0; i <= 100; ++i) {
    var r = a.slice(0);
    assertEq(r.length, 4);
    assertEq(2 in r, false);
  }
}

for (var i = 0; i < 2; ++i) {
  unpacked();
}