summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/for-of/semantics-07.js
blob: e89cf1f05358fe900c2cb59c66b5e50e18f515b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// Deleting the .next method of an iterator in the middle of a for-of loop
// doesn't cause a TypeError at the next iteration.

load(libdir + "asserts.js");
load(libdir + "iteration.js");

var iterProto = Object.getPrototypeOf([][Symbol.iterator]());
var s = '';
for (var v of ['duck', 'duck', 'duck', 'goose', 'and now you\'re it']) {
    s += v;
    if (v === 'goose')
        delete iterProto.next;
    s += '.';
}
assertEq(s, 'duck.duck.duck.goose.and now you\'re it.');