From 1bf8d08dbfb63cbac2188ed5645ffc8d6a5e88bc Mon Sep 17 00:00:00 2001 From: "brendan%mozilla.org" Date: Tue, 8 Mar 2005 06:23:10 +0000 Subject: [PATCH] Propagate special and compile-n-go flags from top frame when pushing a compiler frame (285219, r=shaver). git-svn-id: svn://10.0.0.236/trunk@170368 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/js/src/jsparse.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mozilla/js/src/jsparse.c b/mozilla/js/src/jsparse.c index 052f216654f..12a4684dd44 100644 --- a/mozilla/js/src/jsparse.c +++ b/mozilla/js/src/jsparse.c @@ -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_SPECIAL | 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; }