sync with gnome
[gnome.introspection-doc-generator] / console.js
1 //<Script type="text/javascript">
2
3
4 var console = {
5     log : function (v)  {
6        //Seed.print(v);
7         print(v);
8     },
9     dump : function (ar) {
10         //Seed.print(this._dump(ar, 0));
11         print(this._dump(ar, 0));
12     },
13
14     _dump: function(arr,level) {
15         var dumped_text = "";
16         if(!level) level = 0;
17         
18         
19         //The padding given at the beginning of the line.
20         var level_padding = "";
21         for(var j=0;j<level+1;j++) level_padding += "    ";
22         
23         if(level > 15) return  level_padding + "[ ... to deep ...]\n";
24         
25         if(typeof(arr) == 'object') { //Array/Hashes/Objects 
26          
27         
28             for(var item in arr) {
29                 var value = arr[item];
30                 switch (typeof(value)) {
31                     case 'object' : 
32                         dumped_text += level_padding + "'" + item + "' ...\n";
33                         dumped_text += this._dump(value,level+1) + "\n";
34                         break;
35                     
36                     case 'function' : 
37                         dumped_text += level_padding + "'" + item + "' => FUNCTION \n";
38                         break;
39                     
40                     default: 
41                         dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
42                         break;
43                 }
44             }
45         } else { //Stings/Chars/Numbers etc.
46             dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
47         }
48         return dumped_text;
49     }
50 }