Source code

Revision control

Copy as Markdown

Other Tools

// Tests megamorphic stores to fixed and dynamics slots, and dense elements
function test(obj) {
let index = 0;
for (var s in obj) {
obj[s] = index;
index++;
}
index = 0;
for (var s in obj) {
assertEq(obj[s], index);
index++;
}
}
var arr = [];
var elem_obj = [];
for (var i = 0; i < 20; i++) {
var obj = {};
for (var j = 0; j < i; j++) {
obj["x_" + i + "_" + j] = 1;
}
arr.push(obj);
elem_obj.push(1);
}
arr.push(elem_obj);
with ({}) {}
for (var i = 0; i < 2000; i++) {
var idx = i % arr.length;
test(arr[idx]);
}