15 lines
680 B
JavaScript
15 lines
680 B
JavaScript
var AsyncFromSyncIterator = require('../internals/async-from-sync-iterator');
|
|
var aFunction = require('../internals/a-function');
|
|
var anObject = require('../internals/an-object');
|
|
var getIterator = require('../internals/get-iterator');
|
|
var getMethod = require('../internals/get-method');
|
|
var wellKnownSymbol = require('../internals/well-known-symbol');
|
|
|
|
var ASYNC_ITERATOR = wellKnownSymbol('asyncIterator');
|
|
|
|
module.exports = function (it, usingIterator) {
|
|
var method = arguments.length < 2 ? getMethod(it[ASYNC_ITERATOR]) : usingIterator;
|
|
if (method === undefined) {
|
|
return new AsyncFromSyncIterator(getIterator(it));
|
|
} return anObject(aFunction(method).call(it));
|
|
};
|