bug641525.js (672B)
1 var o2 = new Proxy({}, {}); 2 function f1() {} 3 function f2() {} 4 function f4(o) { 5 var key = Object.getOwnPropertyNames(o)[18]; 6 o4 = o[key]; 7 o.prototype = {}; 8 } 9 f4(f1); 10 f4(f1); 11 f4(f2); 12 new f2(o2); 13 14 // these will hold only if type inference is enabled. 15 //assertEq(shapeOf(f1) == shapeOf(f2), false); 16 //assertEq(shapeOf(f1) == shapeOf(f4), false); 17 18 function factory() { 19 function foo() {} 20 foo.x = 0; 21 return foo; 22 } 23 24 var fobjs = []; 25 for (var i = 0; i < 10; i++) { 26 var of = fobjs[i] = factory(); 27 if (i > 0) { 28 assertEq(fobjs[i - 1] === of, false); 29 assertEq(shapeOf(fobjs[i - 1]), shapeOf(of)); 30 } 31 } 32 33 assertEq(shapeOf(fobjs[0]) == shapeOf(f1), false);