first
This commit is contained in:
62
node_modules/core-js/internals/reflect-metadata.js
generated
vendored
Normal file
62
node_modules/core-js/internals/reflect-metadata.js
generated
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
'use strict';
|
||||
// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`
|
||||
require('../modules/es.map');
|
||||
require('../modules/es.weak-map');
|
||||
var getBuiltIn = require('../internals/get-built-in');
|
||||
var uncurryThis = require('../internals/function-uncurry-this');
|
||||
var shared = require('../internals/shared');
|
||||
|
||||
var Map = getBuiltIn('Map');
|
||||
var WeakMap = getBuiltIn('WeakMap');
|
||||
var push = uncurryThis([].push);
|
||||
|
||||
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) { push(keys, 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
|
||||
};
|
Reference in New Issue
Block a user