Changeset 106504 in webkit for trunk/Source/JavaScriptCore/parser/ASTBuilder.h
- Timestamp:
- Feb 1, 2012, 3:23:30 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/ASTBuilder.h
r98887 r106504 250 250 ExpressionNode* createAssignResolve(int lineNumber, const Identifier& ident, ExpressionNode* rhs, bool rhsHasAssignment, int start, int divot, int end) 251 251 { 252 if (rhs->isFuncExprNode()) 253 static_cast<FuncExprNode*>(rhs)->body()->setInferredName(ident); 252 254 AssignResolveNode* node = new (m_globalData) AssignResolveNode(lineNumber, ident, rhs, rhsHasAssignment); 253 255 setExceptionLocation(node, start, divot, end); … … 272 274 ASSERT(name); 273 275 body->setLoc(bodyStartLine, bodyEndLine); 276 body->setInferredName(*name); 274 277 return new (m_globalData) PropertyNode(m_globalData, *name, new (m_globalData) FuncExprNode(lineNumber, m_globalData->propertyNames->nullIdentifier, body, m_sourceCode->subExpression(openBracePos, closeBracePos, bodyStartLine), params), type); 275 278 } … … 281 284 ArgumentListNode* createArgumentsList(int lineNumber, ArgumentListNode* args, ExpressionNode* arg) { return new (m_globalData) ArgumentListNode(lineNumber, args, arg); } 282 285 283 template <bool> PropertyNode* createProperty(const Identifier* propertyName, ExpressionNode* node, PropertyNode::Type type) { return new (m_globalData) PropertyNode(m_globalData, *propertyName, node, type); } 286 template <bool> PropertyNode* createProperty(const Identifier* propertyName, ExpressionNode* node, PropertyNode::Type type) 287 { 288 if (node->isFuncExprNode()) 289 static_cast<FuncExprNode*>(node)->body()->setInferredName(*propertyName); 290 return new (m_globalData) PropertyNode(m_globalData, *propertyName, node, type); 291 } 284 292 template <bool> PropertyNode* createProperty(JSGlobalData*, double propertyName, ExpressionNode* node, PropertyNode::Type type) { return new (m_globalData) PropertyNode(m_globalData, propertyName, node, type); } 285 293 PropertyListNode* createPropertyList(int lineNumber, PropertyNode* property) { return new (m_globalData) PropertyListNode(lineNumber, property); } … … 904 912 ResolveNode* resolve = static_cast<ResolveNode*>(loc); 905 913 if (op == OpEqual) { 914 if (expr->isFuncExprNode()) 915 static_cast<FuncExprNode*>(expr)->body()->setInferredName(resolve->identifier()); 906 916 AssignResolveNode* node = new (m_globalData) AssignResolveNode(lineNumber, resolve->identifier(), expr, exprHasAssignments); 907 917 setExceptionLocation(node, start, divot, end); … … 920 930 ASSERT(loc->isDotAccessorNode()); 921 931 DotAccessorNode* dot = static_cast<DotAccessorNode*>(loc); 922 if (op == OpEqual) 932 if (op == OpEqual) { 933 if (expr->isFuncExprNode()) 934 static_cast<FuncExprNode*>(expr)->body()->setInferredName(dot->identifier()); 923 935 return new (m_globalData) AssignDotNode(lineNumber, dot->base(), dot->identifier(), expr, exprHasAssignments, dot->divot(), dot->divot() - start, end - dot->divot()); 936 } 924 937 925 938 ReadModifyDotNode* node = new (m_globalData) ReadModifyDotNode(lineNumber, dot->base(), dot->identifier(), op, expr, exprHasAssignments, divot, divot - start, end - divot);
Note:
See TracChangeset
for help on using the changeset viewer.