1 var $ = require('../internals/export');
2 var ReflectMetadataModule = require('../internals/reflect-metadata');
3 var anObject = require('../internals/an-object');
4 var getPrototypeOf = require('../internals/object-get-prototype-of');
6 var ordinaryHasOwnMetadata = ReflectMetadataModule.has;
7 var toMetadataKey = ReflectMetadataModule.toKey;
9 var ordinaryHasMetadata = function (MetadataKey, O, P) {
10 var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
11 if (hasOwn) return true;
12 var parent = getPrototypeOf(O);
13 return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
16 // `Reflect.hasMetadata` method
17 // https://github.com/rbuckton/reflect-metadata
18 $({ target: 'Reflect', stat: true }, {
19 hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {
20 var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]);
21 return ordinaryHasMetadata(metadataKey, anObject(target), targetKey);