artdaq_node_server  v1_00_08
 All Classes Namespaces Files Variables Pages
isEmpty.js
1 var baseKeys = require('./_baseKeys'),
2  getTag = require('./_getTag'),
3  isArguments = require('./isArguments'),
4  isArray = require('./isArray'),
5  isArrayLike = require('./isArrayLike'),
6  isBuffer = require('./isBuffer'),
7  isPrototype = require('./_isPrototype'),
8  isTypedArray = require('./isTypedArray');
9 
11 var mapTag = '[object Map]',
12  setTag = '[object Set]';
13 
15 var objectProto = Object.prototype;
16 
18 var hasOwnProperty = objectProto.hasOwnProperty;
19 
53 function isEmpty(value) {
54  if (value == null) {
55  return true;
56  }
57  if (isArrayLike(value) &&
58  (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||
59  isBuffer(value) || isTypedArray(value) || isArguments(value))) {
60  return !value.length;
61  }
62  var tag = getTag(value);
63  if (tag == mapTag || tag == setTag) {
64  return !value.size;
65  }
66  if (isPrototype(value)) {
67  return !baseKeys(value).length;
68  }
69  for (var key in value) {
70  if (hasOwnProperty.call(value, key)) {
71  return false;
72  }
73  }
74  return true;
75 }
76 
77 module.exports = isEmpty;