|
1 // for-of is defined in terms of basic operations on objects, particularly |
|
2 // [[Get]] for properties named "iterator" and "next", and [[Call]]. These |
|
3 // "semantics" tests check that for-of really does appear to be implemented in |
|
4 // terms of those more basic operations, as required by the spec, even in |
|
5 // unusual cases. |
|
6 |
|
7 // Deleting Array.prototype.iterator makes for-of stop working on arrays. |
|
8 |
|
9 load(libdir + "asserts.js"); |
|
10 load(libdir + "iteration.js"); |
|
11 |
|
12 delete Array.prototype[std_iterator]; |
|
13 assertThrowsInstanceOf(function () { for (var x of []) ; }, TypeError); |