1 sdump('D_TRACE',"Loading error.js\n");
3 var consoleService = Components.classes['@mozilla.org/consoleservice;1']
4 .getService(Components.interfaces.nsIConsoleService);
6 var printDebug = false;
7 var consoleDump = true;
9 var arg_dump_full = false;
17 'D_TRACE_ENTER' : false,
18 'D_TRACE_EXIT' : false,
21 'D_CONSTRUCTOR' : false,
26 'D_PAGED_TREE' : false,
27 'D_GRID_LIST' : false,
28 'D_HTML_TABLE' : false,
35 'D_PATRON_SEARCH' : false,
36 'D_PATRON_SEARCH_FORM' : false,
37 'D_PATRON_SEARCH_RESULTS' : false,
39 'D_PATRON_DISPLAY' : false,
40 'D_PATRON_DISPLAY_STATUS' : false,
41 'D_PATRON_DISPLAY_CONTACT' : false,
43 'D_PATRON_ITEMS' : false,
44 'D_PATRON_CHECKOUT_ITEMS' : false,
45 'D_PATRON_HOLDS' : false,
46 'D_PATRON_BILLS' : false,
47 'D_PATRON_EDIT' : false,
50 'D_CHECKIN_ITEMS' : false,
52 'D_HOLD_CAPTURE' : false,
53 'D_HOLD_CAPTURE_ITEMS' : false,
57 'D_PATRON_UTILS' : false,
58 'D_CIRC_UTILS' : false,
66 'D_SES_RESULT' : true,
75 var sdump_last_time = new Date();
77 function filter_console_init(p) {
78 sdump('D_FILTER',arg_dump(arguments,{0:true}));
80 var filterConsoleListener = {
81 observe: function( msg ) {
88 QueryInterface: function (iid) {
89 if (!iid.equals(Components.interfaces.nsIConsoleListener) &&
90 !iid.equals(Components.interfaces.nsISupports)) {
91 throw Components.results.NS_ERROR_NO_INTERFACE;
97 consoleService.registerListener(filterConsoleListener);
102 sdump('D_TRACE_EXIT',arg_dump(arguments));
105 function sdump(level,msg) {
107 var now = new Date();
108 var message = now.valueOf() + '\tdelta = ' + (now.valueOf() - sdump_last_time.valueOf()) + '\n' + level + '\n' + msg;
109 if (sdump_levels['D_NONE']) return null;
110 if (sdump_levels[level]||sdump_levels['D_ALL']) {
111 sdump_last_time = now;
115 consoleService.logStringMessage(message);
118 dump('Calling sdump but ' + E + '\n');
122 function arg_dump(args,dump_these) {
123 var s = '*>*>*> Called function ';
127 s += args.callee.toString().match(/\w+/g)[1] + ' : ';
128 for (var i = 0; i < args.length; i++)
129 s += typeof(args[i]) + ' ';
131 for (var i = 0; i < args.length; i++)
135 //dump('dump_these[i] = ' + dump_these[i] + ' arg = ' + arg + '\n');
137 if (typeof(dump_these[i])=='string') {
139 if (dump_these[i].slice(0,1) == '.') {
140 var cmd = 'arg' + dump_these[i];
143 result = eval( cmd );
145 result = cmd + ' ==> ' + E;
147 s += '\targ #' + i + ': ' + cmd + ' = ' + result;
151 result = eval( dump_these[i] );
153 result = dump_these[i] + ' ==> ' + E;
155 s += '\targ #' + i + ': ' + result;
159 s += '\targ #' + i + ' = ';
161 //s += js2JSON( arg );
170 s += 'Definition: ' + args.callee.toString() + '\n';
175 return s + '\nDEBUG ME: ' + js2JSON(E) + '\n';
179 function handle_error(E,annoy) {
181 if (instanceOf(E,ex)) {
183 //s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
184 //s += 'This error was anticipated.\n\n';
185 //s += js2JSON(E).substr(0,200) + '...\n\n';
186 if (snd_bad) snd_bad();
188 s += '\n\n=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\n\n';
189 s += 'This is a bug that we will fix later.\n\n';
191 s += mw.js2JSON(E).substr(0,1024) + '\n\n';
194 s += E.substr(0,1024) + '\n\n';
199 if (snd_really_bad) snd_really_bad();