- return { done: true, value: undefined };
- } return this.next.call(this.iterator, arg);
+ returnMethod = iterator['return'];
+ if (returnMethod !== undefined) {
+ return Promise.resolve(returnMethod.call(iterator)).then(function () {
+ return result;
+ });
+ }
+ return result;
+ } return this.next.call(iterator, arg);