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.
|
|
'use strict'; var anObject = require('../internals/an-object');
// `Map.prototype.upsert` method
// https://github.com/thumbsupep/proposal-upsert
module.exports = function upsert(key, updateFn /* , insertFn */) { var map = anObject(this); var insertFn = arguments.length > 2 ? arguments[2] : undefined; var value; if (typeof updateFn != 'function' && typeof insertFn != 'function') { throw TypeError('At least one callback required'); } if (map.has(key)) { value = map.get(key); if (typeof updateFn == 'function') { value = updateFn(value); map.set(key, value); } } else if (typeof insertFn == 'function') { value = insertFn(); map.set(key, value); } return value; };
|