// For-of passes one arg to "next". load(libdir + 'iteration.js') var log = ''; function Iter() { function next() { log += 'n'; assertEq(arguments.length, 0) assertEq(arguments[0], undefined) return { get value() { throw 42; }, done: true } } this[Symbol.iterator] = function () { return this; } this.next = next; } for (var x of new Iter()) throw 'not reached'; assertEq(log, 'n');