summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/javascriptcore/JavaScriptCore/interpreter
diff options
context:
space:
mode:
authorBea Lam <bea.lam@nokia.com>2009-10-04 23:09:36 (GMT)
committerBea Lam <bea.lam@nokia.com>2009-10-04 23:09:36 (GMT)
commit8e3bc733da076e321bd9a03d74aa79eb32d8d1e8 (patch)
treeb725ef8ad82e79526e3156aeed4818166b4fd644 /src/3rdparty/javascriptcore/JavaScriptCore/interpreter
parent26902aaa6aec89f873cc5e4b13d953f5c83049cc (diff)
parentc76bb1dcda7b0339d9de427d155b593b3779bea7 (diff)
downloadQt-8e3bc733da076e321bd9a03d74aa79eb32d8d1e8.zip
Qt-8e3bc733da076e321bd9a03d74aa79eb32d8d1e8.tar.gz
Qt-8e3bc733da076e321bd9a03d74aa79eb32d8d1e8.tar.bz2
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'src/3rdparty/javascriptcore/JavaScriptCore/interpreter')
-rw-r--r--src/3rdparty/javascriptcore/JavaScriptCore/interpreter/Interpreter.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/Interpreter.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/Interpreter.cpp
index bfb0307..76c8510 100644
--- a/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/Interpreter.cpp
+++ b/src/3rdparty/javascriptcore/JavaScriptCore/interpreter/Interpreter.cpp
@@ -885,13 +885,21 @@ JSValue Interpreter::execute(EvalExecutable* eval, CallFrame* callFrame, JSObjec
}
Register* oldEnd = m_registerFile.end();
+#ifdef QT_BUILD_SCRIPT_LIB //with QtScript, we do not necesserly start from scratch
+ Register* newEnd = oldEnd + globalRegisterOffset + codeBlock->m_numCalleeRegisters;
+#else
Register* newEnd = m_registerFile.start() + globalRegisterOffset + codeBlock->m_numCalleeRegisters;
+#endif
if (!m_registerFile.grow(newEnd)) {
*exception = createStackOverflowError(callFrame);
return jsNull();
}
+#ifdef QT_BUILD_SCRIPT_LIB //with QtScript, we do not necesserly start from scratch
+ CallFrame* newCallFrame = CallFrame::create(oldEnd + globalRegisterOffset);
+#else
CallFrame* newCallFrame = CallFrame::create(m_registerFile.start() + globalRegisterOffset);
+#endif
// a 0 codeBlock indicates a built-in caller
newCallFrame->r(codeBlock->thisRegister()) = JSValue(thisObj);
@@ -3076,6 +3084,7 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
#else
newCallFrame->init(0, vPC + 5, scopeChain, callFrame, dst, argCount, asObject(v));
#endif
+
Register* thisRegister = newCallFrame->registers() - RegisterFile::CallFrameHeaderSize - argCount;
ArgList args(thisRegister + 1, argCount - 1);
@@ -3234,7 +3243,6 @@ JSValue Interpreter::privateExecute(ExecutionFlag flag, RegisterFile* registerFi
newCallFrame->init(0, vPC + 5, scopeChain, callFrame, dst, argCount, asObject(v));
#endif
-
Register* thisRegister = newCallFrame->registers() - RegisterFile::CallFrameHeaderSize - argCount;
ArgList args(thisRegister + 1, argCount - 1);