WSL should have more tests of type checking failures
[WebKit-https.git] / JSTests / es6 / generators_yield_star_generic_iterables.js
1 var global = this;
2
3 function __createIterableObject(arr, methods) {
4   methods = methods || {};
5   if (typeof Symbol !== 'function' || !Symbol.iterator) {
6     return {};
7   }
8   arr.length++;
9   var iterator = {
10     next: function() {
11       return { value: arr.shift(), done: arr.length <= 0 };
12     },
13     'return': methods['return'],
14     'throw': methods['throw']
15   };
16   var iterable = {};
17   iterable[Symbol.iterator] = function(){ return iterator; }
18   return iterable;
19 }
20
21 function test() {
22
23 var iterator = (function * generator() {
24   yield * global.__createIterableObject([5, 6, 7]);
25 }());
26 var item = iterator.next();
27 var passed = item.value === 5 && item.done === false;
28 item = iterator.next();
29 passed    &= item.value === 6 && item.done === false;
30 item = iterator.next();
31 passed    &= item.value === 7 && item.done === false;
32 item = iterator.next();
33 passed    &= item.value === undefined && item.done === true;
34 return passed;
35       
36 }
37
38 if (!test())
39     throw new Error("Test failed");
40