summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/webkit
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit')
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp6
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp16
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/PropertyNameArray.h1
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.cpp6
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.h2
-rw-r--r--src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h2
10 files changed, 34 insertions, 4 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h b/src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h
index eeeac6f..594c4dd 100644
--- a/src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h
+++ b/src/3rdparty/webkit/JavaScriptCore/bytecode/Instruction.h
@@ -32,6 +32,7 @@
#include "MacroAssembler.h"
#include "Opcode.h"
#include "Structure.h"
+#include "StructureChain.h"
#include <wtf/VectorTraits.h>
#define POLYMORPHIC_LIST_CACHE_SIZE 8
diff --git a/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp b/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp
index 4a33e67..da541c5 100644
--- a/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITOpcodes.cpp
@@ -285,6 +285,11 @@ void JIT::emit_op_tear_off_arguments(Instruction*)
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.
if (m_codeBlock->needsFullScopeChain())
JITStubCall(this, JITStubs::cti_op_ret_scopeChain).call();
@@ -686,6 +691,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 0eb0799..0a5eb07 100644
--- a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.cpp
@@ -2747,9 +2747,23 @@ 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());
}
}
+
+DEFINE_STUB_FUNCTION(void, op_debug_return)
+{
+ STUB_INIT_STACK_FRAME(stackFrame);
+ CallFrame* callFrame = stackFrame.callFrame;
+ if (JSC::Debugger* debugger = callFrame->lexicalGlobalObject()->debugger() ) {
+ JSValue returnValue = callFrame->r(stackFrame.args[0].int32()).jsValue();
+ intptr_t sourceID = callFrame->codeBlock()->ownerNode()->sourceID();
+ debugger->functionExit(returnValue, sourceID);
+ }
+}
+
#endif
DEFINE_STUB_FUNCTION(EncodedJSValue, vm_throw)
diff --git a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.h b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.h
index 60bf64a..325c3fd 100644
--- a/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.h
+++ b/src/3rdparty/webkit/JavaScriptCore/jit/JITStubs.h
@@ -223,6 +223,7 @@ namespace JITStubs { extern "C" {
void JIT_STUB cti_op_debug(STUB_ARGS_DECLARATION);
#ifdef QT_BUILD_SCRIPT_LIB
void JIT_STUB cti_op_debug_catch(STUB_ARGS_DECLARATION);
+ void JIT_STUB cti_op_debug_return(STUB_ARGS_DECLARATION);
#endif
void JIT_STUB cti_op_end(STUB_ARGS_DECLARATION);
void JIT_STUB cti_op_jmp_scopes(STUB_ARGS_DECLARATION);
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.h b/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.h
index dc11fee..98e9b68 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.h
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSGlobalObject.h
@@ -27,6 +27,7 @@
#include "NativeFunctionWrapper.h"
#include "NumberPrototype.h"
#include "StringPrototype.h"
+#include "StructureChain.h"
#include <wtf/HashSet.h>
#include <wtf/OwnPtr.h>
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/PropertyNameArray.h b/src/3rdparty/webkit/JavaScriptCore/runtime/PropertyNameArray.h
index b4382f4..67ee9c8 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/PropertyNameArray.h
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/PropertyNameArray.h
@@ -24,6 +24,7 @@
#include "CallFrame.h"
#include "Identifier.h"
#include "Structure.h"
+#include "StructureChain.h"
#include <wtf/HashSet.h>
#include <wtf/Vector.h>
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h b/src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h
index 0de03a3..dcd4e50 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/Structure.h
@@ -30,7 +30,6 @@
#include "JSType.h"
#include "JSValue.h"
#include "PropertyMapHashTable.h"
-#include "StructureChain.h"
#include "StructureTransitionTable.h"
#include "TypeInfo.h"
#include "UString.h"
@@ -47,6 +46,7 @@ namespace JSC {
class PropertyNameArray;
class PropertyNameArrayData;
+ class StructureChain;
class Structure : public RefCounted<Structure> {
public:
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.cpp b/src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.cpp
index 85049b1..acebc86 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.cpp
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.cpp
@@ -25,6 +25,7 @@
#include "config.h"
#include "StructureChain.h"
+#include "Structure.h"
#include "JSObject.h"
#include "Structure.h"
@@ -46,6 +47,11 @@ StructureChain::StructureChain(Structure* head)
m_vector[i] = 0;
}
+PassRefPtr<StructureChain> StructureChain::create(Structure* head)
+{
+ return adoptRef(new StructureChain(head));
+}
+
bool StructureChain::isCacheable() const
{
uint32_t i = 0;
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.h b/src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.h
index c48749d..5990e17 100644
--- a/src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.h
+++ b/src/3rdparty/webkit/JavaScriptCore/runtime/StructureChain.h
@@ -37,7 +37,7 @@ namespace JSC {
class StructureChain : public RefCounted<StructureChain> {
public:
- static PassRefPtr<StructureChain> create(Structure* head) { return adoptRef(new StructureChain(head)); }
+ static PassRefPtr<StructureChain> create(Structure* head);
RefPtr<Structure>* head() { return m_vector.get(); }
bool isCacheable() const;
diff --git a/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
index e1e4ba3..fa37d55 100644
--- a/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
+++ b/src/3rdparty/webkit/JavaScriptCore/wtf/Platform.h
@@ -501,7 +501,7 @@
#endif
#if !PLATFORM(WIN_OS) && !PLATFORM(SOLARIS) && !PLATFORM(QNX) \
- && !PLATFORM(SYMBIAN) && !COMPILER(RVCT) && !PLATFORM(AIX)
+ && !PLATFORM(SYMBIAN) && !COMPILER(RVCT) && !PLATFORM(AIX) && !PLATFORM(HPUX)
#define HAVE_TM_GMTOFF 1
#define HAVE_TM_ZONE 1
#define HAVE_TIMEGM 1