"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; };