| 123456789101112131415161718192021222324 | 'use strict';// https://github.com/tc39/proposal-iterator-helpersvar $ = require('../internals/export');var call = require('../internals/function-call');var aCallable = require('../internals/a-callable');var anObject = require('../internals/an-object');var getIteratorDirect = require('../internals/get-iterator-direct');var createIteratorProxy = require('../internals/iterator-create-proxy');var callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');var IteratorProxy = createIteratorProxy(function () {  var iterator = this.iterator;  var result = anObject(call(this.next, iterator));  var done = this.done = !!result.done;  if (!done) return callWithSafeIterationClosing(iterator, this.mapper, [result.value, this.counter++], true);});$({ target: 'Iterator', proto: true, real: true, forced: true }, {  map: function map(mapper) {    return new IteratorProxy(getIteratorDirect(this), {      mapper: aCallable(mapper)    });  }});
 |