summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/for-of/semantics-01.js
blob: 6da98837231852f4ad00ab124f234be6f6646edc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
// for-of is defined in terms of basic operations on objects, particularly
// [[Get]] for properties named "iterator" and "next", and [[Call]]. These
// "semantics" tests check that for-of really does appear to be implemented in
// terms of those more basic operations, as required by the spec, even in
// unusual cases.

// Deleting Array.prototype.iterator makes for-of stop working on arrays.

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

delete Array.prototype[Symbol.iterator];
assertThrowsInstanceOf(function () { for (var x of []) ; }, TypeError);