text: 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));
  };
  