// for-of on an Array consults the prototype chain when it encounters a hole. load(libdir + "iteration.js"); var m = {1: 'peek'}; var a = [0, , 2, 3]; a.__proto__ = m; var log = []; Object.prototype[Symbol.iterator] = Array.prototype[Symbol.iterator]; for (var x of a) log.push(x); assertEq(log[1], 'peek'); assertEq(log.join(), "0,peek,2,3");