node/tools/eslint/node_modules/es5-ext/object/is-plain-object.js
Michaël Zasso 2d441493a4 tools: update eslint to v1.10.3
PR-URL: https://github.com/nodejs/io.js/pull/2286
Reviewed-By: Roman Reiss <me@silverwind.io>
2016-01-13 23:15:39 +01:00

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