massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / core-js / modules / esnext.map.update.js
index 97358e814b1b8c905fc405b09ebd67d6f37f7e6e..f009327b959041203a1412b97c5e7f6a4c6ef547 100644 (file)
@@ -1,22 +1,29 @@
 'use strict';
-var $ = require('../internals/export');
 var IS_PURE = require('../internals/is-pure');
+var $ = require('../internals/export');
+var global = require('../internals/global');
+var call = require('../internals/function-call');
 var anObject = require('../internals/an-object');
-var aFunction = require('../internals/a-function');
+var aCallable = require('../internals/a-callable');
+
+var TypeError = global.TypeError;
 
 // `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 get = aCallable(map.get);
+    var has = aCallable(map.has);
+    var set = aCallable(map.set);
     var length = arguments.length;
-    aFunction(callback);
-    var isPresentInMap = map.has(key);
+    aCallable(callback);
+    var isPresentInMap = call(has, map, 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));
+    var value = isPresentInMap ? call(get, map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);
+    call(set, map, key, callback(value, key, map));
     return map;
   }
 });