static memorySizeOf()

in src/UXClient/Utils/Utils.ts [1062:1095]


    static memorySizeOf (obj) {
        let bytes = 0;

        let sizeOf = (obj) => {
            if (obj !== null && obj !== undefined) {
                switch (typeof obj) {
                    case 'number':
                        bytes += 8;
                        break;
                    case 'string':
                        bytes += obj.length * 2;
                        break;
                    case 'boolean':
                        bytes += 4;
                        break;
                    case 'object':
                        let objClass = Object.prototype.toString.call(obj).slice(8, -1);
                        if (objClass === 'Object' || objClass === 'Array') {
                            for (let key in obj) {
                                if (!obj.hasOwnProperty(key)) {continue; }
                                sizeOf(key);
                                sizeOf(obj[key]);
                            }
                        } else {
                            bytes += obj.toString().length * 2;
                        }
                        break;
                }
            }
            return bytes;
        };

        return sizeOf(obj);
    }