diff --git a/closure/goog/iter/es6.js b/closure/goog/iter/es6.js index 702e570181..2316cb3bf4 100644 --- a/closure/goog/iter/es6.js +++ b/closure/goog/iter/es6.js @@ -57,48 +57,21 @@ class ShimIterable { if (iter instanceof ShimIterableImpl || iter instanceof ShimGoogIterator || iter instanceof ShimEs6Iterator) { return iter; - } else if (typeof iter.nextValueOrThrow == 'function') { + } else if (typeof iter.next == 'function') { return new ShimIterableImpl( - () => wrapGoog(/** @type {!Iterator|!GoogIterator} */ (iter))); + () => /** @type {!Iterator|!GoogIterator} */ (iter)); } else if (typeof iter[Symbol.iterator] == 'function') { return new ShimIterableImpl(() => iter[Symbol.iterator]()); } else if (typeof iter.__iterator__ == 'function') { return new ShimIterableImpl( - () => wrapGoog( - /** @type {{__iterator__:function(this:?, boolean=)}} */ (iter) - .__iterator__())); + () => /** @type {{__iterator__:function(this:?, boolean=)}} */ (iter) + .__iterator__()); } throw new Error('Not an iterator or iterable.'); } } -/** - * @param {!GoogIterator|!Iterator} iter - * @return {!Iterator} - * @template VALUE - */ -const wrapGoog = (iter) => { - if (!(iter instanceof GoogIterator)) return iter; - let done = false; - return /** @type {?} */ ({ - next() { - let value; - while (!done) { - try { - value = /** @type {!GoogIterator} */ (iter).nextValueOrThrow(); - break; - } catch (err) { - if (err !== StopIteration) throw err; - done = true; - } - } - return {value, done}; - }, - }); -}; - - /** * Concrete (private) implementation of a non-iterator iterable. This is * separate from the iterator versions since it supports iterables that