Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
2 var o2 = Proxy.create({});
3 function f1() {}
4 function f2() {}
5 function f4(o) {
6 var key = Object.getOwnPropertyNames(o)[18];
7 o4 = o[key];
8 o.prototype = {};
9 }
10 f4(f1);
11 f4(f1);
12 f4(f2);
13 new f2(o2);
15 // these will hold only if type inference is enabled.
16 //assertEq(shapeOf(f1) == shapeOf(f2), false);
17 //assertEq(shapeOf(f1) == shapeOf(f4), false);
19 function factory() {
20 function foo() {}
21 foo.x = 0;
22 return foo;
23 }
25 var fobjs = [];
26 for (var i = 0; i < 10; i++) {
27 var of = fobjs[i] = factory();
28 if (i > 0) {
29 assertEq(fobjs[i - 1] === of, false);
30 assertEq(shapeOf(fobjs[i - 1]), shapeOf(of));
31 }
32 }
34 assertEq(shapeOf(fobjs[0]) == shapeOf(f1), false);