14 lines
493 B
JavaScript
14 lines
493 B
JavaScript
|
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
|
||
|
var has = require('./_has');
|
||
|
var toObject = require('./_to-object');
|
||
|
var IE_PROTO = require('./_shared-key')('IE_PROTO');
|
||
|
var ObjectProto = Object.prototype;
|
||
|
|
||
|
module.exports = Object.getPrototypeOf || function (O) {
|
||
|
O = toObject(O);
|
||
|
if (has(O, IE_PROTO)) return O[IE_PROTO];
|
||
|
if (typeof O.constructor == 'function' && O instanceof O.constructor) {
|
||
|
return O.constructor.prototype;
|
||
|
} return O instanceof Object ? ObjectProto : null;
|
||
|
};
|