summaryrefslogtreecommitdiff
path: root/js/src/jit-test/tests/pic/shape_regen.js
blob: 55b3ff1cfacc6fd67b94fd5ad3453d4fba88592c (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
// Try to test that we handle shape regeneration correctly.
// This is a fragile test, but as of this writing, on dmandelin's
// windows box, we have the same shape number with different
// logical shapes in the two assertEq lines.

var o;
var p;
var zz;
var o2;

function f(x) {
  return x.a;
}

gczeal(1);
gc();

zz = { q: 11 };
o = { a: 77, b: 88 };
o2 = { c: 11 };
p = { b: 99, a: 11 };

//print('s ' + shapeOf(zz) + ' ' + shapeOf(o) + ' ' + shapeOf(o2) + ' ' + shapeOf(p));

assertEq(f(o), 77);

o = undefined;

gczeal(1);
gc();
//print('s ' + 'x' + ' ' + shapeOf(p));

assertEq(f(p), 11);