| 'use strict'; | 
| var DESCRIPTORS = require('../internals/descriptors'); | 
| var call = require('../internals/function-call'); | 
| var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable'); | 
| var createPropertyDescriptor = require('../internals/create-property-descriptor'); | 
| var toIndexedObject = require('../internals/to-indexed-object'); | 
| var toPropertyKey = require('../internals/to-property-key'); | 
| var hasOwn = require('../internals/has-own-property'); | 
| var IE8_DOM_DEFINE = require('../internals/ie8-dom-define'); | 
|   | 
| // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe | 
| var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; | 
|   | 
| // `Object.getOwnPropertyDescriptor` method | 
| // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor | 
| exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { | 
|   O = toIndexedObject(O); | 
|   P = toPropertyKey(P); | 
|   if (IE8_DOM_DEFINE) try { | 
|     return $getOwnPropertyDescriptor(O, P); | 
|   } catch (error) { /* empty */ } | 
|   if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); | 
| }; |