diff options
author | Jedrzej Nowacki <jedrzej.nowacki@nokia.com> | 2009-09-07 09:55:55 (GMT) |
---|---|---|
committer | Jedrzej Nowacki <jedrzej.nowacki@nokia.com> | 2009-09-07 12:54:06 (GMT) |
commit | 63c3aede3998725960fbe17887e966a7acecbc53 (patch) | |
tree | 95d783ad2b2a5457a8ed5e3829cde74bd6ebe6e9 /src/3rdparty/webkit/JavaScriptCore | |
parent | 23e1c7afed25ccb95cc24d2caa692853f35464ec (diff) | |
download | Qt-63c3aede3998725960fbe17887e966a7acecbc53.zip Qt-63c3aede3998725960fbe17887e966a7acecbc53.tar.gz Qt-63c3aede3998725960fbe17887e966a7acecbc53.tar.bz2 |
Fix QScriptEngineAgent::exceptionCatch (JIT enabled)
Event exceptionCatch fixed, now exceptionValue is correctly passed as an
argument to debugger. Two QEXCEPT_FAIL were removed from autotest.
Reviewed-by: Kent Hansen
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp | 1 | ||||
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp | 4 |
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 dab6682..dc192f0 100644 --- a/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp @@ -690,6 +690,7 @@ void JIT::emit_op_catch(Instruction* currentInstruction) emitPutVirtualRegister(currentInstruction[1].u.operand); #ifdef QT_BUILD_SCRIPT_LIB JITStubCall stubCall(this, JITStubs::cti_op_debug_catch); + stubCall.addArgument(Imm32(currentInstruction[1].u.operand)); stubCall.call(); #endif } diff --git a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp index 1d39ba4..c84d115 100644 --- a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp +++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp @@ -2747,7 +2747,9 @@ DEFINE_STUB_FUNCTION(void, op_debug_catch) STUB_INIT_STACK_FRAME(stackFrame); CallFrame* callFrame = stackFrame.callFrame; if (JSC::Debugger* debugger = callFrame->lexicalGlobalObject()->debugger() ) { - debugger->exceptionCatch(DebuggerCallFrame(callFrame), callFrame->codeBlock()->ownerNode()->sourceID()); + JSValue exceptionValue = callFrame->r(stackFrame.args[0].int32()).jsValue(); + DebuggerCallFrame debuggerCallFrame(callFrame, exceptionValue); + debugger->exceptionCatch(debuggerCallFrame, callFrame->codeBlock()->ownerNode()->sourceID()); } } |