diff options
Diffstat (limited to 'src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalData.h')
-rw-r--r-- | src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalData.h | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalData.h b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalData.h index fb557af53a..c9887e8741 100644 --- a/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalData.h +++ b/src/3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalData.h @@ -33,36 +33,33 @@ #include "ExecutableAllocator.h" #include "JITStubs.h" #include "JSValue.h" +#include "MarkStack.h" +#include "NumericStrings.h" #include "SmallStrings.h" #include "TimeoutChecker.h" #include <wtf/Forward.h> #include <wtf/HashMap.h> #include <wtf/RefCounted.h> -#ifdef QT_BUILD_SCRIPT_LIB -#include "SourcePoolQt.h" -#endif - struct OpaqueJSClass; struct OpaqueJSClassContextData; namespace JSC { + class CodeBlock; class CommonIdentifiers; - class FunctionBodyNode; class IdentifierTable; - class Instruction; class Interpreter; class JSGlobalObject; class JSObject; class Lexer; class Parser; - class ScopeNode; class Stringifier; class Structure; class UString; struct HashTable; + struct Instruction; struct VPtrSet; class JSGlobalData : public RefCounted<JSGlobalData> { @@ -70,7 +67,7 @@ namespace JSC { struct ClientData { virtual ~ClientData() = 0; #ifdef QT_BUILD_SCRIPT_LIB - virtual void mark() {} + virtual void mark(MarkStack&) {} #endif }; @@ -104,7 +101,11 @@ namespace JSC { RefPtr<Structure> stringStructure; RefPtr<Structure> notAnObjectErrorStubStructure; RefPtr<Structure> notAnObjectStructure; -#if !USE(ALTERNATE_JSIMMEDIATE) + RefPtr<Structure> propertyNameIteratorStructure; + RefPtr<Structure> getterSetterStructure; + RefPtr<Structure> apiWrapperStructure; + +#if USE(JSVALUE32) RefPtr<Structure> numberStructure; #endif @@ -117,6 +118,7 @@ namespace JSC { CommonIdentifiers* propertyNames; const MarkedArgumentBuffer* emptyList; // Lists are supposed to be allocated on the stack to have their elements properly marked, which is not the case here - but this list has nothing to mark. SmallStrings smallStrings; + NumericStrings numericStrings; #if ENABLE(ASSEMBLER) ExecutableAllocator executableAllocator; @@ -125,9 +127,6 @@ namespace JSC { Lexer* lexer; Parser* parser; Interpreter* interpreter; -#ifdef QT_BUILD_SCRIPT_LIB - SourcePool* scriptpool; -#endif #if ENABLE(JIT) JITThunks jitStubs; #endif @@ -150,9 +149,15 @@ namespace JSC { HashSet<JSObject*> arrayVisitedElements; - ScopeNode* scopeNodeBeingReparsed; + CodeBlock* functionCodeBlockBeingReparsed; Stringifier* firstStringifierToMark; + MarkStack markStack; + +#ifndef NDEBUG + bool mainThreadOnly; +#endif + private: JSGlobalData(bool isShared, const VPtrSet&); static JSGlobalData*& sharedInstanceInternal(); |