Some checks are pending
Build AeThex Engine / build-windows (push) Waiting to run
Build AeThex Engine / build-linux (push) Waiting to run
Build AeThex Engine / build-macos (push) Waiting to run
Build AeThex Engine / create-release (push) Blocked by required conditions
Deploy Docsify Documentation / build (push) Waiting to run
Deploy Docsify Documentation / deploy (push) Blocked by required conditions
27 lines
821 B
JavaScript
27 lines
821 B
JavaScript
'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;
|