var WeakMap = WeakMap || (function (s, dP, hOP) {'use strict'; function WeakMap() { // by Andrea Giammarchi - WTFPL dP(this, s, {value: Symbol('WeakMap')}); } WeakMap.prototype = { 'delete': function del(o) { delete o[this[s]]; }, get: function get(o) { return o[this[s]]; }, has: function has(o) { return hOP.call(o, this[s]); }, set: function set(o, v) { dP(o, this[s], {configurable: true, value: v}); } }; return WeakMap; }(Symbol('WeakMap'), Object.defineProperty, {}.hasOwnProperty));