var wmUniqueIndex = Math.round(Math.random() * 9); var supportDefineProperty = typeof Object.defineProperty === 'function'; var WeakMap = (function () { function WeakMap() { this._id = '__ec_inner_' + wmUniqueIndex++; } WeakMap.prototype.get = function (key) { return this._guard(key)[this._id]; }; WeakMap.prototype.set = function (key, value) { var target = this._guard(key); if (supportDefineProperty) { Object.defineProperty(target, this._id, { value: value, enumerable: false, configurable: true }); } else { target[this._id] = value; } return this; }; WeakMap.prototype["delete"] = function (key) { if (this.has(key)) { delete this._guard(key)[this._id]; return true; } return false; }; WeakMap.prototype.has = function (key) { return !!this._guard(key)[this._id]; }; WeakMap.prototype._guard = function (key) { if (key !== Object(key)) { throw TypeError('Value of WeakMap is not a non-null object.'); } return key; }; return WeakMap; }()); export default WeakMap;