diff options
Diffstat (limited to 'node_modules/core-js/modules/esnext.map.update.js')
| -rw-r--r-- | node_modules/core-js/modules/esnext.map.update.js | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/esnext.map.update.js b/node_modules/core-js/modules/esnext.map.update.js new file mode 100644 index 0000000..97358e8 --- /dev/null +++ b/node_modules/core-js/modules/esnext.map.update.js @@ -0,0 +1,22 @@ +'use strict'; +var $ = require('../internals/export'); +var IS_PURE = require('../internals/is-pure'); +var anObject = require('../internals/an-object'); +var aFunction = require('../internals/a-function'); + +// `Set.prototype.update` method +// https://github.com/tc39/proposal-collection-methods +$({ target: 'Map', proto: true, real: true, forced: IS_PURE }, { + update: function update(key, callback /* , thunk */) { + var map = anObject(this); + var length = arguments.length; + aFunction(callback); + var isPresentInMap = map.has(key); + if (!isPresentInMap && length < 3) { + throw TypeError('Updating absent value'); + } + var value = isPresentInMap ? map.get(key) : aFunction(length > 2 ? arguments[2] : undefined)(key, map); + map.set(key, callback(value, key, map)); + return map; + } +}); |
