megamorphic-long-proto-chain.js (771B)
1 setJitCompilerOption("ic.force-megamorphic", 1); 2 3 function objectWithHops(hops) { 4 var o = Object.create(null); 5 o.hops = hops; 6 for (var i = 0; i < hops; i++) { 7 o = Object.create(o); 8 } 9 return o; 10 } 11 function test() { 12 var objs = []; 13 for (var i = 0; i < 32; i++) { 14 objs.push(objectWithHops(230 + i)); 15 } 16 for (var i = 0; i < 130; i++) { 17 var o = objs[i % objs.length]; 18 assertEq(o.hops, 230 + (i % objs.length)); 19 assertEq("hops" in o, true); 20 assertEq(Object.hasOwnProperty.call(o, "hops"), false); 21 assertEq(o.missing, undefined); 22 assertEq("missing" in o, false); 23 assertEq(Object.hasOwnProperty.call(o, "missing"), false); 24 } 25 } 26 for (var i = 0; i < 10; i++) { 27 test(); 28 }