summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit
diff options
context:
space:
mode:
authorJedrzej Nowacki <jedrzej.nowacki@nokia.com>2009-09-07 12:26:48 (GMT)
committerJedrzej Nowacki <jedrzej.nowacki@nokia.com>2009-09-07 12:54:20 (GMT)
commit54fc571caf61b81442449f5586276cf782488cdd (patch)
tree81f6e1ce50ad14c39fc473a149997c8d44e57f10 /src/3rdparty/webkit
parent63c3aede3998725960fbe17887e966a7acecbc53 (diff)
downloadQt-54fc571caf61b81442449f5586276cf782488cdd.zip
Qt-54fc571caf61b81442449f5586276cf782488cdd.tar.gz
Qt-54fc571caf61b81442449f5586276cf782488cdd.tar.bz2
Fix QScriptEngineAgent::functionExit (JIT enabled)
Event functionExit was fixed, now returnValue is correctly passed as an argument to debugger. Few QEXCEPT_FAIL were removed from autotest. Reviewed-by: Kent Hansen
Diffstat (limited to 'src/3rdparty/webkit')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp4
2 files changed, 4 insertions, 1 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp b/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp
index dc192f0..da541c5 100644
--- a/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp
@@ -287,6 +287,7 @@ void JIT::emit_op_ret(Instruction* currentInstruction)
{
#ifdef QT_BUILD_SCRIPT_LIB
JITStubCall stubCall(this, JITStubs::cti_op_debug_return);
+ stubCall.addArgument(Imm32(currentInstruction[1].u.operand));
stubCall.call();
#endif
// We could JIT generate the deref, only calling out to C when the refcount hits zero.
diff --git a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp
index c84d115..0a5eb07 100644
--- a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp
@@ -2758,7 +2758,9 @@ DEFINE_STUB_FUNCTION(void, op_debug_return)
STUB_INIT_STACK_FRAME(stackFrame);
CallFrame* callFrame = stackFrame.callFrame;
if (JSC::Debugger* debugger = callFrame->lexicalGlobalObject()->debugger() ) {
- debugger->functionExit(JSValue(), callFrame->codeBlock()->ownerNode()->sourceID());
+ JSValue returnValue = callFrame->r(stackFrame.args[0].int32()).jsValue();
+ intptr_t sourceID = callFrame->codeBlock()->ownerNode()->sourceID();
+ debugger->functionExit(returnValue, sourceID);
}
}