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