UNPKG

737 BJavaScriptView Raw
1'use strict';
2var call = require('../internals/function-call');
3var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
4var anObject = require('../internals/an-object');
5var getIterator = require('../internals/get-iterator');
6var getIteratorDirect = require('../internals/get-iterator-direct');
7var getMethod = require('../internals/get-method');
8var wellKnownSymbol = require('../internals/well-known-symbol');
9
10var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
11
12module.exports = function (it, usingIterator) {
13 var method = arguments.length < 2 ? getMethod(it, ASYNC_ITERATOR) : usingIterator;
14 return method ? anObject(call(method, it)) : new AsyncFromSyncIterator(getIteratorDirect(getIterator(it)));
15};