| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 | var $ = require('../internals/export');var uncurryThis = require('../internals/function-uncurry-this');var hiddenKeys = require('../internals/hidden-keys');var isObject = require('../internals/is-object');var hasOwn = require('../internals/has-own-property');var defineProperty = require('../internals/object-define-property').f;var getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');var getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');var isExtensible = require('../internals/object-is-extensible');var uid = require('../internals/uid');var FREEZING = require('../internals/freezing');var REQUIRED = false;var METADATA = uid('meta');var id = 0;var setMetadata = function (it) {  defineProperty(it, METADATA, { value: {    objectID: 'O' + id++, // object ID    weakData: {}          // weak collections IDs  } });};var fastKey = function (it, create) {  // return a primitive with prefix  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;  if (!hasOwn(it, METADATA)) {    // can't set metadata to uncaught frozen object    if (!isExtensible(it)) return 'F';    // not necessary to add metadata    if (!create) return 'E';    // add missing metadata    setMetadata(it);  // return object ID  } return it[METADATA].objectID;};var getWeakData = function (it, create) {  if (!hasOwn(it, METADATA)) {    // can't set metadata to uncaught frozen object    if (!isExtensible(it)) return true;    // not necessary to add metadata    if (!create) return false;    // add missing metadata    setMetadata(it);  // return the store of weak collections IDs  } return it[METADATA].weakData;};// add metadata on freeze-family methods callingvar onFreeze = function (it) {  if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);  return it;};var enable = function () {  meta.enable = function () { /* empty */ };  REQUIRED = true;  var getOwnPropertyNames = getOwnPropertyNamesModule.f;  var splice = uncurryThis([].splice);  var test = {};  test[METADATA] = 1;  // prevent exposing of metadata key  if (getOwnPropertyNames(test).length) {    getOwnPropertyNamesModule.f = function (it) {      var result = getOwnPropertyNames(it);      for (var i = 0, length = result.length; i < length; i++) {        if (result[i] === METADATA) {          splice(result, i, 1);          break;        }      } return result;    };    $({ target: 'Object', stat: true, forced: true }, {      getOwnPropertyNames: getOwnPropertyNamesExternalModule.f    });  }};var meta = module.exports = {  enable: enable,  fastKey: fastKey,  getWeakData: getWeakData,  onFreeze: onFreeze};hiddenKeys[METADATA] = true;
 |