summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/basic/bug641525.js
blob: 4c7c8b85caae1a1d1a8c7425c139c92c09a5ae73 (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

var o2 = new Proxy({}, {});
function f1() {}
function f2() {}
function f4(o) {
    var key = Object.getOwnPropertyNames(o)[18];
    o4 = o[key];
    o.prototype = {};
}
f4(f1);
f4(f1);
f4(f2);
new f2(o2);

// these will hold only if type inference is enabled.
//assertEq(shapeOf(f1) == shapeOf(f2), false);
//assertEq(shapeOf(f1) == shapeOf(f4), false);

function factory() {
  function foo() {}
  foo.x = 0;
  return foo;
}

var fobjs = [];
for (var i = 0; i < 10; i++) {
  var of = fobjs[i] = factory();
  if (i > 0) {
    assertEq(fobjs[i - 1] === of, false);
    assertEq(shapeOf(fobjs[i - 1]), shapeOf(of));
  }
}

assertEq(shapeOf(fobjs[0]) == shapeOf(f1), false);