bug1216130.js (1044B)
1 function Obj1(x) { this.x = x; } 2 function f1() { 3 var arr = [], o = {}; 4 for (var i=0; i<2500; i++) { 5 arr.push(new Obj1(o)); 6 if (i < 15) { 7 arr[i].x = undefined; 8 arr[i].x = Math; 9 } 10 } 11 for (var i=0; i<2500; i++) { 12 var y = (i > 2000) ? undefined : o; 13 arr[i].x = y; 14 } 15 } 16 f1(); 17 18 function f2() { 19 var arr = [], p = {}; 20 for (var i=0; i<2500; i++) { 21 var x = (i < 2000) ? p : undefined; 22 var o = {x: x}; 23 if (i < 5) { 24 o.x = undefined; 25 o.x = p; 26 } 27 arr.push(o); 28 } 29 for (var i=0; i<2500; i++) { 30 assertEq(arr[i].x, i < 2000 ? p : undefined); 31 } 32 } 33 f2(); 34 35 function f3() { 36 var arr = [], p = {}; 37 for (var i=0; i<2500; i++) { 38 var x = (i < 2000) ? p : true; 39 var o = {x: x}; 40 if (i < 5) { 41 o.x = true; 42 o.x = p; 43 } 44 arr.push(o); 45 } 46 for (var i=0; i<2500; i++) { 47 assertEq(arr[i].x, i < 2000 ? p : true); 48 } 49 } 50 f3();