| 123456789101112131415161718192021222324252627282930 | 'use strict';var $ = require('../internals/export');var anObject = require('../internals/an-object');var aCallable = require('../internals/a-callable');var getMapIterator = require('../internals/get-map-iterator');var iterate = require('../internals/iterate');var $TypeError = TypeError;// `Map.prototype.reduce` method// https://github.com/tc39/proposal-collection-methods$({ target: 'Map', proto: true, real: true, forced: true }, {  reduce: function reduce(callbackfn /* , initialValue */) {    var map = anObject(this);    var iterator = getMapIterator(map);    var noInitial = arguments.length < 2;    var accumulator = noInitial ? undefined : arguments[1];    aCallable(callbackfn);    iterate(iterator, function (key, value) {      if (noInitial) {        noInitial = false;        accumulator = value;      } else {        accumulator = callbackfn(accumulator, value, key, map);      }    }, { AS_ENTRIES: true, IS_ITERATOR: true });    if (noInitial) throw $TypeError('Reduce of empty map with no initial value');    return accumulator;  }});
 |