Propagate special and compile-n-go flags from top frame when pushing a compiler frame, EXCEPT when pushing a frame for a function body -- there, propagate compile-n-go (285219, r=shaver).

This commit is contained in:
brendan%mozilla.org 2005-03-09 01:02:27 +00:00
Родитель a9737587bb
Коммит e0b35fdac6
1 изменённых файлов: 8 добавлений и 1 удалений

Просмотреть файл

@ -389,6 +389,8 @@ js_ParseTokenStream(JSContext *cx, JSObject *chain, JSTokenStream *ts)
frame.varobj = chain;
}
frame.down = fp;
if (fp)
frame.flags = fp->flags & (JSFRAME_SPECIAL | JSFRAME_COMPILE_N_GO);
cx->fp = &frame;
}
@ -450,6 +452,8 @@ js_CompileTokenStream(JSContext *cx, JSObject *chain, JSTokenStream *ts,
frame.varobj = chain;
}
frame.down = fp;
if (fp)
frame.flags = fp->flags & (JSFRAME_SPECIAL | JSFRAME_COMPILE_N_GO);
cx->fp = &frame;
}
flags = cx->fp->flags;
@ -641,7 +645,8 @@ FunctionBody(JSContext *cx, JSTokenStream *ts, JSFunction *fun,
frame.fun = fun;
frame.varobj = frame.scopeChain = funobj;
frame.down = fp;
frame.flags = (fp->flags & JSFRAME_COMPILE_N_GO);
if (fp)
frame.flags = fp->flags & JSFRAME_COMPILE_N_GO;
cx->fp = &frame;
}
@ -3636,6 +3641,8 @@ js_ParseXMLTokenStream(JSContext *cx, JSObject *chain, JSTokenStream *ts,
frame.varobj = chain;
}
frame.down = fp;
if (fp)
frame.flags = fp->flags & (JSFRAME_SPECIAL | JSFRAME_COMPILE_N_GO);
cx->fp = &frame;
}