// Replacing Array.prototype.iterator with something non-callable makes for-of throw. load(libdir + "asserts.js"); load(libdir + "iteration.js"); function test(v) { Array.prototype[Symbol.iterator] = v; assertThrowsInstanceOf(function () { for (var x of []) ; }, TypeError); } test(undefined); test(null); test({});