// for-of on a slow Array consults the prototype chain when it encounters a hole. var a = [0, , , 3]; a.slow = true; Object.prototype[1] = 'peek1'; Array.prototype[2] = 'peek2'; var log = []; for (var x of a) log.push(x); assertEq(log[1], 'peek1'); assertEq(log[2], 'peek2'); assertEq(log.join(), "0,peek1,peek2,3");