17 lines
577 B
JavaScript
17 lines
577 B
JavaScript
|
var pIE = require('./_object-pie');
|
||
|
var createDesc = require('./_property-desc');
|
||
|
var toIObject = require('./_to-iobject');
|
||
|
var toPrimitive = require('./_to-primitive');
|
||
|
var has = require('./_has');
|
||
|
var IE8_DOM_DEFINE = require('./_ie8-dom-define');
|
||
|
var gOPD = Object.getOwnPropertyDescriptor;
|
||
|
|
||
|
exports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {
|
||
|
O = toIObject(O);
|
||
|
P = toPrimitive(P, true);
|
||
|
if (IE8_DOM_DEFINE) try {
|
||
|
return gOPD(O, P);
|
||
|
} catch (e) { /* empty */ }
|
||
|
if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
|
||
|
};
|