'use strict'; 
 | 
// TODO: Remove from `core-js@4` 
 | 
var $ = require('../internals/export'); 
 | 
var ReflectMetadataModule = require('../internals/reflect-metadata'); 
 | 
var anObject = require('../internals/an-object'); 
 | 
var getPrototypeOf = require('../internals/object-get-prototype-of'); 
 | 
  
 | 
var ordinaryHasOwnMetadata = ReflectMetadataModule.has; 
 | 
var toMetadataKey = ReflectMetadataModule.toKey; 
 | 
  
 | 
var ordinaryHasMetadata = function (MetadataKey, O, P) { 
 | 
  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); 
 | 
  if (hasOwn) return true; 
 | 
  var parent = getPrototypeOf(O); 
 | 
  return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; 
 | 
}; 
 | 
  
 | 
// `Reflect.hasMetadata` method 
 | 
// https://github.com/rbuckton/reflect-metadata 
 | 
$({ target: 'Reflect', stat: true }, { 
 | 
  hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { 
 | 
    var targetKey = arguments.length < 3 ? undefined : toMetadataKey(arguments[2]); 
 | 
    return ordinaryHasMetadata(metadataKey, anObject(target), targetKey); 
 | 
  } 
 | 
}); 
 |