Source code
Revision control
Copy as Markdown
Other Tools
function testChangingObjectWithLength()
{
var obj = { length: 10 };
var dense = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
var slow = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; slow.slow = 5;
/*
* The elements of objs constitute a De Bruijn sequence repeated 4x to trace
* and run native code for every object and transition.
*/
var objs = [obj, obj, obj, obj,
obj, obj, obj, obj,
dense, dense, dense, dense,
obj, obj, obj, obj,
slow, slow, slow, slow,
dense, dense, dense, dense,
dense, dense, dense, dense,
slow, slow, slow, slow,
slow, slow, slow, slow,
obj, obj, obj, obj];
var counter = 0;
for (var i = 0, sz = objs.length; i < sz; i++)
{
var o = objs[i];
for (var j = 0; j < o.length; j++)
counter++;
}
return counter;
}
assertEq(testChangingObjectWithLength(), 400);