mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-06 20:11:38 +08:00
This also adds the MPL-2.0 license as valid license to our allowed licenses list. R=jacktfranklin@chromium.org DISABLE_THIRD_PARTY_CHECK=NPM update Change-Id: I2a3bee2ffc0b328a0579ab62ab27f938bdc876c8 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2593130 Commit-Queue: Jack Franklin <jacktfranklin@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org> Auto-Submit: Tim van der Lippe <tvanderlippe@chromium.org>
24 lines
721 B
JavaScript
24 lines
721 B
JavaScript
'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;
|
|
};
|