blob: eb4a53a80be36b2562d1a2089543dd287d785156 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// Deleting the .next method of an iterator in the middle of a for-of loop
// causes a TypeError at the next iteration.
load(libdir + "asserts.js");
load(libdir + "iteration.js");
var iterProto = Object.getPrototypeOf([][Symbol.iterator]());
var s = '';
assertThrowsInstanceOf(function () {
for (var v of ['duck', 'duck', 'duck', 'goose', 'FAIL']) {
s += v;
if (v === 'goose')
delete iterProto.next;
s += '.';
}
}, TypeError);
assertEq(s, 'duck.duck.duck.goose.');
|