|
1 |
|
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); |
|
14 |
|
15 // these will hold only if type inference is enabled. |
|
16 //assertEq(shapeOf(f1) == shapeOf(f2), false); |
|
17 //assertEq(shapeOf(f1) == shapeOf(f4), false); |
|
18 |
|
19 function factory() { |
|
20 function foo() {} |
|
21 foo.x = 0; |
|
22 return foo; |
|
23 } |
|
24 |
|
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 } |
|
33 |
|
34 assertEq(shapeOf(fobjs[0]) == shapeOf(f1), false); |