Changeset 179865 in webkit for trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
- Timestamp:
- Feb 9, 2015, 11:40:53 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r179371 r179865 2028 2028 generator.emitExpressionInfo(divot(), divotStart(), divotEnd()); 2029 2029 generator.emitPutToScope(scope, ident, propertyName, generator.isStrictMode() ? ThrowIfNotFound : DoNotThrowIfNotFound, resolveScopeInfo); 2030 } 2030 if (generator.vm()->typeProfiler()) 2031 generator.emitProfileType(propertyName, resolveScopeInfo.isLocal() ? ProfileTypeBytecodePutToLocalScope : ProfileTypeBytecodePutToScope, &ident); 2032 } 2033 if (generator.vm()->typeProfiler()) 2034 generator.emitTypeProfilerExpressionInfo(m_lexpr->position(), JSTextPosition(-1, m_lexpr->position().offset + ident.length(), -1)); 2031 2035 return; 2032 2036 } … … 2037 2041 generator.emitExpressionInfo(assignNode->divot(), assignNode->divotStart(), assignNode->divotEnd()); 2038 2042 generator.emitPutById(base, ident, propertyName); 2043 if (generator.vm()->typeProfiler()) { 2044 generator.emitProfileType(propertyName, ProfileTypeBytecodeDoesNotHaveGlobalID, nullptr); 2045 generator.emitTypeProfilerExpressionInfo(assignNode->divotStart(), assignNode->divotEnd()); 2046 } 2039 2047 return; 2040 2048 } … … 2045 2053 generator.emitExpressionInfo(assignNode->divot(), assignNode->divotStart(), assignNode->divotEnd()); 2046 2054 generator.emitPutByVal(base.get(), subscript, propertyName); 2055 if (generator.vm()->typeProfiler()) { 2056 generator.emitProfileType(propertyName, ProfileTypeBytecodeDoesNotHaveGlobalID, nullptr); 2057 generator.emitTypeProfilerExpressionInfo(assignNode->divotStart(), assignNode->divotEnd()); 2058 } 2047 2059 return; 2048 2060 } … … 2064 2076 } 2065 2077 generator.emitMove(local.get(), propertyName); 2078 if (generator.vm()->typeProfiler()) 2079 generator.emitTypeProfilerExpressionInfo(m_lexpr->position(), JSTextPosition(-1, m_lexpr->position().offset + ident.length(), -1)); 2066 2080 return; 2067 2081 } … … 2236 2250 generator.emitExpressionInfo(divot(), divotStart(), divotEnd()); 2237 2251 generator.emitPutToScope(scope, ident, value, generator.isStrictMode() ? ThrowIfNotFound : DoNotThrowIfNotFound, resolveScopeInfo); 2252 if (generator.vm()->typeProfiler()) 2253 generator.emitProfileType(value, resolveScopeInfo.isLocal() ? ProfileTypeBytecodePutToLocalScope : ProfileTypeBytecodePutToScope, &ident); 2238 2254 } 2255 if (generator.vm()->typeProfiler()) 2256 generator.emitTypeProfilerExpressionInfo(m_lexpr->position(), JSTextPosition(-1, m_lexpr->position().offset + ident.length(), -1)); 2239 2257 } else if (m_lexpr->isDotAccessorNode()) { 2240 2258 DotAccessorNode* assignNode = static_cast<DotAccessorNode*>(m_lexpr); … … 2244 2262 generator.emitExpressionInfo(assignNode->divot(), assignNode->divotStart(), assignNode->divotEnd()); 2245 2263 generator.emitPutById(base.get(), ident, value); 2264 if (generator.vm()->typeProfiler()) { 2265 generator.emitProfileType(value, ProfileTypeBytecodeDoesNotHaveGlobalID, nullptr); 2266 generator.emitTypeProfilerExpressionInfo(assignNode->divotStart(), assignNode->divotEnd()); 2267 } 2246 2268 } else if (m_lexpr->isBracketAccessorNode()) { 2247 2269 BracketAccessorNode* assignNode = static_cast<BracketAccessorNode*>(m_lexpr); … … 2251 2273 generator.emitExpressionInfo(assignNode->divot(), assignNode->divotStart(), assignNode->divotEnd()); 2252 2274 generator.emitPutByVal(base.get(), subscript, value); 2275 if (generator.vm()->typeProfiler()) { 2276 generator.emitProfileType(value, ProfileTypeBytecodeDoesNotHaveGlobalID, nullptr); 2277 generator.emitTypeProfilerExpressionInfo(assignNode->divotStart(), assignNode->divotEnd()); 2278 } 2253 2279 } else { 2254 2280 ASSERT(m_lexpr->isDeconstructionNode());
Note:
See TracChangeset
for help on using the changeset viewer.