]> git.evergreen-ils.org Git - Evergreen.git/blob - Evergreen/staff_client/chrome/content/evergreen/util/error.js
Bill found us arguments.callee :D
[Evergreen.git] / Evergreen / staff_client / chrome / content / evergreen / util / error.js
1 sdump('D_TRACE',"Loading error.js\n");
2
3 var sdump_levels = {
4         'D_TRACE' :  true,
5         'D_AUTH' : false,
6         'D_UTIL' : false,
7         'D_EXPLODE' : false,
8         'D_PRINT' : false,
9         'D_SES' : true,
10         'D_SPAWN' : true,
11         'D_TAB' : true
12 };
13
14 function sdump(level,msg) {
15         try {
16                 if (sdump_levels[level])
17                         debug(msg);
18         } catch(E) {}
19 }
20
21 function arg_dump(args,dump_these) {
22         var s = '*>*>*> Called function ';
23         try {
24                 if (!dump_these)
25                         dump_these = {};
26                 s += args.callee.toString().match(/\w+/g)[1] + ' : ';
27                 for (var i = 0; i < args.length; i++)
28                         s += typeof(args[i]) + ' ';
29                 s += '\n';
30                 for (var i = 0; i < args.length; i++)
31                         if (dump_these[i]) {
32                                 s += '\targ #' + i + ' = ';
33                                 try {
34                                         s += js2JSON( args[i] );
35                                 } catch(E) {
36                                         s += args[i];
37                                 }
38                                 s += '\n';
39                         }
40                 return s;
41         } catch(E) {
42                 return s + '\nDEBUG ME: ' + js2JSON(E) + '\n';
43         }
44 }
45
46 function handle_error(E) {
47         var s = '';
48         if (instanceOf(E,ex)) {
49                 s += E.err_msg();
50                 //s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
51                 //s += 'This error was anticipated.\n\n';
52                 //s += js2JSON(E).substr(0,200) + '...\n\n';
53                 if (snd_bad) snd_bad();
54         } else {
55                 s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
56                 s += 'This is a bug that we will fix later.\n\n';
57                 s += js2JSON(E).substr(0,200) + '\n\n';
58                 if (snd_really_bad) snd_really_bad();
59         }
60         s_alert(s);
61 }
62