description and source-codefunction sizeof(object) {
if (object !== null && typeof (object) === 'object') {
if (Buffer.isBuffer(object)) {
return object.length;
}
else {
var bytes = 0;
for (var key in object) {
if(!Object.hasOwnProperty.call(object, key)) {
continue;
}
bytes += sizeof(key);
try {
bytes += sizeof(object[key]);
} catch (ex) {
if(ex instanceof RangeError) {
// circular reference detected, final result might be incorrect
// let's be nice and not throw an exception
bytes = 0;
}
}
}
return bytes;
}
} else if (typeof (object) === 'string') {
return object.length * ECMA_SIZES.STRING;
} else if (typeof (object) === 'boolean') {
return ECMA_SIZES.BOOLEAN;
} else if (typeof (object) === 'number') {
return ECMA_SIZES.NUMBER;
} else {
return 0;
}
}