diff options
Diffstat (limited to 'Source/JavaScriptCore/runtime/JSGlobalData.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/JSGlobalData.h | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/Source/JavaScriptCore/runtime/JSGlobalData.h b/Source/JavaScriptCore/runtime/JSGlobalData.h index acbcee816..177d80298 100644 --- a/Source/JavaScriptCore/runtime/JSGlobalData.h +++ b/Source/JavaScriptCore/runtime/JSGlobalData.h @@ -152,6 +152,8 @@ namespace JSC { void makeUsableFromMultipleThreads() { heap.machineThreads().makeUsableFromMultipleThreads(); } + Heap heap; // The heap is our first data member to ensure that it's destructed after all the objects that reference it. + GlobalDataType globalDataType; ClientData* clientData; CallFrame* topCallFrame; @@ -234,7 +236,15 @@ namespace JSC { #elif !ENABLE(CLASSIC_INTERPRETER) && !ENABLE(LLINT) bool canUseJIT() { return true; } // jit only #else - bool canUseJIT() { return m_canUseJIT; } + bool canUseJIT() { return m_canUseAssembler; } +#endif + +#if !ENABLE(YARR_JIT) + bool canUseRegExpJIT() { return false; } // interpreter only +#elif !ENABLE(CLASSIC_INTERPRETER) && !ENABLE(LLINT) + bool canUseRegExpJIT() { return true; } // jit only +#else + bool canUseRegExpJIT() { return m_canUseAssembler; } #endif OwnPtr<ParserArena> parserArena; @@ -252,7 +262,6 @@ namespace JSC { TimeoutChecker timeoutChecker; Terminator terminator; - Heap heap; JSValue exception; @@ -324,20 +333,18 @@ namespace JSC { JS_EXPORT_PRIVATE void startSampling(); JS_EXPORT_PRIVATE void stopSampling(); JS_EXPORT_PRIVATE void dumpSampleData(ExecState* exec); - void recompileAllJSFunctions(); RegExpCache* regExpCache() { return m_regExpCache; } #if ENABLE(REGEXP_TRACING) void addRegExpToTrace(PassRefPtr<RegExp> regExp); #endif JS_EXPORT_PRIVATE void dumpRegExpTrace(); - JS_EXPORT_PRIVATE void clearBuiltinStructures(); bool isCollectorBusy() { return heap.isBusy(); } JS_EXPORT_PRIVATE void releaseExecutableMemory(); #if ENABLE(GC_VALIDATION) bool isInitializingObject() const; - void setInitializingObject(bool); + void setInitializingObjectClass(const ClassInfo*); #endif #if CPU(X86) && ENABLE(JIT) @@ -369,11 +376,11 @@ namespace JSC { JSGlobalData(GlobalDataType, ThreadStackType, HeapSize); static JSGlobalData*& sharedInstanceInternal(); void createNativeThunk(); -#if ENABLE(JIT) && (ENABLE(CLASSIC_INTERPRETER) || ENABLE(LLINT)) - bool m_canUseJIT; +#if ENABLE(ASSEMBLER) && (ENABLE(CLASSIC_INTERPRETER) || ENABLE(LLINT)) + bool m_canUseAssembler; #endif #if ENABLE(GC_VALIDATION) - bool m_isInitializingObject; + const ClassInfo* m_initializingObjectClass; #endif bool m_inDefineOwnProperty; @@ -391,12 +398,12 @@ namespace JSC { #if ENABLE(GC_VALIDATION) inline bool JSGlobalData::isInitializingObject() const { - return m_isInitializingObject; + return !!m_initializingObjectClass; } - inline void JSGlobalData::setInitializingObject(bool initializingObject) + inline void JSGlobalData::setInitializingObjectClass(const ClassInfo* initializingObjectClass) { - m_isInitializingObject = initializingObject; + m_initializingObjectClass = initializingObjectClass; } #endif |