diff options
Diffstat (limited to 'Source/JavaScriptCore/runtime/JSGlobalData.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/JSGlobalData.h | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/Source/JavaScriptCore/runtime/JSGlobalData.h b/Source/JavaScriptCore/runtime/JSGlobalData.h index 92817f2a2..7e54c00db 100644 --- a/Source/JavaScriptCore/runtime/JSGlobalData.h +++ b/Source/JavaScriptCore/runtime/JSGlobalData.h @@ -30,15 +30,16 @@ #define JSGlobalData_h #include "CachedTranscendentalFunction.h" -#include "Intrinsic.h" #include "DateInstanceCache.h" #include "ExecutableAllocator.h" #include "Heap.h" -#include "Strong.h" +#include "Intrinsic.h" #include "JITStubs.h" #include "JSValue.h" +#include "LLIntData.h" #include "NumericStrings.h" #include "SmallStrings.h" +#include "Strong.h" #include "Terminator.h" #include "TimeoutChecker.h" #include "WeakRandom.h" @@ -65,6 +66,7 @@ namespace JSC { class JSGlobalObject; class JSObject; class Keywords; + class LLIntOffsetsExtractor; class NativeExecutable; class ParserArena; class RegExpCache; @@ -211,13 +213,23 @@ namespace JSC { codeBlocksBeingCompiled.removeLast(); } + void setInDefineOwnProperty(bool inDefineOwnProperty) + { + m_inDefineOwnProperty = inDefineOwnProperty; + } + + bool isInDefineOwnProperty() + { + return m_inDefineOwnProperty; + } + #if ENABLE(ASSEMBLER) ExecutableAllocator executableAllocator; #endif #if !ENABLE(JIT) bool canUseJIT() { return false; } // interpreter only -#elif !ENABLE(INTERPRETER) +#elif !ENABLE(CLASSIC_INTERPRETER) bool canUseJIT() { return true; } // jit only #else bool canUseJIT() { return m_canUseJIT; } @@ -241,7 +253,12 @@ namespace JSC { Heap heap; JSValue exception; -#if ENABLE(JIT) + + const ClassInfo* const jsArrayClassInfo; + const ClassInfo* const jsFinalObjectClassInfo; + + LLInt::Data llintData; + ReturnAddressPtr exceptionLocation; JSValue hostCallReturnValue; CallFrame* callFrameForThrow; @@ -271,7 +288,6 @@ namespace JSC { return scratchBuffers.last(); } #endif -#endif HashMap<OpaqueJSClass*, OwnPtr<OpaqueJSClassContextData> > opaqueJSClassData; @@ -332,7 +348,7 @@ namespace JSC { ASSERT(!m_##type##ArrayDescriptor.m_classInfo || m_##type##ArrayDescriptor.m_classInfo == descriptor.m_classInfo); \ m_##type##ArrayDescriptor = descriptor; \ } \ - const TypedArrayDescriptor& type##ArrayDescriptor() const { return m_##type##ArrayDescriptor; } + const TypedArrayDescriptor& type##ArrayDescriptor() const { ASSERT(m_##type##ArrayDescriptor.m_classInfo); return m_##type##ArrayDescriptor; } registerTypedArrayFunction(int8, Int8); registerTypedArrayFunction(int16, Int16); @@ -346,15 +362,19 @@ namespace JSC { #undef registerTypedArrayFunction private: + friend class LLIntOffsetsExtractor; + JSGlobalData(GlobalDataType, ThreadStackType, HeapSize); static JSGlobalData*& sharedInstanceInternal(); void createNativeThunk(); -#if ENABLE(JIT) && ENABLE(INTERPRETER) +#if ENABLE(JIT) && ENABLE(CLASSIC_INTERPRETER) bool m_canUseJIT; #endif #if ENABLE(GC_VALIDATION) bool m_isInitializingObject; #endif + bool m_inDefineOwnProperty; + TypedArrayDescriptor m_int8ArrayDescriptor; TypedArrayDescriptor m_int16ArrayDescriptor; TypedArrayDescriptor m_int32ArrayDescriptor; |