.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / internals / map-upsert.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/internals/map-upsert.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/core-js/internals/map-upsert.js
new file mode 100644 (file)
index 0000000..2c51e78
--- /dev/null
@@ -0,0 +1,23 @@
+'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;
+};