Name Description Size
debug.js // Search object model //****************************************************************************************** function traverse(util, searchTerm, options) { var options = options || {}; var obj = options.obj || window; var path = options.path || ((obj==window) ? "window" : ""); var props = Object.keys(obj); props.forEach(function(prop) { if ((tests[util] || util)(searchTerm, obj, prop)){ console.log([path, ".", prop].join(""), "->",["(", typeof obj[prop], ")"].join(""), obj[prop]); } if(Object.prototype.toString.call(obj[prop])=="[object Object]" && (obj[prop] != obj) && path.split(".").indexOf(prop) == -1) { traverse(util, searchTerm, {obj: obj[prop], path: [path,prop].join(".")}); } }); } function search(util, expected, searchTerm, options) { if (!expected || typeof searchTerm == expected) { traverse(util, searchTerm, options); } else { console.error([searchTerm, 'must be', expected].join(' ')) } } var tests = { 'name': function(searchTerm, obj, prop) {return searchTerm == prop}, 'nameContains': function(searchTerm, obj, prop) {return prop.indexOf(searchTerm)>-1}, 'type': function(searchTerm, obj, prop) {return obj[prop] instanceof searchTerm}, 'value': function(searchTerm, obj, prop) {return obj[prop] === searchTerm}, 'valueCoerced': function(searchTerm, obj, prop) {return obj[prop] == searchTerm} } function byName(searchTerm, options) {search('name', 'string', searchTerm, options);}; function byNameContains(searchTerm, options) {search('nameContains', 'string', searchTerm, options);}; function byType(searchTerm, options) {search('type', 'function', searchTerm, options);}; function byValue(searchTerm, options) {search('value', null, searchTerm, options);}; function byValueCoerced(searchTerm, options) {search('valueCoerced', null, searchTerm, options);}; function custom(fn, options) {traverse(fn, null, options);}; //****************************************************************************************** // Event logging //****************************************************************************************** var ALL = 'all'; //no filter //no logging by default var defaultEventNamesFilter = []; var defaultActionsFilter = []; var logFilter = retrieveLogFilter(); function filterEventLogsByAction(/*actions 5247