- if (usingIterator != null) {
- iterator = aFunction(usingIterator).call(object);
- if (iterator instanceof AsyncIterator) return iterator;
- } else {
- iterator = object;
- } return new AsyncIteratorProxy({
- iterator: iterator
- });
+ if (usingIterator) {
+ iterator = getAsyncIterator(object, usingIterator);
+ if (isPrototypeOf(AsyncIteratorPrototype, iterator)) return iterator;
+ }
+ if (iterator === undefined) {
+ usingIterator = getIteratorMethod(object);
+ if (usingIterator) return new AsyncFromSyncIterator(getIterator(object, usingIterator));
+ }
+ return new AsyncIteratorProxy({ iterator: iterator !== undefined ? iterator : object });