You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							26 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							26 lines
						
					
					
						
							1.1 KiB
						
					
					
				'use strict'; | 
						|
var $ = require('../internals/export'); | 
						|
var IS_PURE = require('../internals/is-pure'); | 
						|
var getBuiltIn = require('../internals/get-built-in'); | 
						|
var anObject = require('../internals/an-object'); | 
						|
var aFunction = require('../internals/a-function'); | 
						|
var bind = require('../internals/function-bind-context'); | 
						|
var speciesConstructor = require('../internals/species-constructor'); | 
						|
var getMapIterator = require('../internals/get-map-iterator'); | 
						|
var iterate = require('../internals/iterate'); | 
						|
 | 
						|
// `Map.prototype.mapValues` method | 
						|
// https://github.com/tc39/proposal-collection-methods | 
						|
$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, { | 
						|
  mapValues: function mapValues(callbackfn /* , thisArg */) { | 
						|
    var map = anObject(this); | 
						|
    var iterator = getMapIterator(map); | 
						|
    var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); | 
						|
    var newMap = new (speciesConstructor(map, getBuiltIn('Map')))(); | 
						|
    var setter = aFunction(newMap.set); | 
						|
    iterate(iterator, function (key, value) { | 
						|
      setter.call(newMap, key, boundFunction(value, key, map)); | 
						|
    }, undefined, true, true); | 
						|
    return newMap; | 
						|
  } | 
						|
});
 | 
						|
 |