rem: var lineNo = FBL.getLineAtPCForEvent(frame, context); 
add: var lineNo = FBL.getLineAtPC(frame, context); return new this.StackFrame(context, fn, frame.script, url, lineNo, args); } else if (context.functionCtorSourceURLByTag && frame.script.tag in context.functionCtorSourceURLByTag) { if (FBTrace.DBG_STACK) FBTrace.sysout("lib.getStackFrame Function Ctor frame\n");                              /*@explore*/ var url = context.functionCtorSourceURLByTag[frame.script.tag]; var lineNo = FBL.getLineAtPC(frame, context); 
context: this.getStackFrame = function(frame, context){    if (frame.isNative || frame.isDebugger)   // XXXjjb    {        var excuse = (frame.isNative) ?  "(native)" : "(debugger)";        if (FBTrace.DBG_STACK) FBTrace.sysout("lib.getStackFrame "+excuse+" frame\n");                                 /*@explore*/        return new this.StackFrame(context, excuse, null, excuse, 0, []);    }    try    {        if (frame.script.functionName) // normal js        {            // This causes leak of script objects ??            //var fn = frame.script.functionObject.getWrappedValue();            //var args = this.getFunctionArgValues(fn, frame);            var fn = null;            var args = null;            if (context.evalSourceURLByTag && frame.script.tag in context.evalSourceURLByTag)            {                if (FBTrace.DBG_STACK) FBTrace.sysout("lib.getStackFrame evaled function frame\n");                    /*@explore*/                var url = context.evalSourceURLByTag[frame.script.tag];                var lineNo = FBL.getLineAtPCForEvaled(frame, context);                return new this.StackFrame(context, fn, frame.script, url, lineNo, args);            }            else if (context.eventSourceURLByTag && frame.script.tag in context.eventSourceURLByTag)            {                if (FBTrace.DBG_STACK) FBTrace.sysout("lib.getStackFrame event frame\n");                              /*@explore*/                var url = context.eventSourceURLByTag[frame.script.tag];                var lineNo = FBL.getLineAtPCForEvent(frame, context);                return new this.StackFrame(context, fn, frame.script, url, lineNo, args);            }            if (FBTrace.DBG_STACK) FBTrace.sysout("lib.getStackFrame toplevel function frame\n");                      /*@explore*/            return new this.StackFrame(context, fn, frame.script, frame.script.fileName, frame.line, args);        }        else        {            if (frame.callingFrame) // eval-level            {                var sourceFile = this.getSourceFileForEval(frame.script, context);                if (FBTrace.DBG_STACK) FBTrace.sysout("lib.getStackFrame eval-level sourceFile.href="+sourceFile.href+"\n"); /*@explore*/                var lineNo = FBL.getLineAtPCForEvaled(frame, context);                var eval_frame = new this.StackFrame(context, sourceFile.evalExpression, frame.script, sourceFile.href, lineNo, [sourceFile.evalExpression]);                return eval_frame;            }            else // __top_level__            {                if (FBTrace.DBG_STACK) FBTrace.sysout("lib.getStackFrame top-level\n");                                /*@explore*/                return new this.StackFrame(context, "__top_level__", frame.script, frame.script.fileName, frame.line, []);            }        }    }    catch (exc)    {        if (FBTrace.DBG_STACK) FBTrace.dumpProperties("getStackTrace fails:", exc);                                    /*@explore*/        return null;    }};
meta: 7450	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/7450/4430f0c18a86cfa77637c382657dd43348a627ce/lib.js/clean/extension/content/firebug/lib.js