| 123456789101112131415161718192021222324252627 | 
							- 'use strict';
 
- var reflectGetProto = require('./Reflect.getPrototypeOf');
 
- var originalGetProto = require('./Object.getPrototypeOf');
 
- var getDunderProto = require('dunder-proto/get');
 
- /** @type {import('.')} */
 
- module.exports = reflectGetProto
 
- 	? function getProto(O) {
 
- 		// @ts-expect-error TS can't narrow inside a closure, for some reason
 
- 		return reflectGetProto(O);
 
- 	}
 
- 	: originalGetProto
 
- 		? function getProto(O) {
 
- 			if (!O || (typeof O !== 'object' && typeof O !== 'function')) {
 
- 				throw new TypeError('getProto: not an object');
 
- 			}
 
- 			// @ts-expect-error TS can't narrow inside a closure, for some reason
 
- 			return originalGetProto(O);
 
- 		}
 
- 		: getDunderProto
 
- 			? function getProto(O) {
 
- 				// @ts-expect-error TS can't narrow inside a closure, for some reason
 
- 				return getDunderProto(O);
 
- 			}
 
- 			: null;
 
 
  |