| Index: JavaScriptCore/runtime/JSGlobalData.h
|
| ===================================================================
|
| --- JavaScriptCore/runtime/JSGlobalData.h (revision 10232)
|
| +++ JavaScriptCore/runtime/JSGlobalData.h (working copy)
|
| @@ -31,6 +31,7 @@
|
|
|
| #include "Collector.h"
|
| #include "ExecutableAllocator.h"
|
| +#include "JITStubs.h"
|
| #include "JSValue.h"
|
| #include "SmallStrings.h"
|
| #include "TimeoutChecker.h"
|
| @@ -58,6 +59,7 @@
|
| class Structure;
|
| class UString;
|
| struct HashTable;
|
| + struct VPtrSet;
|
|
|
| class JSGlobalData : public RefCounted<JSGlobalData> {
|
| public:
|
| @@ -68,7 +70,7 @@
|
| static bool sharedInstanceExists();
|
| static JSGlobalData& sharedInstance();
|
|
|
| - static PassRefPtr<JSGlobalData> create();
|
| + static PassRefPtr<JSGlobalData> create(bool isShared = false);
|
| static PassRefPtr<JSGlobalData> createLeaked();
|
| ~JSGlobalData();
|
|
|
| @@ -80,18 +82,6 @@
|
| bool isSharedInstance;
|
| ClientData* clientData;
|
|
|
| - Interpreter* interpreter;
|
| - TimeoutChecker timeoutChecker;
|
| -
|
| - JSValuePtr exception;
|
| -#if ENABLE(JIT)
|
| - void* exceptionLocation;
|
| -#endif
|
| -
|
| - const Vector<Instruction>& numericCompareFunction(ExecState*);
|
| - Vector<Instruction> lazyNumericCompareFunction;
|
| - bool initializingLazyNumericCompareFunction;
|
| -
|
| const HashTable* arrayTable;
|
| const HashTable* dateTable;
|
| const HashTable* mathTable;
|
| @@ -110,15 +100,40 @@
|
| RefPtr<Structure> numberStructure;
|
| #endif
|
|
|
| + void* jsArrayVPtr;
|
| + void* jsByteArrayVPtr;
|
| + void* jsStringVPtr;
|
| + void* jsFunctionVPtr;
|
| +
|
| IdentifierTable* identifierTable;
|
| CommonIdentifiers* propertyNames;
|
| const ArgList* 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;
|
| -
|
| - HashMap<OpaqueJSClass*, OpaqueJSClassContextData*> opaqueJSClassData;
|
|
|
| +#if ENABLE(ASSEMBLER)
|
| + ExecutableAllocator executableAllocator;
|
| +#endif
|
| +
|
| Lexer* lexer;
|
| Parser* parser;
|
| + Interpreter* interpreter;
|
| +#if ENABLE(JIT)
|
| + JITStubs jitStubs;
|
| +#endif
|
| + TimeoutChecker timeoutChecker;
|
| + Heap heap;
|
| +
|
| + JSValuePtr exception;
|
| +#if ENABLE(JIT)
|
| + void* exceptionLocation;
|
| +#endif
|
| +
|
| + const Vector<Instruction>& numericCompareFunction(ExecState*);
|
| + Vector<Instruction> lazyNumericCompareFunction;
|
| + bool initializingLazyNumericCompareFunction;
|
| +
|
| + HashMap<OpaqueJSClass*, OpaqueJSClassContextData*> opaqueJSClassData;
|
| +
|
| HashSet<ParserRefCounted*>* newParserObjects;
|
| HashCountedSet<ParserRefCounted*>* parserObjectExtraRefCounts;
|
|
|
| @@ -129,17 +144,8 @@
|
|
|
| ScopeNode* scopeNodeBeingReparsed;
|
|
|
| - Heap heap;
|
| -#if ENABLE(ASSEMBLER)
|
| - PassRefPtr<ExecutablePool> poolForSize(size_t n) { return m_executableAllocator.poolForSize(n); }
|
| -#endif
|
| -
|
| private:
|
| - JSGlobalData(bool isShared = false);
|
| -#if ENABLE(ASSEMBLER)
|
| - ExecutableAllocator m_executableAllocator;
|
| -#endif
|
| -
|
| + JSGlobalData(bool isShared, const VPtrSet&);
|
| static JSGlobalData*& sharedInstanceInternal();
|
| };
|
| } // namespace JSC
|
|
|