first commit
This commit is contained in:
176
resources/xajax/xajax_js/xajax_verbose_uncompressed.js
Normal file
176
resources/xajax/xajax_js/xajax_verbose_uncompressed.js
Normal file
@@ -0,0 +1,176 @@
|
||||
/*
|
||||
File: xajax_verbose.js
|
||||
|
||||
The xajax verbose debugging module. This is an optional module, include in
|
||||
your project with care. :)
|
||||
|
||||
Title: xajax verbose debugging module
|
||||
|
||||
Please see <copyright.inc.php> for a detailed description, copyright
|
||||
and license information.
|
||||
*/
|
||||
|
||||
/*
|
||||
@package xajax
|
||||
@version $Id: xajax_verbose_uncompressed 327 2007-02-28 16:55:26Z calltoconstruct $
|
||||
@copyright Copyright (c) 2005-2007 by Jared White & J. Max Wilson
|
||||
@copyright Copyright (c) 2008-2009 by Joseph Woolley, Steffen Konerow, Jared White & J. Max Wilson
|
||||
@license http://www.xajaxproject.org/bsd_license.txt BSD License
|
||||
*/
|
||||
|
||||
try {
|
||||
if ('undefined' == typeof xajax)
|
||||
throw { name: 'SequenceError', message: 'Error: xajax core was not detected, verbose module disabled.' }
|
||||
if ('undefined' == typeof xajax.debug)
|
||||
throw { name: 'SequenceError', message: 'Error: xajax debugger was not detected, verbose module disabled.' }
|
||||
|
||||
/*
|
||||
Class: xajax.debug.verbose
|
||||
|
||||
Provide a high level of detail which can be used to debug hard to find
|
||||
problems.
|
||||
*/
|
||||
xajax.debug.verbose = {}
|
||||
|
||||
/*
|
||||
Function: xajax.debug.verbose.expandObject
|
||||
|
||||
Generate a debug message expanding all the first level
|
||||
members found therein.
|
||||
|
||||
|
||||
Parameters:
|
||||
|
||||
obj - (object): The object to be enumerated.
|
||||
|
||||
Returns:
|
||||
|
||||
string - The textual representation of all the first
|
||||
level members.
|
||||
*/
|
||||
xajax.debug.verbose.expandObject = function(obj) {
|
||||
var rec = true;
|
||||
if (1 < arguments.length)
|
||||
rec = arguments[1];
|
||||
if ('function' == typeof (obj)) {
|
||||
return '[Function]';
|
||||
} else if ('object' == typeof (obj)) {
|
||||
if (true == rec) {
|
||||
var t = ' { ';
|
||||
var separator = '';
|
||||
for (var m in obj) {
|
||||
t += separator;
|
||||
t += m;
|
||||
t += ': ';
|
||||
try {
|
||||
t += xajax.debug.verbose.expandObject(obj[m], false);
|
||||
} catch (e) {
|
||||
t += '[n/a]';
|
||||
}
|
||||
separator = ', ';
|
||||
}
|
||||
t += ' } ';
|
||||
return t;
|
||||
} else return '[Object]';
|
||||
} else return '"' + obj + '"';
|
||||
}
|
||||
|
||||
/*
|
||||
Function: xajax.debug.verbose.makeFunction
|
||||
|
||||
Generate a wrapper function around the specified function.
|
||||
|
||||
Parameters:
|
||||
|
||||
obj - (object): The object that contains the function to be
|
||||
wrapped.
|
||||
name - (string): The name of the function to be wrapped.
|
||||
|
||||
Returns:
|
||||
|
||||
function - The wrapper function.
|
||||
*/
|
||||
xajax.debug.verbose.makeFunction = function(obj, name) {
|
||||
return function() {
|
||||
var fun = name;
|
||||
fun += '(';
|
||||
|
||||
var separator = '';
|
||||
var pLen = arguments.length;
|
||||
for (var p = 0; p < pLen; ++p) {
|
||||
fun += separator;
|
||||
fun += xajax.debug.verbose.expandObject(arguments[p]);
|
||||
separator = ',';
|
||||
}
|
||||
|
||||
fun += ');';
|
||||
|
||||
var msg = '--> ';
|
||||
msg += fun;
|
||||
|
||||
xajax.debug.writeMessage(msg);
|
||||
|
||||
var returnValue = true;
|
||||
var code = 'returnValue = obj(';
|
||||
separator = '';
|
||||
for (var p = 0; p < pLen; ++p) {
|
||||
code += separator;
|
||||
code += 'arguments[' + p + ']';
|
||||
separator = ',';
|
||||
}
|
||||
code += ');';
|
||||
|
||||
eval(code);
|
||||
|
||||
msg = '<-- ';
|
||||
msg += fun;
|
||||
msg += ' returns ';
|
||||
msg += xajax.debug.verbose.expandObject(returnValue);
|
||||
|
||||
xajax.debug.writeMessage(msg);
|
||||
|
||||
return returnValue;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
Function: xajax.debug.verbose.hook
|
||||
|
||||
Generate a wrapper function around each of the functions
|
||||
contained within the specified object.
|
||||
|
||||
Parameters:
|
||||
|
||||
x - (object): The object to be scanned.
|
||||
base - (string): The base reference to be prepended to the
|
||||
generated wrapper functions.
|
||||
*/
|
||||
xajax.debug.verbose.hook = function(x, base) {
|
||||
for (var m in x) {
|
||||
if ('function' == typeof (x[m])) {
|
||||
x[m] = xajax.debug.verbose.makeFunction(x[m], base + m);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
xajax.debug.verbose.hook(xajax, 'xajax.');
|
||||
xajax.debug.verbose.hook(xajax.callback, 'xajax.callback.');
|
||||
xajax.debug.verbose.hook(xajax.css, 'xajax.css.');
|
||||
xajax.debug.verbose.hook(xajax.dom, 'xajax.dom.');
|
||||
xajax.debug.verbose.hook(xajax.events, 'xajax.events.');
|
||||
xajax.debug.verbose.hook(xajax.forms, 'xajax.forms.');
|
||||
xajax.debug.verbose.hook(xajax.js, 'xajax.js.');
|
||||
xajax.debug.verbose.hook(xajax.tools, 'xajax.tools.');
|
||||
xajax.debug.verbose.hook(xajax.tools.queue, 'xajax.tools.queue.');
|
||||
xajax.debug.verbose.hook(xajax.command, 'xajax.command.');
|
||||
xajax.debug.verbose.hook(xajax.command.handler, 'xajax.command.handler.');
|
||||
|
||||
/*
|
||||
Boolean: isLoaded
|
||||
|
||||
true - indicates that the verbose debugging module is loaded.
|
||||
*/
|
||||
xajax.debug.verbose.isLoaded = true;
|
||||
} catch (e) {
|
||||
alert(e.name + ': ' + e.message);
|
||||
}
|
||||
Reference in New Issue
Block a user