Sha256: e03d64d85e20fdb7ea71af054352251382838f6afa35c00c742533ba0865d722

Contents?: true

Size: 1.84 KB

Versions: 36

Compression:

Stored size: 1.84 KB

Contents

// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
var Map = require('../modules/es.map');
var WeakMap = require('../modules/es.weak-map');
var shared = require('../internals/shared');

var metadata = shared('metadata');
var store = metadata.store || (metadata.store = new WeakMap());

var getOrCreateMetadataMap = function (target, targetKey, create) {
  var targetMetadata = store.get(target);
  if (!targetMetadata) {
    if (!create) return;
    store.set(target, targetMetadata = new Map());
  }
  var keyMetadata = targetMetadata.get(targetKey);
  if (!keyMetadata) {
    if (!create) return;
    targetMetadata.set(targetKey, keyMetadata = new Map());
  } return keyMetadata;
};

var ordinaryHasOwnMetadata = function (MetadataKey, O, P) {
  var metadataMap = getOrCreateMetadataMap(O, P, false);
  return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
};

var ordinaryGetOwnMetadata = function (MetadataKey, O, P) {
  var metadataMap = getOrCreateMetadataMap(O, P, false);
  return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
};

var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {
  getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
};

var ordinaryOwnMetadataKeys = function (target, targetKey) {
  var metadataMap = getOrCreateMetadataMap(target, targetKey, false);
  var keys = [];
  if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });
  return keys;
};

var toMetadataKey = function (it) {
  return it === undefined || typeof it == 'symbol' ? it : String(it);
};

module.exports = {
  store: store,
  getMap: getOrCreateMetadataMap,
  has: ordinaryHasOwnMetadata,
  get: ordinaryGetOwnMetadata,
  set: ordinaryDefineOwnMetadata,
  keys: ordinaryOwnMetadataKeys,
  toKey: toMetadataKey
};

Version data entries

36 entries across 35 versions & 9 rubygems

Version Path
optimacms-0.1.61 spec/dummy/node_modules/core-js/internals/reflect-metadata.js
disco_app-0.18.0 test/dummy/node_modules/core-js/internals/reflect-metadata.js
disco_app-0.18.2 test/dummy/node_modules/core-js/internals/reflect-metadata.js
disco_app-0.16.1 test/dummy/node_modules/core-js/internals/reflect-metadata.js
disco_app-0.15.2 test/dummy/node_modules/core-js/internals/reflect-metadata.js
disco_app-0.18.4 test/dummy/node_modules/core-js/internals/reflect-metadata.js
disco_app-0.18.1 test/dummy/node_modules/core-js/internals/reflect-metadata.js
disco_app-0.12.7.pre.puma.pre.3 test/dummy/node_modules/core-js/internals/reflect-metadata.js
disco_app-0.14.0 test/dummy/node_modules/core-js/internals/reflect-metadata.js
disco_app-0.13.6.pre.puma.pre.3 test/dummy/node_modules/core-js/internals/reflect-metadata.js
tang-0.2.1 spec/tang_app/node_modules/core-js/internals/reflect-metadata.js
groonga-client-model-6.0.0 test/apps/rails6.0.3.5/node_modules/core-js/internals/reflect-metadata.js
groonga-client-model-6.0.0 test/apps/rails6.1.3/node_modules/core-js/internals/reflect-metadata.js
ruby2js-4.0.4 lib/tasks/testrails/node_modules/core-js/internals/reflect-metadata.js
ruby2js-4.0.3 lib/tasks/testrails/node_modules/core-js/internals/reflect-metadata.js
tang-0.2.0 spec/tang_app/node_modules/core-js/internals/reflect-metadata.js
tang-0.1.0 spec/tang_app/node_modules/core-js/internals/reflect-metadata.js
tang-0.0.9 spec/tang_app/node_modules/core-js/internals/reflect-metadata.js
enju_library-0.3.8 spec/dummy/node_modules/core-js/internals/reflect-metadata.js
condenser-0.3 lib/condenser/processors/node_modules/core-js-pure/internals/reflect-metadata.js