зеркало из https://github.com/mozilla/gecko-dev.git
Hi Norris,
I think there's a small problem with Igor's changes. The modifed Interpreter.java seems to create unnecessary activation objects for InterpretedScripts. You can see this in the debugger (local variables are present even for top level scripts). I believe the attached change will fix the problem. Regards, Chris
This commit is contained in:
Родитель
03a1eb7075
Коммит
a81c4b5ada
|
@ -1498,20 +1498,20 @@ public class Interpreter extends LabelTable {
|
|||
}else if (!theData.itsUseDynamicScope) {
|
||||
scope = fnOrScript.getParentScope();
|
||||
}
|
||||
}else {
|
||||
if (theData.itsCheckThis) {
|
||||
thisObj = ScriptRuntime.getThis(thisObj);
|
||||
}
|
||||
|
||||
if (theData.itsNeedsActivation) {
|
||||
scope = ScriptRuntime.initVarObj(cx, scope, fnOrScript,
|
||||
thisObj, args);
|
||||
}
|
||||
|
||||
} else {
|
||||
scope = ScriptRuntime.initScript(cx, scope, fnOrScript, thisObj,
|
||||
theData.itsFromEvalCode);
|
||||
}
|
||||
|
||||
if (theData.itsCheckThis) {
|
||||
thisObj = ScriptRuntime.getThis(thisObj);
|
||||
}
|
||||
|
||||
if (theData.itsNeedsActivation) {
|
||||
scope = ScriptRuntime.initVarObj(cx, scope, fnOrScript,
|
||||
thisObj, args);
|
||||
}
|
||||
|
||||
DebugFrame frame = null;
|
||||
if (cx.debugger != null) {
|
||||
frame = cx.debugger.enterFrame(cx, scope, thisObj, args,
|
||||
|
|
Загрузка…
Ссылка в новой задаче