3 function __createIterableObject(arr, methods) {
4 methods = methods || {};
5 if (typeof Symbol !== 'function' || !Symbol.iterator) {
11 return { value: arr.shift(), done: arr.length <= 0 };
13 'return': methods['return'],
14 'throw': methods['throw']
17 iterable[Symbol.iterator] = function(){ return iterator; }
23 var iterator = (function * generator() {
24 yield * global.__createIterableObject([5, 6, 7]);
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;
39 throw new Error("Test failed");