js/src/jit-test/tests/ion/bug774006.js

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

mercurial