bug774006.js (877B)
1 // Test IonMonkey SetElementIC when ran with --ion-eager. 2 3 function setelem(o, i, v) { 4 o[i] = v; 5 } 6 7 var arr = new Array(); 8 var obj = {}; 9 10 setelem(arr, "prop0", 2); 11 setelem(arr, 0, 2); // invalidate 12 setelem(arr, 1, 1); // recompile with setElemIC 13 14 setelem(arr, 0, 0); // set known element. 15 setelem(arr, 2, 2); // push last element. 16 setelem(arr, 4, 4); // test out-of-bounds. 17 setelem(arr, "prop0", 0); 18 setelem(arr, "prop1", 1); 19 20 setelem(obj, "prop0", 2); 21 setelem(obj, 0, 2); 22 setelem(obj, 1, 1); 23 24 setelem(obj, 0, 0); 25 setelem(obj, 2, 2); 26 setelem(obj, 4, 4); 27 setelem(obj, "prop0", 0); 28 setelem(obj, "prop1", 1); 29 30 assertEq(arr.prop0, 0); 31 assertEq(arr.prop1, 1); 32 assertEq(arr[0], 0); 33 assertEq(arr[1], 1); 34 assertEq(arr[2], 2); 35 assertEq(arr[4], 4); 36 37 assertEq(obj.prop0, 0); 38 assertEq(obj.prop1, 1); 39 assertEq(obj[0], 0); 40 assertEq(obj[1], 1); 41 assertEq(obj[2], 2); 42 assertEq(obj[4], 4);