Changeset 37845 in webkit for trunk/JavaScriptCore/VM/Machine.h
- Timestamp:
- Oct 24, 2008, 9:22:51 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/VM/Machine.h
r37730 r37845 125 125 bool isOpcode(Opcode opcode); 126 126 127 JSValue Ptr execute(ProgramNode*, CallFrame*, ScopeChainNode*, JSObject* thisObj, JSValuePtr* exception);128 JSValue Ptr execute(FunctionBodyNode*, CallFrame*, JSFunction*, JSObject* thisObj, const ArgList& args, ScopeChainNode*, JSValuePtr* exception);129 JSValue Ptr execute(EvalNode* evalNode, CallFrame* exec, JSObject* thisObj, ScopeChainNode* scopeChain, JSValuePtr* exception);130 131 JSValue PtrretrieveArguments(CallFrame*, JSFunction*) const;132 JSValue PtrretrieveCaller(CallFrame*, InternalFunction*) const;133 void retrieveLastCaller(CallFrame*, int& lineNumber, intptr_t& sourceID, UString& sourceURL, JSValue Ptr& function) const;127 JSValue* execute(ProgramNode*, CallFrame*, ScopeChainNode*, JSObject* thisObj, JSValue** exception); 128 JSValue* execute(FunctionBodyNode*, CallFrame*, JSFunction*, JSObject* thisObj, const ArgList& args, ScopeChainNode*, JSValue** exception); 129 JSValue* execute(EvalNode* evalNode, CallFrame* exec, JSObject* thisObj, ScopeChainNode* scopeChain, JSValue** exception); 130 131 JSValue* retrieveArguments(CallFrame*, JSFunction*) const; 132 JSValue* retrieveCaller(CallFrame*, InternalFunction*) const; 133 void retrieveLastCaller(CallFrame*, int& lineNumber, intptr_t& sourceID, UString& sourceURL, JSValue*& function) const; 134 134 135 135 void getArgumentsData(CallFrame*, JSFunction*&, ptrdiff_t& firstParameterIndex, Register*& argv, int& argc); … … 269 269 static const int initialTickCountThreshold = 1024; 270 270 271 bool isJSArray(JSValue Ptrv) { return !JSImmediate::isImmediate(v) && v->asCell()->vptr() == m_jsArrayVptr; }272 bool isJSString(JSValue Ptrv) { return !JSImmediate::isImmediate(v) && v->asCell()->vptr() == m_jsStringVptr; }271 bool isJSArray(JSValue* v) { return !JSImmediate::isImmediate(v) && v->asCell()->vptr() == m_jsArrayVptr; } 272 bool isJSString(JSValue* v) { return !JSImmediate::isImmediate(v) && v->asCell()->vptr() == m_jsStringVptr; } 273 273 274 274 private: 275 275 enum ExecutionFlag { Normal, InitializeAndReturn }; 276 276 277 NEVER_INLINE JSValue Ptr callEval(CallFrame*, JSObject* thisObject, ScopeChainNode*, RegisterFile*, int argv, int argc, JSValuePtr& exceptionValue);278 JSValue Ptr execute(EvalNode*, CallFrame*, JSObject* thisObject, int registerOffset, ScopeChainNode*, JSValuePtr* exception);277 NEVER_INLINE JSValue* callEval(CallFrame*, JSObject* thisObject, ScopeChainNode*, RegisterFile*, int argv, int argc, JSValue*& exceptionValue); 278 JSValue* execute(EvalNode*, CallFrame*, JSObject* thisObject, int registerOffset, ScopeChainNode*, JSValue** exception); 279 279 280 280 NEVER_INLINE void debug(CallFrame*, DebugHookID, int firstLine, int lastLine); 281 281 282 NEVER_INLINE bool resolve(CallFrame*, Instruction*, JSValue Ptr& exceptionValue);283 NEVER_INLINE bool resolveSkip(CallFrame*, Instruction*, JSValue Ptr& exceptionValue);284 NEVER_INLINE bool resolveGlobal(CallFrame*, Instruction*, JSValue Ptr& exceptionValue);282 NEVER_INLINE bool resolve(CallFrame*, Instruction*, JSValue*& exceptionValue); 283 NEVER_INLINE bool resolveSkip(CallFrame*, Instruction*, JSValue*& exceptionValue); 284 NEVER_INLINE bool resolveGlobal(CallFrame*, Instruction*, JSValue*& exceptionValue); 285 285 NEVER_INLINE void resolveBase(CallFrame*, Instruction* vPC); 286 NEVER_INLINE bool resolveBaseAndProperty(CallFrame*, Instruction*, JSValue Ptr& exceptionValue);286 NEVER_INLINE bool resolveBaseAndProperty(CallFrame*, Instruction*, JSValue*& exceptionValue); 287 287 NEVER_INLINE ScopeChainNode* createExceptionScope(CallFrame*, const Instruction* vPC); 288 288 289 NEVER_INLINE bool unwindCallFrame(CallFrame*&, JSValue Ptr, const Instruction*&, CodeBlock*&);290 NEVER_INLINE Instruction* throwException(CallFrame*&, JSValue Ptr&, const Instruction*, bool);291 NEVER_INLINE bool resolveBaseAndFunc(CallFrame*, Instruction*, JSValue Ptr& exceptionValue);289 NEVER_INLINE bool unwindCallFrame(CallFrame*&, JSValue*, const Instruction*&, CodeBlock*&); 290 NEVER_INLINE Instruction* throwException(CallFrame*&, JSValue*&, const Instruction*, bool); 291 NEVER_INLINE bool resolveBaseAndFunc(CallFrame*, Instruction*, JSValue*& exceptionValue); 292 292 293 293 static ALWAYS_INLINE CallFrame* slideRegisterWindowForCall(CodeBlock*, RegisterFile*, CallFrame*, size_t registerOffset, int argc); … … 295 295 static CallFrame* findFunctionCallFrame(CallFrame*, InternalFunction*); 296 296 297 JSValue Ptr privateExecute(ExecutionFlag, RegisterFile*, CallFrame*, JSValuePtr* exception);297 JSValue* privateExecute(ExecutionFlag, RegisterFile*, CallFrame*, JSValue** exception); 298 298 299 299 void dumpCallFrame(const RegisterFile*, CallFrame*); 300 300 void dumpRegisters(const RegisterFile*, CallFrame*); 301 301 302 JSValue PtrcheckTimeout(JSGlobalObject*);302 JSValue* checkTimeout(JSGlobalObject*); 303 303 void resetTimeoutCheck(); 304 304 305 void tryCacheGetByID(CallFrame*, CodeBlock*, Instruction*, JSValue PtrbaseValue, const Identifier& propertyName, const PropertySlot&);305 void tryCacheGetByID(CallFrame*, CodeBlock*, Instruction*, JSValue* baseValue, const Identifier& propertyName, const PropertySlot&); 306 306 void uncacheGetByID(CodeBlock*, Instruction* vPC); 307 void tryCachePutByID(CallFrame*, CodeBlock*, Instruction*, JSValue PtrbaseValue, const PutPropertySlot&);307 void tryCachePutByID(CallFrame*, CodeBlock*, Instruction*, JSValue* baseValue, const PutPropertySlot&); 308 308 void uncachePutByID(CodeBlock*, Instruction* vPC); 309 309 … … 313 313 static void throwStackOverflowPreviousFrame(CallFrame*, JSGlobalData*, void*& returnAddress); 314 314 315 void tryCTICacheGetByID(CallFrame*, CodeBlock*, void* returnAddress, JSValue PtrbaseValue, const Identifier& propertyName, const PropertySlot&);316 void tryCTICachePutByID(CallFrame*, CodeBlock*, void* returnAddress, JSValue PtrbaseValue, const PutPropertySlot&);315 void tryCTICacheGetByID(CallFrame*, CodeBlock*, void* returnAddress, JSValue* baseValue, const Identifier& propertyName, const PropertySlot&); 316 void tryCTICachePutByID(CallFrame*, CodeBlock*, void* returnAddress, JSValue* baseValue, const PutPropertySlot&); 317 317 318 318 void* getCTIArrayLengthTrampoline(CallFrame*, CodeBlock*);
Note:
See TracChangeset
for help on using the changeset viewer.