Changeset 42537 in webkit for trunk/JavaScriptCore/interpreter/Interpreter.h
- Timestamp:
- Apr 15, 2009, 12:13:25 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/interpreter/Interpreter.h
r41852 r42537 68 68 friend class JIT; 69 69 friend class JITStubs; 70 70 friend class CachedCall; 71 71 public: 72 72 Interpreter(); … … 110 110 private: 111 111 enum ExecutionFlag { Normal, InitializeAndReturn }; 112 113 struct CallFrameClosure { 114 CallFrame* oldCallFrame; 115 CallFrame* newCallFrame; 116 JSFunction* function; 117 CodeBlock* codeBlock; 118 JSGlobalData* globalData; 119 Register* oldEnd; 120 ScopeChainNode* scopeChain; 121 int expectedParams; 122 int providedParams; 123 124 void setArgument(int arg, JSValuePtr value) 125 { 126 if (arg < expectedParams) 127 newCallFrame[arg - RegisterFile::CallFrameHeaderSize - expectedParams] = value; 128 else 129 newCallFrame[arg - RegisterFile::CallFrameHeaderSize - expectedParams - providedParams] = value; 130 } 131 void resetCallFrame() 132 { 133 newCallFrame->setScopeChain(scopeChain); 134 newCallFrame->setCalleeArguments(0); 135 for (int i = providedParams; i < expectedParams; ++i) 136 newCallFrame[i - RegisterFile::CallFrameHeaderSize - expectedParams] = jsUndefined(); 137 } 138 }; 139 CallFrameClosure prepareForRepeatCall(FunctionBodyNode*, CallFrame*, JSFunction*, int argCount, ScopeChainNode*, JSValuePtr* exception); 140 void endRepeatCall(CallFrameClosure&); 141 JSValuePtr execute(CallFrameClosure&, JSValuePtr* exception); 112 142 113 143 NEVER_INLINE JSValuePtr callEval(CallFrame*, RegisterFile*, Register* argv, int argc, int registerOffset, JSValuePtr& exceptionValue); … … 154 184 #endif 155 185 }; 156 186 157 187 } // namespace JSC 158 188
Note:
See TracChangeset
for help on using the changeset viewer.