12345678910111213141516171819202122 |
- 'use strict';
- var hasOwn = require('../internals/has-own-property');
- var isCallable = require('../internals/is-callable');
- var toObject = require('../internals/to-object');
- var sharedKey = require('../internals/shared-key');
- var CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');
- var IE_PROTO = sharedKey('IE_PROTO');
- var $Object = Object;
- var ObjectPrototype = $Object.prototype;
- // `Object.getPrototypeOf` method
- // https://tc39.es/ecma262/#sec-object.getprototypeof
- // eslint-disable-next-line es/no-object-getprototypeof -- safe
- module.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {
- var object = toObject(O);
- if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];
- var constructor = object.constructor;
- if (isCallable(constructor) && object instanceof constructor) {
- return constructor.prototype;
- } return object instanceof $Object ? ObjectPrototype : null;
- };
|