diff options
Diffstat (limited to 'node_modules/core-js/modules/esnext.reflect.delete-metadata.js')
| -rw-r--r-- | node_modules/core-js/modules/esnext.reflect.delete-metadata.js | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/node_modules/core-js/modules/esnext.reflect.delete-metadata.js b/node_modules/core-js/modules/esnext.reflect.delete-metadata.js new file mode 100644 index 0000000..ec510d3 --- /dev/null +++ b/node_modules/core-js/modules/esnext.reflect.delete-metadata.js @@ -0,0 +1,21 @@ +var $ = require('../internals/export'); +var ReflectMetadataModule = require('../internals/reflect-metadata'); +var anObject = require('../internals/an-object'); + +var toMetadataKey = ReflectMetadataModule.toKey; +var getOrCreateMetadataMap = ReflectMetadataModule.getMap; +var store = ReflectMetadataModule.store; + +// `Reflect.deleteMetadata` method +// https://github.com/rbuckton/reflect-metadata +$({ target: 'Reflect', stat: true }, { + deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { + var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); + var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); + if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; + if (metadataMap.size) return true; + var targetMetadata = store.get(target); + targetMetadata['delete'](targetKey); + return !!targetMetadata.size || store['delete'](target); + } +}); |
