1/** 2 * Debug utilities (for internal use only!) 3 * 4 * @package WordPress 5 * @subpackage ThemeREX Addons 6 * @since v1.0 7 */ 8 9/* global jQuery:false */ 10/* global TRX_ADDONS_STORAGE:false */ 11 12(function() { 13 14 "use strict"; 15 16 window.trx_addons_debug_object = function(obj) { 17 var recursive = arguments[1]!==undefined ? arguments[1] : 1; // Show inner objects (arrays) in depth 18 var showMethods = arguments[2]!==undefined ? arguments[2] : false; // Show object's methods 19 var level = arguments[3]!==undefined ? arguments[3] : 0; // Nesting level (for internal usage only) 20 var dispStr = ""; 21 var addStr = ""; 22 var curStr = ""; 23 if (level > 0) { 24 dispStr += (obj===null ? "null" : typeof(obj)) + "\n"; 25 addStr = trx_addons_replicate(' ', level*2); 26 } 27 if (obj!==null && (typeof(obj)=='object' || typeof(obj)=='array' || (typeof(obj)=='function' && level==0))) { 28 for (var prop in obj) { 29 if (!showMethods && typeof(obj[prop])=='function') // || prop=='innerHTML' || prop=='outerHTML' || prop=='innerText' || prop=='outerText') 30 continue; 31 if (level<recursive && (typeof(obj[prop])=='object' || typeof(obj[prop])=='array') && obj[prop]!=obj) 32 dispStr += addStr + prop + '=' + trx_addons_debug_object(obj[prop], recursive, showMethods, level+1); 33 else { 34 try { 35 curStr = "" + obj[prop]; 36 } catch (e) { 37 curStr = "--- Not evaluate ---"; 38 } 39 dispStr += addStr+prop+'='+(typeof(obj[prop])=='string' ? '"' : '')+curStr+(typeof(obj[prop])=='string' ? '"' : '')+"\n"; 40 } 41 } 42 } else if (typeof(obj)!='function') 43 dispStr += addStr+(typeof(obj)=='string' ? '"' : '')+obj+(typeof(obj)=='string' ? '"' : '')+"\n";
44 return dispStr; //decodeURI(dispStr); 45 }; 46 47 window.trx_addons_debug_log = function(s,clr) { 48 if (TRX_ADDONS_STORAGE['user_logged_in']) { 49 if (jQuery('#debug_log').length == 0) { 50 jQuery('body').append('<div id="debug_log"><span id="debug_log_close" onclick="jQuery(\'#debug_log\').hide();">x</span><pre id="debug_log_content"></pre></div>'); 51 } 52 if (clr) jQuery('#debug_log_content').empty(); 53 jQuery('#debug_log_content').prepend(s+' '); 54 jQuery('#debug_log').show(); 55 } 56 }; 57 58 window.dcl===undefined && (window.dcl = function(s) { console.log(s); }); 59 window.dco===undefined && (window.dco = function(s,r,m) { console.log(trx_addons_debug_object(s,r,m)); }); 60 window.dal===undefined && (window.dal = function(s) { if (TRX_ADDONS_STORAGE['user_logged_in']) alert(s); }); 61 window.dao===undefined && (window.dao = function(s,r,m) { if (TRX_ADDONS_STORAGE['user_logged_in']) alert(trx_addons_debug_object(s,r,m)); }); 62 window.ddl===undefined && (window.ddl = function(s,c) { trx_addons_debug_log(s); }); 63 window.ddo===undefined && (window.ddo = function(s,r,m,c) { trx_addons_debug_log(trx_addons_debug_object(s,r,m),c); }); 64 65})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.