Changeset 28551 in webkit for trunk/JavaScriptCore/kjs
- Timestamp:
- Dec 7, 2007, 4:59:48 PM (17 years ago)
- Location:
- trunk/JavaScriptCore/kjs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/nodes.cpp
r28549 r28551 563 563 } 564 564 565 void ResolveNode::optimizeVariableAccess( FunctionBodyNode* functionBody, DeclarationStacks::NodeStack&)566 { 567 size_t index = functionBody->symbolTable().get(ident.ustring().rep());565 void ResolveNode::optimizeVariableAccess(SymbolTable& symbolTable, DeclarationStacks::NodeStack&) 566 { 567 size_t index = symbolTable.get(ident.ustring().rep()); 568 568 if (index != missingSymbolMarker()) 569 569 new (this) LocalVarAccessNode(index); … … 603 603 // ------------------------------ ElementNode ---------------------------------- 604 604 605 void ElementNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)605 void ElementNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 606 606 { 607 607 if (next) … … 627 627 // ------------------------------ ArrayNode ------------------------------------ 628 628 629 void ArrayNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)629 void ArrayNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 630 630 { 631 631 if (element) … … 658 658 // ------------------------------ ObjectLiteralNode ---------------------------- 659 659 660 void ObjectLiteralNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)660 void ObjectLiteralNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 661 661 { 662 662 if (list) … … 675 675 // ------------------------------ PropertyListNode ----------------------------- 676 676 677 void PropertyListNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)677 void PropertyListNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 678 678 { 679 679 if (next) … … 711 711 // ------------------------------ PropertyNode ----------------------------- 712 712 713 void PropertyNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)713 void PropertyNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 714 714 { 715 715 nodeStack.append(assign.get()); … … 725 725 // ------------------------------ BracketAccessorNode -------------------------------- 726 726 727 void BracketAccessorNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)727 void BracketAccessorNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 728 728 { 729 729 nodeStack.append(expr2.get()); … … 780 780 // ------------------------------ DotAccessorNode -------------------------------- 781 781 782 void DotAccessorNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)782 void DotAccessorNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 783 783 { 784 784 nodeStack.append(expr.get()); … … 828 828 // ------------------------------ ArgumentListNode ----------------------------- 829 829 830 void ArgumentListNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)830 void ArgumentListNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 831 831 { 832 832 if (next) … … 848 848 // ------------------------------ ArgumentsNode -------------------------------- 849 849 850 void ArgumentsNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)850 void ArgumentsNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 851 851 { 852 852 if (listNode) … … 856 856 // ------------------------------ NewExprNode ---------------------------------- 857 857 858 void NewExprNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)858 void NewExprNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 859 859 { 860 860 if (args) … … 919 919 } 920 920 921 void FunctionCallValueNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)921 void FunctionCallValueNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 922 922 { 923 923 nodeStack.append(args.get()); … … 950 950 } 951 951 952 void FunctionCallResolveNode::optimizeVariableAccess( FunctionBodyNode* functionBody, DeclarationStacks::NodeStack& nodeStack)952 void FunctionCallResolveNode::optimizeVariableAccess(SymbolTable& symbolTable, DeclarationStacks::NodeStack& nodeStack) 953 953 { 954 954 nodeStack.append(args.get()); 955 955 956 size_t index = functionBody->symbolTable().get(ident.ustring().rep());956 size_t index = symbolTable.get(ident.ustring().rep()); 957 957 if (index != missingSymbolMarker()) 958 958 new (this) LocalVarFunctionCallNode(index); … … 1096 1096 } 1097 1097 1098 void FunctionCallBracketNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1098 void FunctionCallBracketNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1099 1099 { 1100 1100 nodeStack.append(args.get()); … … 1165 1165 } 1166 1166 1167 void FunctionCallDotNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1167 void FunctionCallDotNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1168 1168 { 1169 1169 nodeStack.append(args.get()); … … 1240 1240 1241 1241 // Increment 1242 void PostIncResolveNode::optimizeVariableAccess( FunctionBodyNode* functionBody, DeclarationStacks::NodeStack&)1243 { 1244 size_t index = functionBody->symbolTable().get(m_ident.ustring().rep());1242 void PostIncResolveNode::optimizeVariableAccess(SymbolTable& symbolTable, DeclarationStacks::NodeStack&) 1243 { 1244 size_t index = symbolTable.get(m_ident.ustring().rep()); 1245 1245 if (index != missingSymbolMarker()) 1246 1246 new (this) PostIncLocalVarNode(index); … … 1297 1297 1298 1298 // Decrement 1299 void PostDecResolveNode::optimizeVariableAccess( FunctionBodyNode* functionBody, DeclarationStacks::NodeStack&)1300 { 1301 size_t index = functionBody->symbolTable().get(m_ident.ustring().rep());1299 void PostDecResolveNode::optimizeVariableAccess(SymbolTable& symbolTable, DeclarationStacks::NodeStack&) 1300 { 1301 size_t index = symbolTable.get(m_ident.ustring().rep()); 1302 1302 if (index != missingSymbolMarker()) 1303 1303 new (this) PostDecLocalVarNode(index); … … 1384 1384 // ------------------------------ PostfixBracketNode ---------------------------------- 1385 1385 1386 void PostfixBracketNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1386 void PostfixBracketNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1387 1387 { 1388 1388 nodeStack.append(m_subscript.get()); … … 1453 1453 // ------------------------------ PostfixDotNode ---------------------------------- 1454 1454 1455 void PostfixDotNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1455 void PostfixDotNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1456 1456 { 1457 1457 nodeStack.append(m_base.get()); … … 1500 1500 // ------------------------------ DeleteResolveNode ----------------------------------- 1501 1501 1502 void DeleteResolveNode::optimizeVariableAccess( FunctionBodyNode* functionBody, DeclarationStacks::NodeStack&)1503 { 1504 size_t index = functionBody->symbolTable().get(m_ident.ustring().rep());1502 void DeleteResolveNode::optimizeVariableAccess(SymbolTable& symbolTable, DeclarationStacks::NodeStack&) 1503 { 1504 size_t index = symbolTable.get(m_ident.ustring().rep()); 1505 1505 if (index != missingSymbolMarker()) 1506 1506 new (this) LocalVarDeleteNode(); … … 1542 1542 // ------------------------------ DeleteBracketNode ----------------------------------- 1543 1543 1544 void DeleteBracketNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1544 void DeleteBracketNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1545 1545 { 1546 1546 nodeStack.append(m_subscript.get()); … … 1567 1567 // ------------------------------ DeleteDotNode ----------------------------------- 1568 1568 1569 void DeleteDotNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1569 void DeleteDotNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1570 1570 { 1571 1571 nodeStack.append(m_base.get()); … … 1583 1583 // ------------------------------ DeleteValueNode ----------------------------------- 1584 1584 1585 void DeleteValueNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1585 void DeleteValueNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1586 1586 { 1587 1587 nodeStack.append(m_expr.get()); … … 1599 1599 // ------------------------------ VoidNode ------------------------------------- 1600 1600 1601 void VoidNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1601 void VoidNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1602 1602 { 1603 1603 nodeStack.append(expr.get()); … … 1617 1617 // ------------------------------ TypeOfValueNode ----------------------------------- 1618 1618 1619 void TypeOfValueNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1619 void TypeOfValueNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1620 1620 { 1621 1621 nodeStack.append(m_expr.get()); … … 1650 1650 } 1651 1651 1652 void TypeOfResolveNode::optimizeVariableAccess( FunctionBodyNode* functionBody, DeclarationStacks::NodeStack&)1653 { 1654 size_t index = functionBody->symbolTable().get(m_ident.ustring().rep());1652 void TypeOfResolveNode::optimizeVariableAccess(SymbolTable& symbolTable, DeclarationStacks::NodeStack&) 1653 { 1654 size_t index = symbolTable.get(m_ident.ustring().rep()); 1655 1655 if (index != missingSymbolMarker()) 1656 1656 new (this) LocalVarTypeOfNode(index); … … 1702 1702 // ------------------------------ PrefixResolveNode ---------------------------------- 1703 1703 1704 void PreIncResolveNode::optimizeVariableAccess( FunctionBodyNode* functionBody, DeclarationStacks::NodeStack&)1705 { 1706 size_t index = functionBody->symbolTable().get(m_ident.ustring().rep());1704 void PreIncResolveNode::optimizeVariableAccess(SymbolTable& symbolTable, DeclarationStacks::NodeStack&) 1705 { 1706 size_t index = symbolTable.get(m_ident.ustring().rep()); 1707 1707 if (index != missingSymbolMarker()) 1708 1708 new (this) PreIncLocalVarNode(index); … … 1749 1749 } 1750 1750 1751 void PreDecResolveNode::optimizeVariableAccess( FunctionBodyNode* functionBody, DeclarationStacks::NodeStack&)1752 { 1753 size_t index = functionBody->symbolTable().get(m_ident.ustring().rep());1751 void PreDecResolveNode::optimizeVariableAccess(SymbolTable& symbolTable, DeclarationStacks::NodeStack&) 1752 { 1753 size_t index = symbolTable.get(m_ident.ustring().rep()); 1754 1754 if (index != missingSymbolMarker()) 1755 1755 new (this) PreDecLocalVarNode(index); … … 1798 1798 // ------------------------------ PrefixBracketNode ---------------------------------- 1799 1799 1800 void PrefixBracketNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1800 void PrefixBracketNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1801 1801 { 1802 1802 nodeStack.append(m_subscript.get()); … … 1870 1870 // ------------------------------ PrefixDotNode ---------------------------------- 1871 1871 1872 void PrefixDotNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1872 void PrefixDotNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1873 1873 { 1874 1874 nodeStack.append(m_base.get()); … … 1921 1921 // ------------------------------ UnaryPlusNode -------------------------------- 1922 1922 1923 void UnaryPlusNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1923 void UnaryPlusNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1924 1924 { 1925 1925 nodeStack.append(m_expr.get()); … … 1956 1956 // ------------------------------ NegateNode ----------------------------------- 1957 1957 1958 void NegateNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1958 void NegateNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1959 1959 { 1960 1960 nodeStack.append(expr.get()); … … 1976 1976 // ------------------------------ BitwiseNotNode ------------------------------- 1977 1977 1978 void BitwiseNotNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)1978 void BitwiseNotNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 1979 1979 { 1980 1980 nodeStack.append(expr.get()); … … 2014 2014 // ------------------------------ LogicalNotNode ------------------------------- 2015 2015 2016 void LogicalNotNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2016 void LogicalNotNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2017 2017 { 2018 2018 nodeStack.append(expr.get()); … … 2032 2032 // ------------------------------ Multiplicative Nodes ----------------------------------- 2033 2033 2034 void MultNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2034 void MultNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2035 2035 { 2036 2036 nodeStack.append(term1.get()); … … 2072 2072 } 2073 2073 2074 void DivNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2074 void DivNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2075 2075 { 2076 2076 nodeStack.append(term1.get()); … … 2107 2107 } 2108 2108 2109 void ModNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2109 void ModNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2110 2110 { 2111 2111 nodeStack.append(term1.get()); … … 2244 2244 } 2245 2245 2246 void AddNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2246 void AddNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2247 2247 { 2248 2248 nodeStack.append(term1.get()); … … 2351 2351 } 2352 2352 2353 void SubNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2353 void SubNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2354 2354 { 2355 2355 nodeStack.append(term1.get()); … … 2388 2388 // ------------------------------ Shift Nodes ------------------------------------ 2389 2389 2390 void LeftShiftNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2390 void LeftShiftNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2391 2391 { 2392 2392 nodeStack.append(term1.get()); … … 2423 2423 } 2424 2424 2425 void RightShiftNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2425 void RightShiftNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2426 2426 { 2427 2427 nodeStack.append(term1.get()); … … 2458 2458 } 2459 2459 2460 void UnsignedRightShiftNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2460 void UnsignedRightShiftNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2461 2461 { 2462 2462 nodeStack.append(term1.get()); … … 2525 2525 } 2526 2526 2527 void LessNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2527 void LessNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2528 2528 { 2529 2529 nodeStack.append(expr2.get()); … … 2587 2587 } 2588 2588 2589 void GreaterNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2589 void GreaterNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2590 2590 { 2591 2591 nodeStack.append(expr2.get()); … … 2613 2613 } 2614 2614 2615 void LessEqNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2615 void LessEqNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2616 2616 { 2617 2617 nodeStack.append(expr2.get()); … … 2639 2639 } 2640 2640 2641 void GreaterEqNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2641 void GreaterEqNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2642 2642 { 2643 2643 nodeStack.append(expr2.get()); … … 2665 2665 } 2666 2666 2667 void InstanceOfNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2667 void InstanceOfNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2668 2668 { 2669 2669 nodeStack.append(expr2.get()); … … 2718 2718 } 2719 2719 2720 void InNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2720 void InNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2721 2721 { 2722 2722 nodeStack.append(expr2.get()); … … 2755 2755 // ------------------------------ Equality Nodes ------------------------------------ 2756 2756 2757 void EqualNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2757 void EqualNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2758 2758 { 2759 2759 nodeStack.append(expr2.get()); … … 2782 2782 } 2783 2783 2784 void NotEqualNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2784 void NotEqualNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2785 2785 { 2786 2786 nodeStack.append(expr2.get()); … … 2809 2809 } 2810 2810 2811 void StrictEqualNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2811 void StrictEqualNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2812 2812 { 2813 2813 nodeStack.append(expr2.get()); … … 2836 2836 } 2837 2837 2838 void NotStrictEqualNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2838 void NotStrictEqualNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2839 2839 { 2840 2840 nodeStack.append(expr2.get()); … … 2865 2865 // ------------------------------ Bit Operation Nodes ---------------------------------- 2866 2866 2867 void BitAndNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2867 void BitAndNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2868 2868 { 2869 2869 nodeStack.append(expr2.get()); … … 2910 2910 } 2911 2911 2912 void BitXOrNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2912 void BitXOrNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2913 2913 { 2914 2914 nodeStack.append(expr2.get()); … … 2949 2949 } 2950 2950 2951 void BitOrNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2951 void BitOrNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2952 2952 { 2953 2953 nodeStack.append(expr2.get()); … … 2990 2990 // ------------------------------ Binary Logical Nodes ---------------------------- 2991 2991 2992 void LogicalAndNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)2992 void LogicalAndNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 2993 2993 { 2994 2994 nodeStack.append(expr2.get()); … … 3017 3017 } 3018 3018 3019 void LogicalOrNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3019 void LogicalOrNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3020 3020 { 3021 3021 nodeStack.append(expr2.get()); … … 3041 3041 // ------------------------------ ConditionalNode ------------------------------ 3042 3042 3043 void ConditionalNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3043 void ConditionalNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3044 3044 { 3045 3045 nodeStack.append(expr2.get()); … … 3152 3152 // ------------------------------ ReadModifyResolveNode ----------------------------------- 3153 3153 3154 void ReadModifyResolveNode::optimizeVariableAccess( FunctionBodyNode* functionBody, DeclarationStacks::NodeStack& nodeStack)3154 void ReadModifyResolveNode::optimizeVariableAccess(SymbolTable& symbolTable, DeclarationStacks::NodeStack& nodeStack) 3155 3155 { 3156 3156 nodeStack.append(m_right.get()); 3157 size_t index = functionBody->symbolTable().get(m_ident.ustring().rep());3157 size_t index = symbolTable.get(m_ident.ustring().rep()); 3158 3158 if (index != missingSymbolMarker()) 3159 3159 new (this) ReadModifyLocalVarNode(index); 3160 3160 } 3161 3161 3162 void AssignResolveNode::optimizeVariableAccess( FunctionBodyNode* functionBody, DeclarationStacks::NodeStack& nodeStack)3162 void AssignResolveNode::optimizeVariableAccess(SymbolTable& symbolTable, DeclarationStacks::NodeStack& nodeStack) 3163 3163 { 3164 3164 nodeStack.append(m_right.get()); 3165 size_t index = functionBody->symbolTable().get(m_ident.ustring().rep());3165 size_t index = symbolTable.get(m_ident.ustring().rep()); 3166 3166 if (index != missingSymbolMarker()) 3167 3167 new (this) AssignLocalVarNode(index); … … 3261 3261 // ------------------------------ ReadModifyDotNode ----------------------------------- 3262 3262 3263 void AssignDotNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3263 void AssignDotNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3264 3264 { 3265 3265 nodeStack.append(m_right.get()); … … 3281 3281 } 3282 3282 3283 void ReadModifyDotNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3283 void ReadModifyDotNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3284 3284 { 3285 3285 nodeStack.append(m_right.get()); … … 3318 3318 // ------------------------------ AssignBracketNode ----------------------------------- 3319 3319 3320 void AssignBracketNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3320 void AssignBracketNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3321 3321 { 3322 3322 nodeStack.append(m_right.get()); … … 3350 3350 return v; 3351 3351 } 3352 void ReadModifyBracketNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3352 void ReadModifyBracketNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3353 3353 { 3354 3354 nodeStack.append(m_right.get()); … … 3398 3398 // ------------------------------ CommaNode ------------------------------------ 3399 3399 3400 void CommaNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3400 void CommaNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3401 3401 { 3402 3402 nodeStack.append(expr2.get()); … … 3414 3414 // ------------------------------ AssignExprNode ------------------------------- 3415 3415 3416 void AssignExprNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3416 void AssignExprNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3417 3417 { 3418 3418 nodeStack.append(expr.get()); … … 3455 3455 } 3456 3456 3457 void VarDeclNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3457 void VarDeclNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3458 3458 { 3459 3459 if (next) … … 3560 3560 // ------------------------------ VarStatementNode ----------------------------- 3561 3561 3562 void VarStatementNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3562 void VarStatementNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3563 3563 { 3564 3564 ASSERT(next); … … 3671 3671 } 3672 3672 3673 void BlockNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3673 void BlockNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3674 3674 { 3675 3675 statementListPushFIFO(*m_children, nodeStack); … … 3697 3697 // ------------------------------ ExprStatementNode ---------------------------- 3698 3698 3699 void ExprStatementNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3699 void ExprStatementNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3700 3700 { 3701 3701 ASSERT(expr); … … 3716 3716 // ------------------------------ IfNode --------------------------------------- 3717 3717 3718 void IfNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3718 void IfNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3719 3719 { 3720 3720 if (statement2) … … 3756 3756 // ------------------------------ DoWhileNode ---------------------------------- 3757 3757 3758 void DoWhileNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3758 void DoWhileNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3759 3759 { 3760 3760 nodeStack.append(statement.get()); … … 3804 3804 // ------------------------------ WhileNode ------------------------------------ 3805 3805 3806 void WhileNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3806 void WhileNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3807 3807 { 3808 3808 nodeStack.append(statement.get()); … … 3852 3852 // ------------------------------ ForNode -------------------------------------- 3853 3853 3854 void ForNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3854 void ForNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3855 3855 { 3856 3856 nodeStack.append(statement.get()); … … 3931 3931 } 3932 3932 3933 void ForInNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)3933 void ForInNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 3934 3934 { 3935 3935 nodeStack.append(statement.get()); … … 4078 4078 // ------------------------------ ReturnNode ----------------------------------- 4079 4079 4080 void ReturnNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)4080 void ReturnNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 4081 4081 { 4082 4082 if (value) … … 4110 4110 } 4111 4111 4112 void WithNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)4112 void WithNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 4113 4113 { 4114 4114 // Can't optimize within statement because "with" introduces a dynamic scope. … … 4134 4134 // ------------------------------ CaseClauseNode ------------------------------- 4135 4135 4136 void CaseClauseNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)4136 void CaseClauseNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 4137 4137 { 4138 4138 if (expr) … … 4168 4168 // ------------------------------ ClauseListNode ------------------------------- 4169 4169 4170 void ClauseListNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)4170 void ClauseListNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 4171 4171 { 4172 4172 if (next) … … 4193 4193 } 4194 4194 4195 void CaseBlockNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)4195 void CaseBlockNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 4196 4196 { 4197 4197 if (list2) … … 4278 4278 // ------------------------------ SwitchNode ----------------------------------- 4279 4279 4280 void SwitchNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)4280 void SwitchNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 4281 4281 { 4282 4282 nodeStack.append(block.get()); … … 4309 4309 // ------------------------------ LabelNode ------------------------------------ 4310 4310 4311 void LabelNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)4311 void LabelNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 4312 4312 { 4313 4313 nodeStack.append(statement.get()); … … 4335 4335 // ------------------------------ ThrowNode ------------------------------------ 4336 4336 4337 void ThrowNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)4337 void ThrowNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 4338 4338 { 4339 4339 nodeStack.append(expr.get()); … … 4354 4354 // ------------------------------ TryNode -------------------------------------- 4355 4355 4356 void TryNode::optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack& nodeStack)4356 void TryNode::optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack& nodeStack) 4357 4357 { 4358 4358 // Can't optimize within catchBlock because "catch" introduces a dynamic scope. … … 4461 4461 4462 4462 while (true) { 4463 node->optimizeVariableAccess( this, nodeStack);4463 node->optimizeVariableAccess(m_symbolTable, nodeStack); 4464 4464 4465 4465 size_t size = nodeStack.size(); -
trunk/JavaScriptCore/kjs/nodes.h
r28540 r28551 134 134 135 135 // Used for iterative, depth-first traversal of the node tree. Does not cross function call boundaries. 136 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL { }136 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL { } 137 137 138 138 protected: … … 310 310 } 311 311 312 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;312 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 313 313 314 314 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; … … 355 355 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } 356 356 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 357 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;357 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 358 358 359 359 PassRefPtr<ElementNode> releaseNext() KJS_FAST_CALL { return next.release(); } … … 375 375 ArrayNode(int eli, ElementNode* ele) KJS_FAST_CALL 376 376 : element(ele), elision(eli), opt(true) { } 377 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;377 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 378 378 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 379 379 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 390 390 PropertyNode(const Identifier& n, ExpressionNode* a, Type t) KJS_FAST_CALL 391 391 : m_name(n), assign(a), type(t) { } 392 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;392 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 393 393 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 394 394 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 410 410 PropertyListNode(PropertyNode* n, PropertyListNode* l) KJS_FAST_CALL 411 411 : node(n) { l->next = this; } 412 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;412 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 413 413 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 414 414 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 427 427 ObjectLiteralNode() KJS_FAST_CALL { } 428 428 ObjectLiteralNode(PropertyListNode* l) KJS_FAST_CALL : list(l) { } 429 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;429 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 430 430 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 431 431 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 438 438 public: 439 439 BracketAccessorNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL : expr1(e1), expr2(e2) {} 440 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;440 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 441 441 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 442 442 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 461 461 public: 462 462 DotAccessorNode(ExpressionNode* e, const Identifier& s) KJS_FAST_CALL : expr(e), ident(s) { } 463 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;463 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 464 464 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 465 465 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 486 486 ArgumentListNode(ArgumentListNode* l, ExpressionNode* e) KJS_FAST_CALL 487 487 : expr(e) { l->next = this; } 488 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;488 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 489 489 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 490 490 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 504 504 ArgumentsNode(ArgumentListNode* l) KJS_FAST_CALL 505 505 : listNode(l) { } 506 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;506 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 507 507 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 508 508 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 518 518 NewExprNode(ExpressionNode* e) KJS_FAST_CALL : expr(e) {} 519 519 NewExprNode(ExpressionNode* e, ArgumentsNode* a) KJS_FAST_CALL : expr(e), args(a) {} 520 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;520 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 521 521 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 522 522 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 535 535 public: 536 536 FunctionCallValueNode(ExpressionNode* e, ArgumentsNode* a) KJS_FAST_CALL : expr(e), args(a) {} 537 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;537 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 538 538 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 539 539 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 559 559 } 560 560 561 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;561 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 562 562 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 563 563 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 596 596 public: 597 597 FunctionCallBracketNode(ExpressionNode* b, ExpressionNode* s, ArgumentsNode* a) KJS_FAST_CALL : base(b), subscript(s), args(a) {} 598 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;598 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 599 599 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 600 600 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 609 609 public: 610 610 FunctionCallDotNode(ExpressionNode* b, const Identifier& i, ArgumentsNode* a) KJS_FAST_CALL : base(b), ident(i), args(a) {} 611 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;611 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 612 612 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 613 613 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 648 648 } 649 649 650 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;650 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 651 651 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 652 652 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 678 678 } 679 679 680 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;680 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 681 681 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 682 682 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 707 707 public: 708 708 PostfixBracketNode(ExpressionNode* b, ExpressionNode* s) KJS_FAST_CALL : m_base(b), m_subscript(s) {} 709 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;709 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 710 710 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 711 711 virtual Precedence precedence() const { return PrecPostfix; } … … 735 735 public: 736 736 PostfixDotNode(ExpressionNode* b, const Identifier& i) KJS_FAST_CALL : m_base(b), m_ident(i) {} 737 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;737 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 738 738 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 739 739 virtual Precedence precedence() const { return PrecPostfix; } … … 780 780 } 781 781 782 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;782 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 783 783 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 784 784 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 801 801 public: 802 802 DeleteBracketNode(ExpressionNode* base, ExpressionNode* subscript) KJS_FAST_CALL : m_base(base), m_subscript(subscript) {} 803 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;803 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 804 804 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 805 805 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 813 813 public: 814 814 DeleteDotNode(ExpressionNode* base, const Identifier& i) KJS_FAST_CALL : m_base(base), m_ident(i) {} 815 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;815 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 816 816 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 817 817 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 825 825 public: 826 826 DeleteValueNode(ExpressionNode* e) KJS_FAST_CALL : m_expr(e) {} 827 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;827 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 828 828 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 829 829 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 836 836 public: 837 837 VoidNode(ExpressionNode* e) KJS_FAST_CALL : expr(e) {} 838 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;838 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 839 839 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 840 840 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 856 856 } 857 857 858 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;858 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 859 859 860 860 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; … … 885 885 public: 886 886 TypeOfValueNode(ExpressionNode* e) KJS_FAST_CALL : ExpressionNode(StringType), m_expr(e) {} 887 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;887 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 888 888 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 889 889 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 905 905 } 906 906 907 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;907 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 908 908 909 909 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; … … 936 936 } 937 937 938 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;938 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 939 939 940 940 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; … … 959 959 PrefixBracketNode(ExpressionNode* b, ExpressionNode* s) KJS_FAST_CALL : m_base(b), m_subscript(s) {} 960 960 961 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;961 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 962 962 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 963 963 virtual Precedence precedence() const { return PrecUnary; } … … 987 987 public: 988 988 PrefixDotNode(ExpressionNode* b, const Identifier& i) KJS_FAST_CALL : m_base(b), m_ident(i) {} 989 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;989 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 990 990 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 991 991 virtual Precedence precedence() const { return PrecPostfix; } … … 1026 1026 public: 1027 1027 UnaryPlusNode(ExpressionNode* e) KJS_FAST_CALL : ExpressionNode(NumberType), m_expr(e) {} 1028 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1028 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1029 1029 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1030 1030 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1041 1041 public: 1042 1042 NegateNode(ExpressionNode* e) KJS_FAST_CALL : ExpressionNode(NumberType), expr(e) {} 1043 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1043 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1044 1044 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1045 1045 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1053 1053 public: 1054 1054 BitwiseNotNode(ExpressionNode* e) KJS_FAST_CALL : ExpressionNode(NumberType), expr(e) {} 1055 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1055 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1056 1056 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1057 1057 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1069 1069 public: 1070 1070 LogicalNotNode(ExpressionNode* e) KJS_FAST_CALL : ExpressionNode(BooleanType), expr(e) {} 1071 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1071 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1072 1072 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1073 1073 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1081 1081 public: 1082 1082 MultNode(ExpressionNode* t1, ExpressionNode* t2) KJS_FAST_CALL : ExpressionNode(NumberType), term1(t1), term2(t2) {} 1083 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1083 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1084 1084 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1085 1085 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1098 1098 public: 1099 1099 DivNode(ExpressionNode* t1, ExpressionNode* t2) KJS_FAST_CALL : ExpressionNode(NumberType), term1(t1), term2(t2) {} 1100 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1100 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1101 1101 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1102 1102 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1114 1114 public: 1115 1115 ModNode(ExpressionNode* t1, ExpressionNode* t2) KJS_FAST_CALL : ExpressionNode(NumberType), term1(t1), term2(t2) {} 1116 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1116 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1117 1117 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1118 1118 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1131 1131 public: 1132 1132 AddNode(ExpressionNode* t1, ExpressionNode* t2) KJS_FAST_CALL : term1(t1), term2(t2) {} 1133 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1133 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1134 1134 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1135 1135 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1178 1178 public: 1179 1179 SubNode(ExpressionNode* t1, ExpressionNode* t2) KJS_FAST_CALL : ExpressionNode(NumberType), term1(t1), term2(t2) {} 1180 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1180 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1181 1181 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1182 1182 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1195 1195 LeftShiftNode(ExpressionNode* t1, ExpressionNode* t2) KJS_FAST_CALL 1196 1196 : ExpressionNode(NumberType), term1(t1), term2(t2) {} 1197 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1197 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1198 1198 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1199 1199 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1212 1212 RightShiftNode(ExpressionNode* t1, ExpressionNode* t2) KJS_FAST_CALL 1213 1213 : ExpressionNode(NumberType), term1(t1), term2(t2) {} 1214 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1214 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1215 1215 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1216 1216 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1229 1229 UnsignedRightShiftNode(ExpressionNode* t1, ExpressionNode* t2) KJS_FAST_CALL 1230 1230 : ExpressionNode(NumberType), term1(t1), term2(t2) {} 1231 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1231 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1232 1232 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1233 1233 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1246 1246 LessNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1247 1247 : ExpressionNode(BooleanType), expr1(e1), expr2(e2) {} 1248 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1248 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1249 1249 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1250 1250 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1282 1282 GreaterNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL : 1283 1283 expr1(e1), expr2(e2) {} 1284 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1284 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1285 1285 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1286 1286 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1297 1297 LessEqNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL : 1298 1298 expr1(e1), expr2(e2) {} 1299 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1299 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1300 1300 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1301 1301 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1312 1312 GreaterEqNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL : 1313 1313 expr1(e1), expr2(e2) {} 1314 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1314 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1315 1315 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1316 1316 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1327 1327 InstanceOfNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1328 1328 : ExpressionNode(BooleanType), expr1(e1), expr2(e2) {} 1329 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1329 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1330 1330 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1331 1331 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1341 1341 InNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL : 1342 1342 expr1(e1), expr2(e2) {} 1343 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1343 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1344 1344 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1345 1345 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1355 1355 EqualNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1356 1356 : ExpressionNode(BooleanType), expr1(e1), expr2(e2) {} 1357 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1357 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1358 1358 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1359 1359 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1370 1370 NotEqualNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1371 1371 : ExpressionNode(BooleanType), expr1(e1), expr2(e2) {} 1372 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1372 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1373 1373 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1374 1374 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1385 1385 StrictEqualNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1386 1386 : ExpressionNode(BooleanType), expr1(e1), expr2(e2) {} 1387 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1387 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1388 1388 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1389 1389 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1400 1400 NotStrictEqualNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1401 1401 : ExpressionNode(BooleanType), expr1(e1), expr2(e2) {} 1402 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1402 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1403 1403 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1404 1404 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1415 1415 BitAndNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1416 1416 : ExpressionNode(NumberType), expr1(e1), expr2(e2) {} 1417 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1417 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1418 1418 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1419 1419 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1433 1433 BitOrNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1434 1434 : ExpressionNode(NumberType), expr1(e1), expr2(e2) {} 1435 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1435 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1436 1436 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1437 1437 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1451 1451 BitXOrNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1452 1452 : ExpressionNode(NumberType), expr1(e1), expr2(e2) {} 1453 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1453 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1454 1454 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1455 1455 virtual double evaluateToNumber(ExecState*) KJS_FAST_CALL; … … 1472 1472 LogicalAndNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1473 1473 : ExpressionNode(BooleanType), expr1(e1), expr2(e2) {} 1474 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1474 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1475 1475 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1476 1476 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1487 1487 LogicalOrNode(ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL 1488 1488 : ExpressionNode(BooleanType), expr1(e1), expr2(e2) {} 1489 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1489 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1490 1490 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1491 1491 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1505 1505 ConditionalNode(ExpressionNode* l, ExpressionNode* e1, ExpressionNode* e2) KJS_FAST_CALL : 1506 1506 logical(l), expr1(e1), expr2(e2) {} 1507 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1507 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1508 1508 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1509 1509 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1535 1535 } 1536 1536 1537 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1537 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1538 1538 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1539 1539 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1573 1573 } 1574 1574 1575 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1575 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1576 1576 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1577 1577 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1599 1599 ReadModifyBracketNode(ExpressionNode* base, ExpressionNode* subscript, Operator oper, ExpressionNode* right) KJS_FAST_CALL 1600 1600 : m_base(base), m_subscript(subscript), m_oper(oper), m_right(right) {} 1601 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1601 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1602 1602 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1603 1603 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1614 1614 AssignBracketNode(ExpressionNode* base, ExpressionNode* subscript, ExpressionNode* right) KJS_FAST_CALL 1615 1615 : m_base(base), m_subscript(subscript), m_right(right) {} 1616 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1616 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1617 1617 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1618 1618 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1628 1628 AssignDotNode(ExpressionNode* base, const Identifier& ident, ExpressionNode* right) KJS_FAST_CALL 1629 1629 : m_base(base), m_ident(ident), m_right(right) {} 1630 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1630 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1631 1631 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1632 1632 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1642 1642 ReadModifyDotNode(ExpressionNode* base, const Identifier& ident, Operator oper, ExpressionNode* right) KJS_FAST_CALL 1643 1643 : m_base(base), m_ident(ident), m_oper(oper), m_right(right) {} 1644 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1644 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1645 1645 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1646 1646 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1672 1672 e1->optimizeForUnnecessaryResult(); 1673 1673 } 1674 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1674 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1675 1675 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1676 1676 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1684 1684 public: 1685 1685 AssignExprNode(ExpressionNode* e) KJS_FAST_CALL : expr(e) {} 1686 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1686 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1687 1687 virtual JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1688 1688 virtual bool evaluateToBoolean(ExecState*) KJS_FAST_CALL; … … 1700 1700 enum Type { Variable, Constant }; 1701 1701 VarDeclNode(const Identifier &id, AssignExprNode *in, Type t) KJS_FAST_CALL; 1702 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1702 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1703 1703 virtual KJS::JSValue* evaluate(ExecState*) KJS_FAST_CALL; 1704 1704 void evaluateSingle(ExecState*) KJS_FAST_CALL; … … 1719 1719 public: 1720 1720 VarStatementNode(VarDeclNode* l) KJS_FAST_CALL : next(l) { m_mayHaveDeclarations = true; } 1721 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1721 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1722 1722 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1723 1723 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1739 1739 return elems; 1740 1740 } 1741 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL { ASSERT_NOT_REACHED(); }1741 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL { ASSERT_NOT_REACHED(); } 1742 1742 virtual Completion execute(ExecState*) KJS_FAST_CALL { ASSERT_NOT_REACHED(); return Completion(); } 1743 1743 virtual void streamTo(SourceStream&) const KJS_FAST_CALL { ASSERT_NOT_REACHED(); } … … 1751 1751 public: 1752 1752 BlockNode(SourceElements* children) KJS_FAST_CALL; 1753 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1753 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1754 1754 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1755 1755 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1769 1769 public: 1770 1770 ExprStatementNode(ExpressionNode* e) KJS_FAST_CALL : expr(e) { } 1771 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1771 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1772 1772 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1773 1773 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1780 1780 IfNode(ExpressionNode* e, StatementNode *s1, StatementNode *s2) KJS_FAST_CALL 1781 1781 : expr(e), statement1(s1), statement2(s2) { m_mayHaveDeclarations = statement1->mayHaveDeclarations() || (statement2 && statement2->mayHaveDeclarations()); } 1782 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1782 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1783 1783 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1784 1784 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1793 1793 public: 1794 1794 DoWhileNode(StatementNode *s, ExpressionNode* e) KJS_FAST_CALL : statement(s), expr(e) { m_mayHaveDeclarations = true; } 1795 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1795 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1796 1796 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1797 1797 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1805 1805 public: 1806 1806 WhileNode(ExpressionNode* e, StatementNode *s) KJS_FAST_CALL : expr(e), statement(s) { m_mayHaveDeclarations = true; } 1807 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1807 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1808 1808 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1809 1809 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1826 1826 } 1827 1827 1828 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1828 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1829 1829 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1830 1830 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1841 1841 ForInNode(ExpressionNode* l, ExpressionNode* e, StatementNode *s) KJS_FAST_CALL; 1842 1842 ForInNode(const Identifier &i, AssignExprNode *in, ExpressionNode* e, StatementNode *s) KJS_FAST_CALL; 1843 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1843 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1844 1844 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1845 1845 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1877 1877 public: 1878 1878 ReturnNode(ExpressionNode* v) KJS_FAST_CALL : value(v) {} 1879 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1879 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1880 1880 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1881 1881 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1887 1887 public: 1888 1888 WithNode(ExpressionNode* e, StatementNode* s) KJS_FAST_CALL : expr(e), statement(s) { m_mayHaveDeclarations = true; } 1889 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1889 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1890 1890 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1891 1891 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1899 1899 public: 1900 1900 LabelNode(const Identifier &l, StatementNode *s) KJS_FAST_CALL : label(l), statement(s) { m_mayHaveDeclarations = true; } 1901 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1901 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1902 1902 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1903 1903 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1911 1911 public: 1912 1912 ThrowNode(ExpressionNode* e) KJS_FAST_CALL : expr(e) {} 1913 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1913 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1914 1914 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1915 1915 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 1922 1922 TryNode(StatementNode *b, const Identifier &e, StatementNode *c, StatementNode *f) KJS_FAST_CALL 1923 1923 : tryBlock(b), exceptionIdent(e), catchBlock(c), finallyBlock(f) { m_mayHaveDeclarations = true; } 1924 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;1924 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 1925 1925 virtual Completion execute(ExecState*) KJS_FAST_CALL; 1926 1926 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2029 2029 CaseClauseNode(ExpressionNode* e, SourceElements* children) KJS_FAST_CALL 2030 2030 : expr(e), m_children(children) { m_mayHaveDeclarations = true; } 2031 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;2031 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 2032 2032 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; 2033 2033 virtual void getDeclarations(DeclarationStacks&) KJS_FAST_CALL; … … 2047 2047 ClauseListNode(ClauseListNode* n, CaseClauseNode* c) KJS_FAST_CALL 2048 2048 : clause(c) { n->next = this; m_mayHaveDeclarations = true; } 2049 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;2049 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 2050 2050 CaseClauseNode* getClause() const KJS_FAST_CALL { return clause.get(); } 2051 2051 ClauseListNode* getNext() const KJS_FAST_CALL { return next.get(); } … … 2063 2063 public: 2064 2064 CaseBlockNode(ClauseListNode* l1, CaseClauseNode* d, ClauseListNode* l2) KJS_FAST_CALL; 2065 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;2065 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 2066 2066 Completion evalBlock(ExecState *exec, JSValue *input) KJS_FAST_CALL; 2067 2067 virtual void streamTo(SourceStream&) const KJS_FAST_CALL; … … 2077 2077 public: 2078 2078 SwitchNode(ExpressionNode* e, CaseBlockNode *b) KJS_FAST_CALL : expr(e), block(b) { m_mayHaveDeclarations = true; } 2079 virtual void optimizeVariableAccess( FunctionBodyNode*, DeclarationStacks::NodeStack&) KJS_FAST_CALL;2079 virtual void optimizeVariableAccess(SymbolTable&, DeclarationStacks::NodeStack&) KJS_FAST_CALL; 2080 2080 virtual Completion execute(ExecState*) KJS_FAST_CALL; 2081 2081 virtual void streamTo(SourceStream&) const KJS_FAST_CALL;
Note:
See TracChangeset
for help on using the changeset viewer.