Changeset 68338 in webkit for trunk/JavaScriptCore/bytecompiler/NodesCodegen.cpp
- Timestamp:
- Sep 25, 2010, 2:42:00 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/bytecompiler/NodesCodegen.cpp
r65593 r68338 291 291 RegisterID* BracketAccessorNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 292 292 { 293 if (m_base->isResolveNode() && generator.willResolveToArguments(static_cast<ResolveNode*>(m_base)->identifier())) { 294 RegisterID* property = generator.emitNode(m_subscript); 295 generator.emitExpressionInfo(divot(), startOffset(), endOffset()); 296 return generator.emitGetArgumentByVal(generator.finalDestination(dst), generator.uncheckedRegisterForArguments(), property); 297 } 298 293 299 RefPtr<RegisterID> base = generator.emitNodeForLeftHandSide(m_base, m_subscriptHasAssignments, m_subscript->isPure(generator)); 294 300 RegisterID* property = generator.emitNode(m_subscript); … … 301 307 RegisterID* DotAccessorNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 302 308 { 309 if (m_ident == generator.propertyNames().length) { 310 if (!m_base->isResolveNode()) 311 goto nonArgumentsPath; 312 ResolveNode* resolveNode = static_cast<ResolveNode*>(m_base); 313 if (!generator.willResolveToArguments(resolveNode->identifier())) 314 goto nonArgumentsPath; 315 generator.emitExpressionInfo(divot(), startOffset(), endOffset()); 316 return generator.emitGetArgumentsLength(generator.finalDestination(dst), generator.uncheckedRegisterForArguments()); 317 } 318 319 nonArgumentsPath: 303 320 RegisterID* base = generator.emitNode(m_base); 304 321 generator.emitExpressionInfo(divot(), startOffset(), endOffset());
Note:
See TracChangeset
for help on using the changeset viewer.