MCPcopy
hub / github.com/bahmutov/code-snippets / sizeof

Function sizeof

ng-scope-size.js:25–86  ·  view source on GitHub ↗
(object)

Source from the content-addressed store, hash-verified

23 */
24 /* jshint -W073, -W071 */
25 function sizeof(object){
26
27 // initialise the list of objects and size
28 var objects = [object];
29 var size = 0;
30
31 // loop over the objects
32 for (var index = 0; index < objects.length; index += 1) {
33
34 // determine the type of the object
35 switch (typeof objects[index]) {
36
37 case 'boolean': {
38 size += 4; break;
39 }
40
41 case 'number': {
42 size += 8; break;
43 }
44
45 case 'string': {
46 size += 2 * objects[index].length;
47 break;
48 }
49
50 case 'object': {
51
52 // loop over the keys
53 for (var key in objects[index]) {
54 if (!objects[index].hasOwnProperty(key)) {
55 continue;
56 }
57 if (key[0] === '$' || key === 'this' || key === 'constructor' || key === 'lenth') {
58 continue; // angular's internal property ($apply, etc)
59 }
60
61 // determine whether the value has already been processed
62 var processed = false;
63 /* jshint -W073 */
64 for (var search = 0; search < objects.length; search += 1){
65 if (objects[search] === objects[index][key]){
66 processed = true;
67 break;
68 }
69 }
70
71 // queue the value to be processed if appropriate
72 if (!processed) {
73 objects.push(objects[index][key]);
74 }
75
76 }
77 }
78
79 }
80
81 }
82

Callers 1

ng-scope-size.jsFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected