Changeset 38247 in webkit for trunk/JavaScriptCore/parser/Nodes.h
- Timestamp:
- Nov 9, 2008, 5:04:30 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/parser/Nodes.h
r38209 r38247 36 36 #include "SymbolTable.h" 37 37 #include "RegExp.h" 38 #include <wtf/ListRefPtr.h>39 38 #include <wtf/MathExtras.h> 40 39 #include <wtf/OwnPtr.h> … … 56 55 class EvalCodeBlock; 57 56 class JSFunction; 57 class NodeReleaser; 58 58 class ProgramCodeBlock; 59 59 class PropertyListNode; … … 136 136 137 137 public: 138 // Nonrecursive destruction. 139 virtual void releaseNodes(NodeReleaser&); 140 138 141 void ref() JSC_FAST_CALL; 139 142 void deref() JSC_FAST_CALL; … … 191 194 virtual Precedence precedence() const = 0; 192 195 virtual bool needsParensIfLeftmost() const { return false; } 193 196 194 197 protected: 195 198 int m_line; … … 478 481 Identifier m_ident; 479 482 int32_t m_startOffset; 480 481 483 }; 482 484 … … 498 500 } 499 501 502 virtual ~ElementNode(); 503 virtual void releaseNodes(NodeReleaser&); 504 500 505 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } 501 506 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 505 510 506 511 ElementNode* next() { return m_next.get(); } 507 PassRefPtr<ElementNode> releaseNext() JSC_FAST_CALL { return m_next.release(); } 508 509 private: 510 ListRefPtr<ElementNode> m_next; 512 513 private: 514 RefPtr<ElementNode> m_next; 511 515 int m_elision; 512 516 RefPtr<ExpressionNode> m_node; … … 537 541 { 538 542 } 543 544 virtual ~ArrayNode(); 545 virtual void releaseNodes(NodeReleaser&); 539 546 540 547 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 561 568 } 562 569 570 virtual ~PropertyNode(); 571 virtual void releaseNodes(NodeReleaser&); 572 563 573 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 564 574 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 588 598 } 589 599 600 virtual ~PropertyListNode(); 601 virtual void releaseNodes(NodeReleaser&); 602 590 603 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 591 604 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 592 605 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } 593 594 PassRefPtr<PropertyListNode> releaseNext() JSC_FAST_CALL { return m_next.release(); }595 606 596 607 private: 597 608 friend class ObjectLiteralNode; 598 609 RefPtr<PropertyNode> m_node; 599 ListRefPtr<PropertyListNode> m_next;610 RefPtr<PropertyListNode> m_next; 600 611 }; 601 612 … … 612 623 { 613 624 } 625 626 virtual ~ObjectLiteralNode(); 627 virtual void releaseNodes(NodeReleaser&); 614 628 615 629 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 631 645 { 632 646 } 647 648 virtual ~BracketAccessorNode(); 649 virtual void releaseNodes(NodeReleaser&); 633 650 634 651 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 657 674 } 658 675 676 virtual ~DotAccessorNode(); 677 virtual void releaseNodes(NodeReleaser&); 678 659 679 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 660 680 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 686 706 } 687 707 708 virtual ~ArgumentListNode(); 709 virtual void releaseNodes(NodeReleaser&); 710 688 711 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 689 712 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 690 713 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } 691 714 692 PassRefPtr<ArgumentListNode> releaseNext() JSC_FAST_CALL { return m_next.release(); } 693 694 ListRefPtr<ArgumentListNode> m_next; 715 RefPtr<ArgumentListNode> m_next; 695 716 RefPtr<ExpressionNode> m_expr; 696 717 }; … … 709 730 } 710 731 732 virtual ~ArgumentsNode(); 733 virtual void releaseNodes(NodeReleaser&); 734 711 735 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 712 736 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 730 754 } 731 755 756 virtual ~NewExprNode(); 757 virtual void releaseNodes(NodeReleaser&); 758 732 759 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 733 760 … … 748 775 { 749 776 } 777 778 virtual ~EvalFunctionCallNode(); 779 virtual void releaseNodes(NodeReleaser&); 750 780 751 781 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 767 797 } 768 798 799 virtual ~FunctionCallValueNode(); 800 virtual void releaseNodes(NodeReleaser&); 801 769 802 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 770 803 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 785 818 { 786 819 } 820 821 virtual ~FunctionCallResolveNode(); 822 virtual void releaseNodes(NodeReleaser&); 787 823 788 824 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 809 845 } 810 846 847 virtual ~FunctionCallBracketNode(); 848 virtual void releaseNodes(NodeReleaser&); 849 811 850 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 812 851 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 830 869 } 831 870 871 virtual ~FunctionCallDotNode(); 872 virtual void releaseNodes(NodeReleaser&); 873 832 874 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 833 875 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 880 922 } 881 923 924 virtual ~PostfixBracketNode(); 925 virtual void releaseNodes(NodeReleaser&); 926 882 927 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 883 928 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 901 946 } 902 947 948 virtual ~PostfixDotNode(); 949 virtual void releaseNodes(NodeReleaser&); 950 903 951 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 904 952 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 921 969 } 922 970 971 virtual ~PostfixErrorNode(); 972 virtual void releaseNodes(NodeReleaser&); 973 923 974 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 924 975 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 958 1009 } 959 1010 1011 virtual ~DeleteBracketNode(); 1012 virtual void releaseNodes(NodeReleaser&); 1013 960 1014 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 961 1015 … … 978 1032 } 979 1033 1034 virtual ~DeleteDotNode(); 1035 virtual void releaseNodes(NodeReleaser&); 1036 980 1037 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 981 1038 … … 996 1053 } 997 1054 1055 virtual ~DeleteValueNode(); 1056 virtual void releaseNodes(NodeReleaser&); 1057 998 1058 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 999 1059 … … 1012 1072 { 1013 1073 } 1074 1075 virtual ~VoidNode(); 1076 virtual void releaseNodes(NodeReleaser&); 1014 1077 1015 1078 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 1049 1112 { 1050 1113 } 1114 1115 virtual ~TypeOfValueNode(); 1116 virtual void releaseNodes(NodeReleaser&); 1051 1117 1052 1118 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 1087 1153 } 1088 1154 1155 virtual ~PrefixBracketNode(); 1156 virtual void releaseNodes(NodeReleaser&); 1157 1089 1158 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1090 1159 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 1108 1177 } 1109 1178 1179 virtual ~PrefixDotNode(); 1180 virtual void releaseNodes(NodeReleaser&); 1181 1110 1182 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1111 1183 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 1128 1200 } 1129 1201 1202 virtual ~PrefixErrorNode(); 1203 virtual void releaseNodes(NodeReleaser&); 1204 1130 1205 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1131 1206 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 1150 1225 { 1151 1226 } 1227 1228 virtual ~UnaryOpNode(); 1229 virtual void releaseNodes(NodeReleaser&); 1152 1230 1153 1231 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 1226 1304 } 1227 1305 1306 virtual ~BinaryOpNode(); 1307 virtual void releaseNodes(NodeReleaser&); 1308 1228 1309 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1229 1310 virtual OpcodeID opcode() const JSC_FAST_CALL = 0; … … 1235 1316 }; 1236 1317 1237 class ReverseBinaryOpNode : public ExpressionNode {1318 class ReverseBinaryOpNode : public BinaryOpNode { 1238 1319 public: 1239 1320 ReverseBinaryOpNode(JSGlobalData* globalData, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments) 1240 : ExpressionNode(globalData) 1241 , m_expr1(expr1) 1242 , m_expr2(expr2) 1243 , m_rightHasAssignments(rightHasAssignments) 1321 : BinaryOpNode(globalData, expr1, expr2, rightHasAssignments) 1244 1322 { 1245 1323 } 1246 1324 1247 1325 ReverseBinaryOpNode(JSGlobalData* globalData, ResultType type, ExpressionNode* expr1, ExpressionNode* expr2, bool rightHasAssignments) 1248 : ExpressionNode(globalData, type) 1249 , m_expr1(expr1) 1250 , m_expr2(expr2) 1251 , m_rightHasAssignments(rightHasAssignments) 1252 { 1253 } 1254 1255 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1256 virtual OpcodeID opcode() const JSC_FAST_CALL = 0; 1257 1258 protected: 1259 RefPtr<ExpressionNode> m_expr1; 1260 RefPtr<ExpressionNode> m_expr2; 1261 bool m_rightHasAssignments; 1326 : BinaryOpNode(globalData, type, expr1, expr2, rightHasAssignments) 1327 { 1328 } 1329 1330 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1262 1331 }; 1263 1332 … … 1544 1613 } 1545 1614 1615 virtual ~LogicalOpNode(); 1616 virtual void releaseNodes(NodeReleaser&); 1617 1546 1618 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1547 1619 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 1566 1638 { 1567 1639 } 1640 1641 virtual ~ConditionalNode(); 1642 virtual void releaseNodes(NodeReleaser&); 1568 1643 1569 1644 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 1589 1664 } 1590 1665 1666 virtual ~ReadModifyResolveNode(); 1667 virtual void releaseNodes(NodeReleaser&); 1668 1591 1669 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1592 1670 … … 1611 1689 { 1612 1690 } 1691 1692 virtual ~AssignResolveNode(); 1693 virtual void releaseNodes(NodeReleaser&); 1613 1694 1614 1695 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 1638 1719 } 1639 1720 1721 virtual ~ReadModifyBracketNode(); 1722 virtual void releaseNodes(NodeReleaser&); 1723 1640 1724 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1641 1725 … … 1665 1749 } 1666 1750 1751 virtual ~AssignBracketNode(); 1752 virtual void releaseNodes(NodeReleaser&); 1753 1667 1754 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1668 1755 … … 1689 1776 { 1690 1777 } 1778 1779 virtual ~AssignDotNode(); 1780 virtual void releaseNodes(NodeReleaser&); 1691 1781 1692 1782 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 1714 1804 } 1715 1805 1806 virtual ~ReadModifyDotNode(); 1807 virtual void releaseNodes(NodeReleaser&); 1808 1716 1809 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1717 1810 … … 1738 1831 } 1739 1832 1833 virtual ~AssignErrorNode(); 1834 virtual void releaseNodes(NodeReleaser&); 1835 1740 1836 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1741 1837 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 1757 1853 } 1758 1854 1855 virtual ~CommaNode(); 1856 virtual void releaseNodes(NodeReleaser&); 1857 1759 1858 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1760 1859 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 1779 1878 ConstDeclNode(JSGlobalData* globalData, const Identifier& ident, ExpressionNode* in) JSC_FAST_CALL; 1780 1879 1880 virtual ~ConstDeclNode(); 1881 virtual void releaseNodes(NodeReleaser&); 1882 1781 1883 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 1782 1884 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } 1783 PassRefPtr<ConstDeclNode> releaseNext() JSC_FAST_CALL { return m_next.release(); }1784 1885 1785 1886 Identifier m_ident; 1786 ListRefPtr<ConstDeclNode> m_next;1887 RefPtr<ConstDeclNode> m_next; 1787 1888 RefPtr<ExpressionNode> m_init; 1788 1889 … … 1799 1900 } 1800 1901 1902 virtual ~ConstStatementNode(); 1903 virtual void releaseNodes(NodeReleaser&); 1904 1801 1905 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 1802 1906 … … 1828 1932 BlockNode(JSGlobalData*, SourceElements* children) JSC_FAST_CALL; 1829 1933 1934 virtual ~BlockNode(); 1935 virtual void releaseNodes(NodeReleaser&); 1936 1830 1937 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1831 1938 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 1834 1941 1835 1942 virtual bool isBlock() const JSC_FAST_CALL { return true; } 1943 1836 1944 protected: 1837 1945 StatementVector m_children; … … 1886 1994 } 1887 1995 1996 virtual ~VarStatementNode(); 1997 virtual void releaseNodes(NodeReleaser&); 1998 1888 1999 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1889 2000 … … 1903 2014 } 1904 2015 2016 virtual ~IfNode(); 2017 virtual void releaseNodes(NodeReleaser&); 2018 1905 2019 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1906 2020 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 1918 2032 { 1919 2033 } 2034 2035 virtual ~IfElseNode(); 2036 virtual void releaseNodes(NodeReleaser&); 1920 2037 1921 2038 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 1935 2052 } 1936 2053 2054 virtual ~DoWhileNode(); 2055 virtual void releaseNodes(NodeReleaser&); 2056 1937 2057 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1938 2058 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 1939 2059 1940 2060 virtual bool isLoop() const JSC_FAST_CALL { return true; } 2061 1941 2062 private: 1942 2063 RefPtr<StatementNode> m_statement; … … 1953 2074 } 1954 2075 2076 virtual ~WhileNode(); 2077 virtual void releaseNodes(NodeReleaser&); 2078 1955 2079 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1956 2080 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 1957 2081 1958 2082 virtual bool isLoop() const JSC_FAST_CALL { return true; } 2083 1959 2084 private: 1960 2085 RefPtr<ExpressionNode> m_expr; … … 1975 2100 } 1976 2101 2102 virtual ~ForNode(); 2103 virtual void releaseNodes(NodeReleaser&); 2104 1977 2105 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1978 2106 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 1979 2107 1980 2108 virtual bool isLoop() const JSC_FAST_CALL { return true; } 2109 1981 2110 private: 1982 2111 RefPtr<ExpressionNode> m_expr1; … … 1992 2121 ForInNode(JSGlobalData*, const Identifier&, ExpressionNode*, ExpressionNode*, StatementNode*, int divot, int startOffset, int endOffset) JSC_FAST_CALL; 1993 2122 2123 virtual ~ForInNode(); 2124 virtual void releaseNodes(NodeReleaser&); 2125 1994 2126 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 1995 2127 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 1996 2128 1997 2129 virtual bool isLoop() const JSC_FAST_CALL { return true; } 2130 1998 2131 private: 1999 2132 Identifier m_ident; … … 2053 2186 } 2054 2187 2188 virtual ~ReturnNode(); 2189 virtual void releaseNodes(NodeReleaser&); 2190 2055 2191 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 2056 2192 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 2072 2208 } 2073 2209 2210 virtual ~WithNode(); 2211 virtual void releaseNodes(NodeReleaser&); 2212 2074 2213 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 2075 2214 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 2091 2230 } 2092 2231 2232 virtual ~LabelNode(); 2233 virtual void releaseNodes(NodeReleaser&); 2234 2093 2235 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 2094 2236 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; … … 2106 2248 { 2107 2249 } 2250 2251 virtual ~ThrowNode(); 2252 virtual void releaseNodes(NodeReleaser&); 2108 2253 2109 2254 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; … … 2125 2270 } 2126 2271 2272 virtual ~TryNode(); 2273 virtual void releaseNodes(NodeReleaser&); 2274 2127 2275 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 2128 2276 … … 2151 2299 } 2152 2300 2301 virtual ~ParameterNode(); 2302 virtual void releaseNodes(NodeReleaser&); 2303 2153 2304 Identifier ident() JSC_FAST_CALL { return m_ident; } 2154 2305 ParameterNode *nextParam() JSC_FAST_CALL { return m_next.get(); } 2155 2306 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 2156 PassRefPtr<ParameterNode> releaseNext() JSC_FAST_CALL { return m_next.release(); }2157 2307 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } 2158 2308 … … 2161 2311 friend class FuncExprNode; 2162 2312 Identifier m_ident; 2163 ListRefPtr<ParameterNode> m_next;2313 RefPtr<ParameterNode> m_next; 2164 2314 }; 2165 2315 … … 2325 2475 } 2326 2476 2477 virtual ~FuncExprNode(); 2478 virtual void releaseNodes(NodeReleaser&); 2479 2327 2480 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 2328 2481 JSFunction* makeFunction(ExecState*, ScopeChainNode*) JSC_FAST_CALL; … … 2352 2505 } 2353 2506 2507 virtual ~FuncDeclNode(); 2508 virtual void releaseNodes(NodeReleaser&); 2509 2354 2510 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 2355 2511 … … 2382 2538 } 2383 2539 2540 virtual ~CaseClauseNode(); 2541 virtual void releaseNodes(NodeReleaser&); 2542 2384 2543 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 2385 2544 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } … … 2408 2567 } 2409 2568 2569 virtual ~ClauseListNode(); 2570 virtual void releaseNodes(NodeReleaser&); 2571 2410 2572 CaseClauseNode* getClause() const JSC_FAST_CALL { return m_clause.get(); } 2411 2573 ClauseListNode* getNext() const JSC_FAST_CALL { return m_next.get(); } 2412 2574 virtual void streamTo(SourceStream&) const JSC_FAST_CALL; 2413 PassRefPtr<ClauseListNode> releaseNext() JSC_FAST_CALL { return m_next.release(); }2414 2575 virtual Precedence precedence() const { ASSERT_NOT_REACHED(); return PrecExpression; } 2415 2576 … … 2417 2578 friend class CaseBlockNode; 2418 2579 RefPtr<CaseClauseNode> m_clause; 2419 ListRefPtr<ClauseListNode> m_next;2580 RefPtr<ClauseListNode> m_next; 2420 2581 }; 2421 2582 … … 2430 2591 } 2431 2592 2593 virtual ~CaseBlockNode(); 2594 virtual void releaseNodes(NodeReleaser&); 2595 2432 2596 RegisterID* emitCodeForBlock(CodeGenerator&, RegisterID* input, RegisterID* dst = 0) JSC_FAST_CALL; 2433 2597 … … 2451 2615 } 2452 2616 2617 virtual ~SwitchNode(); 2618 virtual void releaseNodes(NodeReleaser&); 2619 2453 2620 virtual RegisterID* emitCode(CodeGenerator&, RegisterID* = 0) JSC_FAST_CALL; 2454 2621
Note:
See TracChangeset
for help on using the changeset viewer.