{ 
{ 
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;    }};
2454	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/2454/8237a6359bebacf3e34f1134ef713c687c8e3edb/lib.js/clean/extension/content/firebug/lib.js