js/src/jit-test/tests/basic/testChangingObjectWithLength.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:337d5dbbf023
1 function testChangingObjectWithLength()
2 {
3 var obj = { length: 10 };
4 var dense = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
5 var slow = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; slow.slow = 5;
6
7 /*
8 * The elements of objs constitute a De Bruijn sequence repeated 4x to trace
9 * and run native code for every object and transition.
10 */
11 var objs = [obj, obj, obj, obj,
12 obj, obj, obj, obj,
13 dense, dense, dense, dense,
14 obj, obj, obj, obj,
15 slow, slow, slow, slow,
16 dense, dense, dense, dense,
17 dense, dense, dense, dense,
18 slow, slow, slow, slow,
19 slow, slow, slow, slow,
20 obj, obj, obj, obj];
21
22 var counter = 0;
23
24 for (var i = 0, sz = objs.length; i < sz; i++)
25 {
26 var o = objs[i];
27 for (var j = 0; j < o.length; j++)
28 counter++;
29 }
30
31 return counter;
32 }
33 assertEq(testChangingObjectWithLength(), 400);

mercurial