diff options
Diffstat (limited to 'js/util.ts')
-rw-r--r-- | js/util.ts | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/js/util.ts b/js/util.ts index 0c50acebb..0d2049842 100644 --- a/js/util.ts +++ b/js/util.ts @@ -125,3 +125,22 @@ export function deferred(): Deferred { reject: reject! }; } + +/** Create a IterableIterator. */ +// @internal +export class CreateIterableIterator<T> implements IterableIterator<T> { + private readonly _iterators: IterableIterator<T>; + readonly [Symbol.toStringTag] = "Iterator"; + + constructor(iterators: IterableIterator<T>) { + this._iterators = iterators; + } + + [Symbol.iterator](): IterableIterator<T> { + return this; + } + + next(): IteratorResult<T> { + return this._iterators.next(); + } +} |