object.getprototypeof
Version:
An ES5 mostly-spec-compliant `Object.getPrototypeOf` sham/polyfill/replacement that works in as many engines as possible
25 lines (20 loc) • 599 B
JavaScript
var RequireObjectCoercible = require('es-object-atoms/RequireObjectCoercible');
var implementation = require('./implementation');
var getProto = require('get-proto');
var $getPrototypeOf = Object.getPrototypeOf;
var getPrototypeOfPrimitivesToo = function getPrototypeOf(value) {
RequireObjectCoercible(value);
return $getPrototypeOf(Object(value));
};
module.exports = function getPolyfill() {
if ($getPrototypeOf) {
try {
$getPrototypeOf(true);
} catch (e) {
return getPrototypeOfPrimitivesToo;
}
return $getPrototypeOf;
}
return getProto || implementation;
};
;