1234567891011121314151617181920 |
- "use strict";
- var getPrototypeOf = Object.getPrototypeOf
- , prototype = Object.prototype
- , objToString = prototype.toString
- , id = Object().toString();
- module.exports = function (value) {
- var proto, valueConstructor;
- if (!value || typeof value !== "object" || objToString.call(value) !== id) {
- return false;
- }
- proto = getPrototypeOf(value);
- if (proto === null) {
- valueConstructor = value.constructor;
- if (typeof valueConstructor !== "function") return true;
- return valueConstructor.prototype !== value;
- }
- return proto === prototype || getPrototypeOf(proto) === null;
- };
|