1 var baseGetTag = require(
'./_baseGetTag'),
2 getPrototype = require(
'./_getPrototype'),
3 isObjectLike = require(
'./isObjectLike');
6 var objectTag =
'[object Object]';
9 var funcProto = Function.prototype,
10 objectProto = Object.prototype;
13 var funcToString = funcProto.toString;
16 var hasOwnProperty = objectProto.hasOwnProperty;
19 var objectCtorString = funcToString.call(Object);
49 function isPlainObject(value) {
50 if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
53 var proto = getPrototype(value);
57 var Ctor = hasOwnProperty.call(proto,
'constructor') && proto.constructor;
58 return typeof Ctor ==
'function' && Ctor instanceof Ctor &&
59 funcToString.call(Ctor) == objectCtorString;
62 module.exports = isPlainObject;