From 43a42f108af6bcbd91f2672731c3047c26213af1 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 22 Oct 2012 15:40:17 +0200 Subject: Imported WebKit commit 302e7806bff028bd1167a1ec7c86a1ee00ecfb49 (http://svn.webkit.org/repository/webkit/trunk@132067) New snapshot that fixes build without QtWidgets --- Source/JavaScriptCore/bytecode/CodeBlock.h | 59 ++++++++++++++++-------------- 1 file changed, 32 insertions(+), 27 deletions(-) (limited to 'Source/JavaScriptCore/bytecode/CodeBlock.h') diff --git a/Source/JavaScriptCore/bytecode/CodeBlock.h b/Source/JavaScriptCore/bytecode/CodeBlock.h index 01a8ef4a1..fe588c787 100644 --- a/Source/JavaScriptCore/bytecode/CodeBlock.h +++ b/Source/JavaScriptCore/bytecode/CodeBlock.h @@ -49,7 +49,6 @@ #include "EvalCodeCache.h" #include "ExecutionCounter.h" #include "ExpressionRangeInfo.h" -#include "GlobalResolveInfo.h" #include "HandlerInfo.h" #include "MethodCallLinkInfo.h" #include "Options.h" @@ -64,6 +63,7 @@ #include "LineInfo.h" #include "Nodes.h" #include "RegExpObject.h" +#include "ResolveOperation.h" #include "StructureStubInfo.h" #include "UnconditionalFinalizer.h" #include "ValueProfile.h" @@ -197,6 +197,30 @@ namespace JSC { int lineNumberForBytecodeOffset(unsigned bytecodeOffset); void expressionRangeForBytecodeOffset(unsigned bytecodeOffset, int& divot, int& startOffset, int& endOffset); + uint32_t addResolve() + { + m_resolveOperations.grow(m_resolveOperations.size() + 1); + return m_resolveOperations.size() - 1; + } + uint32_t addPutToBase() + { + m_putToBaseOperations.append(PutToBaseOperation(isStrictMode())); + return m_putToBaseOperations.size() - 1; + } + + ResolveOperations* resolveOperations(uint32_t i) + { + return &m_resolveOperations[i]; + } + + PutToBaseOperation* putToBaseOperation(uint32_t i) + { + return &m_putToBaseOperations[i]; + } + + size_t numberOfResolveOperations() const { return m_resolveOperations.size(); } + size_t numberOfPutToBaseOperations() const { return m_putToBaseOperations.size(); } + #if ENABLE(JIT) StructureStubInfo& getStubInfo(ReturnAddressPtr returnAddress) @@ -600,11 +624,6 @@ namespace JSC { { m_propertyAccessInstructions.append(propertyAccessInstruction); } - void addGlobalResolveInstruction(unsigned globalResolveInstruction) - { - m_globalResolveInstructions.append(globalResolveInstruction); - } - bool hasGlobalResolveInstructionAtBytecodeOffset(unsigned bytecodeOffset); #if ENABLE(LLINT) LLIntCallLinkInfo* addLLIntCallLinkInfo() { @@ -621,15 +640,6 @@ namespace JSC { size_t numberOfByValInfos() const { return m_byValInfos.size(); } ByValInfo& byValInfo(size_t index) { return m_byValInfos[index]; } - void addGlobalResolveInfo(unsigned globalResolveInstruction) - { - m_globalResolveInfos.append(GlobalResolveInfo(globalResolveInstruction)); - } - GlobalResolveInfo& globalResolveInfo(int index) { return m_globalResolveInfos[index]; } - bool hasGlobalResolveInfoAtBytecodeOffset(unsigned bytecodeOffset); - GlobalResolveInfo& globalResolveInfoForBytecodeOffset(unsigned bytecodeOffset); - unsigned numberOfGlobalResolveInfos() { return m_globalResolveInfos.size(); } - void setNumberOfCallLinkInfos(size_t size) { m_callLinkInfos.grow(size); } size_t numberOfCallLinkInfos() const { return m_callLinkInfos.size(); } CallLinkInfo& callLinkInfo(int index) { return m_callLinkInfos[index]; } @@ -781,15 +791,6 @@ namespace JSC { ArrayProfile* getArrayProfile(unsigned bytecodeOffset); ArrayProfile* getOrAddArrayProfile(unsigned bytecodeOffset); #endif - - unsigned globalResolveInfoCount() const - { -#if ENABLE(JIT) - if (m_globalData->canUseJIT()) - return m_globalResolveInfos.size(); -#endif - return 0; - } // Exception handling support @@ -1215,13 +1216,16 @@ namespace JSC { int m_numVars; bool m_isConstructor; + int globalObjectConstant() const { return m_globalObjectConstant; } + void setGlobalObjectConstant(int globalRegister) { m_globalObjectConstant = globalRegister; } + protected: #if ENABLE(JIT) virtual bool jitCompileImpl(ExecState*) = 0; #endif virtual void visitWeakReferences(SlotVisitor&); virtual void finalizeUnconditionally(); - + private: friend class DFGCodeBlocks; @@ -1294,6 +1298,7 @@ namespace JSC { int m_thisRegister; int m_argumentsRegister; int m_activationRegister; + int m_globalObjectConstant; bool m_needsFullScopeChain; bool m_usesEval; @@ -1306,7 +1311,6 @@ namespace JSC { unsigned m_sourceOffset; Vector m_propertyAccessInstructions; - Vector m_globalResolveInstructions; #if ENABLE(LLINT) SegmentedVector m_llintCallLinkInfos; SentinelLinkedList > m_incomingLLIntCalls; @@ -1314,7 +1318,6 @@ namespace JSC { #if ENABLE(JIT) Vector m_structureStubInfos; Vector m_byValInfos; - Vector m_globalResolveInfos; Vector m_callLinkInfos; Vector m_methodCallLinkInfos; JITCode m_jitCode; @@ -1406,6 +1409,8 @@ namespace JSC { Vector m_bytecodeComments; size_t m_bytecodeCommentIterator; #endif + Vector m_resolveOperations; + Vector m_putToBaseOperations; struct RareData { WTF_MAKE_FAST_ALLOCATED; -- cgit v1.2.1