Show More
Commit Description:
move datatable to yarn
Commit Description:
move datatable to yarn
References:
File last commit:
Show/Diff file:
Action:
node_modules/core-js/modules/es6.weak-map.js
| 60 lines
| 2.0 KiB
| application/javascript
| JavascriptLexer
|
r789 | 'use strict'; | |||
var global = require('./_global'); | ||||
var each = require('./_array-methods')(0); | ||||
var redefine = require('./_redefine'); | ||||
var meta = require('./_meta'); | ||||
var assign = require('./_object-assign'); | ||||
var weak = require('./_collection-weak'); | ||||
var isObject = require('./_is-object'); | ||||
var validate = require('./_validate-collection'); | ||||
var NATIVE_WEAK_MAP = require('./_validate-collection'); | ||||
var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; | ||||
var WEAK_MAP = 'WeakMap'; | ||||
var getWeak = meta.getWeak; | ||||
var isExtensible = Object.isExtensible; | ||||
var uncaughtFrozenStore = weak.ufstore; | ||||
var InternalMap; | ||||
var wrapper = function (get) { | ||||
return function WeakMap() { | ||||
return get(this, arguments.length > 0 ? arguments[0] : undefined); | ||||
}; | ||||
}; | ||||
var methods = { | ||||
// 23.3.3.3 WeakMap.prototype.get(key) | ||||
get: function get(key) { | ||||
if (isObject(key)) { | ||||
var data = getWeak(key); | ||||
if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); | ||||
return data ? data[this._i] : undefined; | ||||
} | ||||
}, | ||||
// 23.3.3.5 WeakMap.prototype.set(key, value) | ||||
set: function set(key, value) { | ||||
return weak.def(validate(this, WEAK_MAP), key, value); | ||||
} | ||||
}; | ||||
// 23.3 WeakMap Objects | ||||
var $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true); | ||||
// IE11 WeakMap frozen keys fix | ||||
if (NATIVE_WEAK_MAP && IS_IE11) { | ||||
InternalMap = weak.getConstructor(wrapper, WEAK_MAP); | ||||
assign(InternalMap.prototype, methods); | ||||
meta.NEED = true; | ||||
each(['delete', 'has', 'get', 'set'], function (key) { | ||||
var proto = $WeakMap.prototype; | ||||
var method = proto[key]; | ||||
redefine(proto, key, function (a, b) { | ||||
// store frozen objects on internal weakmap shim | ||||
if (isObject(a) && !isExtensible(a)) { | ||||
if (!this._f) this._f = new InternalMap(); | ||||
var result = this._f[key](a, b); | ||||
return key == 'set' ? this : result; | ||||
// store all the rest on native weakmap | ||||
} return method.call(this, a, b); | ||||
}); | ||||
}); | ||||
} | ||||