artdaq_node_server  v1_00_07
 All Classes Namespaces Files Variables Pages
isPlainObject.js
1 var baseGetTag = require('./_baseGetTag'),
2  getPrototype = require('./_getPrototype'),
3  isObjectLike = require('./isObjectLike');
4 
6 var objectTag = '[object Object]';
7 
9 var funcProto = Function.prototype,
10  objectProto = Object.prototype;
11 
13 var funcToString = funcProto.toString;
14 
16 var hasOwnProperty = objectProto.hasOwnProperty;
17 
19 var objectCtorString = funcToString.call(Object);
20 
49 function isPlainObject(value) {
50  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
51  return false;
52  }
53  var proto = getPrototype(value);
54  if (proto === null) {
55  return true;
56  }
57  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;
58  return typeof Ctor == 'function' && Ctor instanceof Ctor &&
59  funcToString.call(Ctor) == objectCtorString;
60 }
61 
62 module.exports = isPlainObject;