Show More
Commit Description:
submission report
Commit Description:
submission report
References:
File last commit:
Show/Diff file:
Action:
node_modules/core-js/library/modules/_metadata.js
| 51 lines
| 1.8 KiB
| application/javascript
| JavascriptLexer
|
r789 | var Map = require('./es6.map'); | |||
var $export = require('./_export'); | ||||
var shared = require('./_shared')('metadata'); | ||||
var store = shared.store || (shared.store = new (require('./es6.weak-map'))()); | ||||
var getOrCreateMetadataMap = function (target, targetKey, create) { | ||||
var targetMetadata = store.get(target); | ||||
if (!targetMetadata) { | ||||
if (!create) return undefined; | ||||
store.set(target, targetMetadata = new Map()); | ||||
} | ||||
var keyMetadata = targetMetadata.get(targetKey); | ||||
if (!keyMetadata) { | ||||
if (!create) return undefined; | ||||
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 toMetaKey = function (it) { | ||||
return it === undefined || typeof it == 'symbol' ? it : String(it); | ||||
}; | ||||
var exp = function (O) { | ||||
$export($export.S, 'Reflect', O); | ||||
}; | ||||
module.exports = { | ||||
store: store, | ||||
map: getOrCreateMetadataMap, | ||||
has: ordinaryHasOwnMetadata, | ||||
get: ordinaryGetOwnMetadata, | ||||
set: ordinaryDefineOwnMetadata, | ||||
keys: ordinaryOwnMetadataKeys, | ||||
key: toMetaKey, | ||||
exp: exp | ||||
}; | ||||