rem: if (isFunction(args[i])) { 
add: if (typeof args[i] == "function") { 
context:       return function() {                // First output the call along with actual parameters        var args = new Array(arguments.length);        var argsString = "";        for (var i = 0; i < args.length; i++) {          args[i] = arguments[i];          argsString += (i == 0 ? "" : ", ");                    if (isFunction(args[i])) {            argsString += "[function]";          } else {            argsString += args[i];          }        }        G_TraceCall(this, "> " + objName + "." + methName + "(" +                     argsString + ")");                // Then run the function, capturing the return value and throws        try {          var retVal = meth.apply(this, arguments);          var reportedRetVal = retVal;          if (typeof reportedRetVal == "undefined")            reportedRetVal = "void";          else if (reportedRetVal === "")            reportedRetVal = "\"\" (empty string)";        } catch (e) {          if (e && !e.__logged) {            G_TraceCall(this, "Error: " + e.message + ". " +                         e.fileName + ": " + e.lineNumber);            try {              e.__logged = true;            } catch (e2) {              // Sometimes we can't add the __logged flag because it's an              // XPC wrapper              throw e;            }          }                    throw e;      // Re-throw!        }        // And spit it out already        G_TraceCall(          this,           "< " + objName + "." + methName + ": " + reportedRetVal);        return retVal;      };
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/8395/51d8b89099c3b693a5c933646d79004f79d2c6ac/debug.js/clean/toolkit/components/url-classifier/content/moz/debug.js