rem: url = this.denormalizeURL(url);  var context = this.context; var foundScript = null; this.jsd.enumerateScripts({enumerateScript: function(script) { if (script.fileName == url && line >= script.baseLineNumber && line <= script.baseLineNumber+script.lineExtent) {    if (!foundScript || script.lineExtent <= foundScript.lineExtent) foundScript = script; } else { if (context && context.evalSourceURLByTag && context.evalSourceURLByTag[script.tag] == url) { var offsetToScript = context.evalSourceLinesByTag[script.tag]; if (line >= offsetToScript && line <= offsetToScript + script.lineExtent) foundScript = script; } else if (context && context.eventSourceURLByTag && context.eventSourceURLByTag[script.tag] == url) { foundScript = script; } else if (context && context.functionCtorSourceURLByTag && context.functionCtorSourceURLByTag[script.tag] == url) { foundScript = script; } } }});  return foundScript; 
add: var sourceFile = context.sourceFileMap[url]; var script = sourceFile.getScriptByLineNumer(line); if (!script) FBTrace.sysout("Need to build line table or line is not executable\n"); return script; 
context: this.findScript = function(url, line){    url = this.denormalizeURL(url);    var context = this.context;    var foundScript = null;    this.jsd.enumerateScripts({enumerateScript: function(script)    {        if (script.fileName == url && line >= script.baseLineNumber            && line <= script.baseLineNumber+script.lineExtent)        {            // Look for the script with the smallest number of lines, since the range check            // doesn't account for functions inside of other functions            // XXXjoe Use isLineExecutable instead?            if (!foundScript || script.lineExtent <= foundScript.lineExtent)                foundScript = script;        }        else        {            if (context && context.evalSourceURLByTag && context.evalSourceURLByTag[script.tag] == url)            {                var offsetToScript = context.evalSourceLinesByTag[script.tag];                if (line >= offsetToScript && line <= offsetToScript + script.lineExtent)                    foundScript = script;  // debugger.onEvalScript deals with functions in functions.            }            else if (context && context.eventSourceURLByTag && context.eventSourceURLByTag[script.tag] == url)            {                foundScript = script;            }            else if (context && context.functionCtorSourceURLByTag && context.functionCtorSourceURLByTag[script.tag] == url)            {                foundScript = script;            }        }    }});    return foundScript;};
meta: 7450	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/7450/c5f013dccda5f25ec6c3894c73898353bae36759/lib.js/buggy/extension/content/firebug/lib.js