ajsfw
Version:
Ajs Framework
62 lines (61 loc) • 2.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function sizeOf(object, levels, level) {
"use strict";
var size = 0;
levels = levels || -1;
level = level || 0;
if (levels !== -1 && level > levels) {
return 0;
}
switch (typeof (object)) {
case "boolean":
size += 4;
break;
case "number":
size += 8;
break;
case "string":
size += 2 * object.length;
break;
case "object":
if (object instanceof Int8Array) {
size += object.byteLength;
}
else {
if (object instanceof Int16Array) {
size += object.byteLength;
}
else {
if (object instanceof Int32Array) {
size += object.byteLength;
}
else {
if (object instanceof Array) {
for (var i = 0; i < object.length; i++) {
size += sizeOf(object[i], levels, level + 1);
}
}
else {
if (object instanceof Array) {
size += 8;
}
else {
if (!(object instanceof Function)) {
for (var key in object) {
if (object.hasOwnProperty(key)) {
size += sizeOf(object[key], levels, level);
}
}
}
}
}
}
}
}
break;
default:
}
return size;
}
exports.sizeOf = sizeOf;