mirror of
https://github.com/nodejs/node.git
synced 2025-05-18 19:31:09 +00:00

PR-URL: https://github.com/nodejs/io.js/pull/2286 Reviewed-By: Roman Reiss <me@silverwind.io>
21 lines
574 B
JavaScript
21 lines
574 B
JavaScript
'use strict';
|
|
|
|
var getPrototypeOf = Object.getPrototypeOf, prototype = Object.prototype
|
|
, toString = prototype.toString
|
|
|
|
, id = Object().toString();
|
|
|
|
module.exports = function (value) {
|
|
var proto, constructor;
|
|
if (!value || (typeof value !== 'object') || (toString.call(value) !== id)) {
|
|
return false;
|
|
}
|
|
proto = getPrototypeOf(value);
|
|
if (proto === null) {
|
|
constructor = value.constructor;
|
|
if (typeof constructor !== 'function') return true;
|
|
return (constructor.prototype !== value);
|
|
}
|
|
return (proto === prototype) || (getPrototypeOf(proto) === null);
|
|
};
|