Changeset 35807 in webkit for trunk/JavaScriptCore/profiler/Profiler.cpp
- Timestamp:
- Aug 17, 2008, 1:23:49 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/profiler/Profiler.cpp
r35756 r35807 30 30 #include "Profiler.h" 31 31 32 #include "CommonIdentifiers.h" 32 33 #include "ExecState.h" 33 34 #include "JSFunction.h" … … 44 45 static unsigned ProfilesUID = 0; 45 46 46 static CallIdentifier createCallIdentifier( JSObject*);47 static CallIdentifier createCallIdentifier( const UString& sourceURL, int startingLineNumber);48 static CallIdentifier createCallIdentifierFromFunctionImp( JSFunction*);47 static CallIdentifier createCallIdentifier(ExecState*, JSObject*); 48 static CallIdentifier createCallIdentifier(ExecState*, const UString& sourceURL, int startingLineNumber); 49 static CallIdentifier createCallIdentifierFromFunctionImp(ExecState*, JSFunction*); 49 50 50 51 Profiler* Profiler::s_sharedProfiler = 0; … … 116 117 ASSERT(!m_currentProfiles.isEmpty()); 117 118 118 dispatchFunctionToProfiles(m_currentProfiles, &ProfileGenerator::willExecute, createCallIdentifier( calledFunction), exec->lexicalGlobalObject()->profileGroup());119 dispatchFunctionToProfiles(m_currentProfiles, &ProfileGenerator::willExecute, createCallIdentifier(exec, calledFunction), exec->lexicalGlobalObject()->profileGroup()); 119 120 } 120 121 … … 123 124 ASSERT(!m_currentProfiles.isEmpty()); 124 125 125 CallIdentifier callIdentifier = createCallIdentifier( sourceURL, startingLineNumber);126 CallIdentifier callIdentifier = createCallIdentifier(exec, sourceURL, startingLineNumber); 126 127 127 128 dispatchFunctionToProfiles(m_currentProfiles, &ProfileGenerator::willExecute, callIdentifier, exec->lexicalGlobalObject()->profileGroup()); … … 132 133 ASSERT(!m_currentProfiles.isEmpty()); 133 134 134 dispatchFunctionToProfiles(m_currentProfiles, &ProfileGenerator::didExecute, createCallIdentifier( calledFunction), exec->lexicalGlobalObject()->profileGroup());135 dispatchFunctionToProfiles(m_currentProfiles, &ProfileGenerator::didExecute, createCallIdentifier(exec, calledFunction), exec->lexicalGlobalObject()->profileGroup()); 135 136 } 136 137 … … 139 140 ASSERT(!m_currentProfiles.isEmpty()); 140 141 141 dispatchFunctionToProfiles(m_currentProfiles, &ProfileGenerator::didExecute, createCallIdentifier( sourceURL, startingLineNumber), exec->lexicalGlobalObject()->profileGroup());142 dispatchFunctionToProfiles(m_currentProfiles, &ProfileGenerator::didExecute, createCallIdentifier(exec, sourceURL, startingLineNumber), exec->lexicalGlobalObject()->profileGroup()); 142 143 } 143 144 144 CallIdentifier createCallIdentifier( JSObject* calledFunction)145 CallIdentifier createCallIdentifier(ExecState* exec, JSObject* calledFunction) 145 146 { 146 147 if (calledFunction->inherits(&JSFunction::info)) 147 return createCallIdentifierFromFunctionImp( static_cast<JSFunction*>(calledFunction));148 return createCallIdentifierFromFunctionImp(exec, static_cast<JSFunction*>(calledFunction)); 148 149 if (calledFunction->inherits(&InternalFunction::info)) 149 return CallIdentifier(static_cast<InternalFunction*>(calledFunction)-> functionName().ustring(), "", 0);150 return CallIdentifier(static_cast<InternalFunction*>(calledFunction)->name(exec), "", 0); 150 151 151 152 UString name = "(" + calledFunction->className() + " object)"; … … 153 154 } 154 155 155 CallIdentifier createCallIdentifier( const UString& sourceURL, int startingLineNumber)156 CallIdentifier createCallIdentifier(ExecState*, const UString& sourceURL, int startingLineNumber) 156 157 { 157 158 return CallIdentifier(GlobalCodeExecution, sourceURL, startingLineNumber); 158 159 } 159 160 160 CallIdentifier createCallIdentifierFromFunctionImp( JSFunction* functionImp)161 CallIdentifier createCallIdentifierFromFunctionImp(ExecState* exec, JSFunction* function) 161 162 { 162 UString name = functionImp->functionName().ustring(); 163 if (name.isEmpty()) 164 name = AnonymousFunction; 165 166 return CallIdentifier(name, functionImp->m_body->sourceURL(), functionImp->m_body->lineNo()); 163 const UString& name = function->name(exec); 164 return CallIdentifier(name.isEmpty() ? AnonymousFunction : name, function->m_body->sourceURL(), function->m_body->lineNo()); 167 165 } 168 166
Note:
See TracChangeset
for help on using the changeset viewer.