unboxed-element-hole.js (891B)
1 function noElement() { 2 for (var i = 0; i < 1e4; i++) { 3 var obj = {length: 0}; 4 assertEq(obj[0], undefined); 5 } 6 } 7 8 function noElementCheckPrototype() { 9 for (var i = 0; i < 1e4; i++) { 10 var obj = {length: 0}; 11 assertEq(obj[0], i <= 1e3 ? undefined : 1); 12 if (i == 1e3) { 13 Object.prototype[0] = 1; 14 } 15 } 16 delete Object.prototype[0]; 17 } 18 19 function elementOnPrototype() { 20 Object.prototype[0] = 3; 21 for (var i = 0; i < 1e4; i++) { 22 var obj = {length: 0}; 23 assertEq(obj[0], 3); 24 } 25 delete Object.prototype[0]; 26 } 27 28 function checkExpando() { 29 for (var i = 0; i < 1e4; i++) { 30 var obj = {length: 0}; 31 if (i >= 1e3) { 32 obj[0] = 2; 33 } 34 assertEq(obj[0], i < 1e3 ? undefined : 2); 35 } 36 } 37 38 noElement(); 39 noElementCheckPrototype(); 40 elementOnPrototype(); 41 checkExpando();