diff options
Diffstat (limited to 'node_modules/core-js/internals/object-get-own-property-descriptor.js')
| -rw-r--r-- | node_modules/core-js/internals/object-get-own-property-descriptor.js | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/node_modules/core-js/internals/object-get-own-property-descriptor.js b/node_modules/core-js/internals/object-get-own-property-descriptor.js new file mode 100644 index 0000000..acdae01 --- /dev/null +++ b/node_modules/core-js/internals/object-get-own-property-descriptor.js @@ -0,0 +1,20 @@ +var DESCRIPTORS = require('../internals/descriptors'); +var propertyIsEnumerableModule = require('../internals/object-property-is-enumerable'); +var createPropertyDescriptor = require('../internals/create-property-descriptor'); +var toIndexedObject = require('../internals/to-indexed-object'); +var toPrimitive = require('../internals/to-primitive'); +var has = require('../internals/has'); +var IE8_DOM_DEFINE = require('../internals/ie8-dom-define'); + +var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return nativeGetOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); +}; |
