Changeset 38427 in webkit for trunk/JavaScriptCore/parser/Nodes.cpp
- Timestamp:
- Nov 15, 2008, 1:05:23 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/parser/Nodes.cpp
r38425 r38427 231 231 } 232 232 233 RegisterID* ThrowableExpressionData::emitThrowError( CodeGenerator& generator, ErrorType e, const char* msg)233 RegisterID* ThrowableExpressionData::emitThrowError(BytecodeGenerator& generator, ErrorType e, const char* msg) 234 234 { 235 235 generator.emitExpressionInfo(divot(), startOffset(), endOffset()); … … 239 239 } 240 240 241 RegisterID* ThrowableExpressionData::emitThrowError( CodeGenerator& generator, ErrorType e, const char* msg, const Identifier& label)241 RegisterID* ThrowableExpressionData::emitThrowError(BytecodeGenerator& generator, ErrorType e, const char* msg, const Identifier& label) 242 242 { 243 243 UString message = msg; … … 275 275 // ------------------------------ NullNode ------------------------------------- 276 276 277 RegisterID* NullNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)277 RegisterID* NullNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 278 278 { 279 279 if (dst == ignoredResult()) … … 284 284 // ------------------------------ BooleanNode ---------------------------------- 285 285 286 RegisterID* BooleanNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)286 RegisterID* BooleanNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 287 287 { 288 288 if (dst == ignoredResult()) … … 293 293 // ------------------------------ NumberNode ----------------------------------- 294 294 295 RegisterID* NumberNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)295 RegisterID* NumberNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 296 296 { 297 297 if (dst == ignoredResult()) … … 302 302 // ------------------------------ StringNode ----------------------------------- 303 303 304 RegisterID* StringNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)304 RegisterID* StringNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 305 305 { 306 306 if (dst == ignoredResult()) … … 311 311 // ------------------------------ RegExpNode ----------------------------------- 312 312 313 RegisterID* RegExpNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)313 RegisterID* RegExpNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 314 314 { 315 315 RefPtr<RegExp> regExp = RegExp::create(generator.globalData(), m_pattern, m_flags); … … 323 323 // ------------------------------ ThisNode ------------------------------------- 324 324 325 RegisterID* ThisNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)325 RegisterID* ThisNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 326 326 { 327 327 if (dst == ignoredResult()) … … 332 332 // ------------------------------ ResolveNode ---------------------------------- 333 333 334 bool ResolveNode::isPure( CodeGenerator& generator) const334 bool ResolveNode::isPure(BytecodeGenerator& generator) const 335 335 { 336 336 return generator.isLocal(m_ident); 337 337 } 338 338 339 RegisterID* ResolveNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)339 RegisterID* ResolveNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 340 340 { 341 341 if (RegisterID* local = generator.registerFor(m_ident)) { … … 374 374 } 375 375 376 RegisterID* ArrayNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)376 RegisterID* ArrayNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 377 377 { 378 378 // FIXME: Should we put all of this code into emitNewArray? … … 429 429 } 430 430 431 RegisterID* ObjectLiteralNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)431 RegisterID* ObjectLiteralNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 432 432 { 433 433 if (!m_list) { … … 452 452 } 453 453 454 RegisterID* PropertyListNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)454 RegisterID* PropertyListNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 455 455 { 456 456 RefPtr<RegisterID> newObj = generator.tempDestination(dst); … … 495 495 } 496 496 497 RegisterID* BracketAccessorNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)497 RegisterID* BracketAccessorNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 498 498 { 499 499 RefPtr<RegisterID> base = generator.emitNodeForLeftHandSide(m_base.get(), m_subscriptHasAssignments, m_subscript->isPure(generator)); … … 515 515 } 516 516 517 RegisterID* DotAccessorNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)517 RegisterID* DotAccessorNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 518 518 { 519 519 RegisterID* base = generator.emitNode(m_base.get()); … … 535 535 } 536 536 537 RegisterID* ArgumentListNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)537 RegisterID* ArgumentListNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 538 538 { 539 539 ASSERT(m_expr); … … 566 566 } 567 567 568 RegisterID* NewExprNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)568 RegisterID* NewExprNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 569 569 { 570 570 RefPtr<RegisterID> func = generator.emitNode(m_expr.get()); … … 584 584 } 585 585 586 RegisterID* EvalFunctionCallNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)586 RegisterID* EvalFunctionCallNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 587 587 { 588 588 RefPtr<RegisterID> func = generator.tempDestination(dst); … … 605 605 } 606 606 607 RegisterID* FunctionCallValueNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)607 RegisterID* FunctionCallValueNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 608 608 { 609 609 RefPtr<RegisterID> func = generator.emitNode(m_expr.get()); … … 624 624 } 625 625 626 RegisterID* FunctionCallResolveNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)626 RegisterID* FunctionCallResolveNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 627 627 { 628 628 if (RefPtr<RegisterID> local = generator.registerFor(m_ident)) { … … 662 662 } 663 663 664 RegisterID* FunctionCallBracketNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)664 RegisterID* FunctionCallBracketNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 665 665 { 666 666 RefPtr<RegisterID> base = generator.emitNode(m_base.get()); … … 685 685 } 686 686 687 RegisterID* FunctionCallDotNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)687 RegisterID* FunctionCallDotNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 688 688 { 689 689 RefPtr<RegisterID> base = generator.emitNode(m_base.get()); … … 696 696 // ------------------------------ PostfixResolveNode ---------------------------------- 697 697 698 static RegisterID* emitPreIncOrDec( CodeGenerator& generator, RegisterID* srcDst, Operator oper)698 static RegisterID* emitPreIncOrDec(BytecodeGenerator& generator, RegisterID* srcDst, Operator oper) 699 699 { 700 700 return (oper == OpPlusPlus) ? generator.emitPreInc(srcDst) : generator.emitPreDec(srcDst); 701 701 } 702 702 703 static RegisterID* emitPostIncOrDec( CodeGenerator& generator, RegisterID* dst, RegisterID* srcDst, Operator oper)703 static RegisterID* emitPostIncOrDec(BytecodeGenerator& generator, RegisterID* dst, RegisterID* srcDst, Operator oper) 704 704 { 705 705 return (oper == OpPlusPlus) ? generator.emitPostInc(dst, srcDst) : generator.emitPostDec(dst, srcDst); 706 706 } 707 707 708 RegisterID* PostfixResolveNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)708 RegisterID* PostfixResolveNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 709 709 { 710 710 if (RegisterID* local = generator.registerFor(m_ident)) { … … 763 763 } 764 764 765 RegisterID* PostfixBracketNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)765 RegisterID* PostfixBracketNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 766 766 { 767 767 RefPtr<RegisterID> base = generator.emitNode(m_base.get()); … … 797 797 } 798 798 799 RegisterID* PostfixDotNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)799 RegisterID* PostfixDotNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 800 800 { 801 801 RefPtr<RegisterID> base = generator.emitNode(m_base.get()); … … 830 830 } 831 831 832 RegisterID* PostfixErrorNode::emitBytecode( CodeGenerator& generator, RegisterID*)832 RegisterID* PostfixErrorNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 833 833 { 834 834 return emitThrowError(generator, ReferenceError, m_operator == OpPlusPlus ? "Postfix ++ operator applied to value that is not a reference." : "Postfix -- operator applied to value that is not a reference."); … … 837 837 // ------------------------------ DeleteResolveNode ----------------------------------- 838 838 839 RegisterID* DeleteResolveNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)839 RegisterID* DeleteResolveNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 840 840 { 841 841 if (generator.registerFor(m_ident)) … … 860 860 } 861 861 862 RegisterID* DeleteBracketNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)862 RegisterID* DeleteBracketNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 863 863 { 864 864 RefPtr<RegisterID> r0 = generator.emitNode(m_base.get()); … … 881 881 } 882 882 883 RegisterID* DeleteDotNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)883 RegisterID* DeleteDotNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 884 884 { 885 885 RegisterID* r0 = generator.emitNode(m_base.get()); … … 901 901 } 902 902 903 RegisterID* DeleteValueNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)903 RegisterID* DeleteValueNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 904 904 { 905 905 generator.emitNode(ignoredResult(), m_expr.get()); … … 921 921 } 922 922 923 RegisterID* VoidNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)923 RegisterID* VoidNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 924 924 { 925 925 if (dst == ignoredResult()) { … … 933 933 // ------------------------------ TypeOfValueNode ----------------------------------- 934 934 935 RegisterID* TypeOfResolveNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)935 RegisterID* TypeOfResolveNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 936 936 { 937 937 if (RegisterID* local = generator.registerFor(m_ident)) { … … 960 960 } 961 961 962 RegisterID* TypeOfValueNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)962 RegisterID* TypeOfValueNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 963 963 { 964 964 if (dst == ignoredResult()) { … … 972 972 // ------------------------------ PrefixResolveNode ---------------------------------- 973 973 974 RegisterID* PrefixResolveNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)974 RegisterID* PrefixResolveNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 975 975 { 976 976 if (RegisterID* local = generator.registerFor(m_ident)) { … … 1017 1017 } 1018 1018 1019 RegisterID* PrefixBracketNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1019 RegisterID* PrefixBracketNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1020 1020 { 1021 1021 RefPtr<RegisterID> base = generator.emitNode(m_base.get()); … … 1046 1046 } 1047 1047 1048 RegisterID* PrefixDotNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1048 RegisterID* PrefixDotNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1049 1049 { 1050 1050 RefPtr<RegisterID> base = generator.emitNode(m_base.get()); … … 1074 1074 } 1075 1075 1076 RegisterID* PrefixErrorNode::emitBytecode( CodeGenerator& generator, RegisterID*)1076 RegisterID* PrefixErrorNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 1077 1077 { 1078 1078 return emitThrowError(generator, ReferenceError, m_operator == OpPlusPlus ? "Prefix ++ operator applied to value that is not a reference." : "Prefix -- operator applied to value that is not a reference."); … … 1091 1091 } 1092 1092 1093 RegisterID* UnaryOpNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1093 RegisterID* UnaryOpNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1094 1094 { 1095 1095 RegisterID* src = generator.emitNode(m_expr.get()); … … 1110 1110 } 1111 1111 1112 RegisterID* BinaryOpNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1112 RegisterID* BinaryOpNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1113 1113 { 1114 1114 BytecodeID bytecode = this->bytecode(); … … 1125 1125 } 1126 1126 1127 RegisterID* EqualNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1127 RegisterID* EqualNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1128 1128 { 1129 1129 if (m_expr1->isNull() || m_expr2->isNull()) { … … 1137 1137 } 1138 1138 1139 RegisterID* StrictEqualNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1139 RegisterID* StrictEqualNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1140 1140 { 1141 1141 RefPtr<RegisterID> src1 = generator.emitNodeForLeftHandSide(m_expr1.get(), m_rightHasAssignments, m_expr2->isPure(generator)); … … 1144 1144 } 1145 1145 1146 RegisterID* ReverseBinaryOpNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1146 RegisterID* ReverseBinaryOpNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1147 1147 { 1148 1148 RefPtr<RegisterID> src1 = generator.emitNodeForLeftHandSide(m_expr1.get(), m_rightHasAssignments, m_expr2->isPure(generator)); … … 1151 1151 } 1152 1152 1153 RegisterID* ThrowableBinaryOpNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1153 RegisterID* ThrowableBinaryOpNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1154 1154 { 1155 1155 RefPtr<RegisterID> src1 = generator.emitNodeForLeftHandSide(m_expr1.get(), m_rightHasAssignments, m_expr2->isPure(generator)); … … 1159 1159 } 1160 1160 1161 RegisterID* InstanceOfNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1161 RegisterID* InstanceOfNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1162 1162 { 1163 1163 RefPtr<RegisterID> src1 = generator.emitNodeForLeftHandSide(m_expr1.get(), m_rightHasAssignments, m_expr2->isPure(generator)); … … 1184 1184 } 1185 1185 1186 RegisterID* LogicalOpNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1186 RegisterID* LogicalOpNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1187 1187 { 1188 1188 RefPtr<RegisterID> temp = generator.tempDestination(dst); … … 1214 1214 } 1215 1215 1216 RegisterID* ConditionalNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1216 RegisterID* ConditionalNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1217 1217 { 1218 1218 RefPtr<RegisterID> newDst = generator.finalDestination(dst); … … 1246 1246 } 1247 1247 1248 // FIXME: should this be moved to be a method on CodeGenerator?1249 static ALWAYS_INLINE RegisterID* emitReadModifyAssignment( CodeGenerator& generator, RegisterID* dst, RegisterID* src1, RegisterID* src2, Operator oper, OperandTypes types)1248 // FIXME: should this be moved to be a method on BytecodeGenerator? 1249 static ALWAYS_INLINE RegisterID* emitReadModifyAssignment(BytecodeGenerator& generator, RegisterID* dst, RegisterID* src1, RegisterID* src2, Operator oper, OperandTypes types) 1250 1250 { 1251 1251 BytecodeID bytecode; … … 1292 1292 } 1293 1293 1294 RegisterID* ReadModifyResolveNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1294 RegisterID* ReadModifyResolveNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1295 1295 { 1296 1296 if (RegisterID* local = generator.registerFor(m_ident)) { … … 1346 1346 } 1347 1347 1348 RegisterID* AssignResolveNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1348 RegisterID* AssignResolveNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1349 1349 { 1350 1350 if (RegisterID* local = generator.registerFor(m_ident)) { … … 1388 1388 } 1389 1389 1390 RegisterID* AssignDotNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1390 RegisterID* AssignDotNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1391 1391 { 1392 1392 RefPtr<RegisterID> base = generator.emitNodeForLeftHandSide(m_base.get(), m_rightHasAssignments, m_right->isPure(generator)); … … 1411 1411 } 1412 1412 1413 RegisterID* ReadModifyDotNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1413 RegisterID* ReadModifyDotNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1414 1414 { 1415 1415 RefPtr<RegisterID> base = generator.emitNodeForLeftHandSide(m_base.get(), m_rightHasAssignments, m_right->isPure(generator)); … … 1437 1437 } 1438 1438 1439 RegisterID* AssignErrorNode::emitBytecode( CodeGenerator& generator, RegisterID*)1439 RegisterID* AssignErrorNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 1440 1440 { 1441 1441 return emitThrowError(generator, ReferenceError, "Left side of assignment is not a reference."); … … 1456 1456 } 1457 1457 1458 RegisterID* AssignBracketNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1458 RegisterID* AssignBracketNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1459 1459 { 1460 1460 RefPtr<RegisterID> base = generator.emitNodeForLeftHandSide(m_base.get(), m_subscriptHasAssignments || m_rightHasAssignments, m_subscript->isPure(generator) && m_right->isPure(generator)); … … 1482 1482 } 1483 1483 1484 RegisterID* ReadModifyBracketNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1484 RegisterID* ReadModifyBracketNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1485 1485 { 1486 1486 RefPtr<RegisterID> base = generator.emitNodeForLeftHandSide(m_base.get(), m_subscriptHasAssignments || m_rightHasAssignments, m_subscript->isPure(generator) && m_right->isPure(generator)); … … 1511 1511 } 1512 1512 1513 RegisterID* CommaNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1513 RegisterID* CommaNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1514 1514 { 1515 1515 generator.emitNode(ignoredResult(), m_expr1.get()); … … 1537 1537 } 1538 1538 1539 RegisterID* ConstDeclNode::emitCodeSingle( CodeGenerator& generator)1539 RegisterID* ConstDeclNode::emitCodeSingle(BytecodeGenerator& generator) 1540 1540 { 1541 1541 if (RegisterID* local = generator.constRegisterFor(m_ident)) { … … 1553 1553 } 1554 1554 1555 RegisterID* ConstDeclNode::emitBytecode( CodeGenerator& generator, RegisterID*)1555 RegisterID* ConstDeclNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 1556 1556 { 1557 1557 RegisterID* result = 0; … … 1574 1574 } 1575 1575 1576 RegisterID* ConstStatementNode::emitBytecode( CodeGenerator& generator, RegisterID*)1576 RegisterID* ConstStatementNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 1577 1577 { 1578 1578 return generator.emitNode(m_next.get()); … … 1581 1581 // ------------------------------ Helper functions for handling Vectors of StatementNode ------------------------------- 1582 1582 1583 static inline RegisterID* statementListEmitCode(const StatementVector& statements, CodeGenerator& generator, RegisterID* dst)1583 static inline RegisterID* statementListEmitCode(const StatementVector& statements, BytecodeGenerator& generator, RegisterID* dst) 1584 1584 { 1585 1585 StatementVector::const_iterator end = statements.end(); … … 1614 1614 } 1615 1615 1616 RegisterID* BlockNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1616 RegisterID* BlockNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1617 1617 { 1618 1618 return statementListEmitCode(m_children, generator, dst); … … 1621 1621 // ------------------------------ EmptyStatementNode --------------------------- 1622 1622 1623 RegisterID* EmptyStatementNode::emitBytecode( CodeGenerator&, RegisterID* dst)1623 RegisterID* EmptyStatementNode::emitBytecode(BytecodeGenerator&, RegisterID* dst) 1624 1624 { 1625 1625 return dst; … … 1628 1628 // ------------------------------ DebuggerStatementNode --------------------------- 1629 1629 1630 RegisterID* DebuggerStatementNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1630 RegisterID* DebuggerStatementNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1631 1631 { 1632 1632 generator.emitDebugHook(DidReachBreakpoint, firstLine(), lastLine()); … … 1636 1636 // ------------------------------ ExprStatementNode ---------------------------- 1637 1637 1638 RegisterID* ExprStatementNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1638 RegisterID* ExprStatementNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1639 1639 { 1640 1640 ASSERT(m_expr); … … 1654 1654 } 1655 1655 1656 RegisterID* VarStatementNode::emitBytecode( CodeGenerator& generator, RegisterID*)1656 RegisterID* VarStatementNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 1657 1657 { 1658 1658 ASSERT(m_expr); … … 1673 1673 } 1674 1674 1675 RegisterID* IfNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1675 RegisterID* IfNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1676 1676 { 1677 1677 RefPtr<LabelID> afterThen = generator.newLabel(); … … 1703 1703 } 1704 1704 1705 RegisterID* IfElseNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1705 RegisterID* IfElseNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1706 1706 { 1707 1707 RefPtr<LabelID> beforeElse = generator.newLabel(); … … 1743 1743 } 1744 1744 1745 RegisterID* DoWhileNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1745 RegisterID* DoWhileNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1746 1746 { 1747 1747 RefPtr<LabelScope> scope = generator.newLabelScope(LabelScope::Loop); … … 1779 1779 } 1780 1780 1781 RegisterID* WhileNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1781 RegisterID* WhileNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1782 1782 { 1783 1783 RefPtr<LabelScope> scope = generator.newLabelScope(LabelScope::Loop); … … 1819 1819 } 1820 1820 1821 RegisterID* ForNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1821 RegisterID* ForNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1822 1822 { 1823 1823 if (dst == ignoredResult()) … … 1897 1897 } 1898 1898 1899 RegisterID* ForInNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1899 RegisterID* ForInNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1900 1900 { 1901 1901 RefPtr<LabelScope> scope = generator.newLabelScope(LabelScope::Loop); … … 1963 1963 1964 1964 // ECMA 12.7 1965 RegisterID* ContinueNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1965 RegisterID* ContinueNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1966 1966 { 1967 1967 LabelScope* scope = generator.continueTarget(m_ident); … … 1979 1979 1980 1980 // ECMA 12.8 1981 RegisterID* BreakNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)1981 RegisterID* BreakNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 1982 1982 { 1983 1983 LabelScope* scope = generator.breakTarget(m_ident); … … 2004 2004 } 2005 2005 2006 RegisterID* ReturnNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)2006 RegisterID* ReturnNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 2007 2007 { 2008 2008 if (generator.codeType() != FunctionCode) … … 2034 2034 } 2035 2035 2036 RegisterID* WithNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)2036 RegisterID* WithNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 2037 2037 { 2038 2038 RefPtr<RegisterID> scope = generator.emitNode(m_expr.get()); // scope must be protected until popped … … 2160 2160 } 2161 2161 2162 RegisterID* CaseBlockNode::emit CodeForBlock(CodeGenerator& generator, RegisterID* switchExpression, RegisterID* dst)2162 RegisterID* CaseBlockNode::emitBytecodeForBlock(BytecodeGenerator& generator, RegisterID* switchExpression, RegisterID* dst) 2163 2163 { 2164 2164 RefPtr<LabelID> defaultLabel; … … 2237 2237 } 2238 2238 2239 RegisterID* SwitchNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)2239 RegisterID* SwitchNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 2240 2240 { 2241 2241 RefPtr<LabelScope> scope = generator.newLabelScope(LabelScope::Switch); 2242 2242 2243 2243 RefPtr<RegisterID> r0 = generator.emitNode(m_expr.get()); 2244 RegisterID* r1 = m_block->emit CodeForBlock(generator, r0.get(), dst);2244 RegisterID* r1 = m_block->emitBytecodeForBlock(generator, r0.get(), dst); 2245 2245 2246 2246 generator.emitLabel(scope->breakTarget()); … … 2260 2260 } 2261 2261 2262 RegisterID* LabelNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)2262 RegisterID* LabelNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 2263 2263 { 2264 2264 if (generator.breakTarget(m_name)) … … 2284 2284 } 2285 2285 2286 RegisterID* ThrowNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)2286 RegisterID* ThrowNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 2287 2287 { 2288 2288 if (dst == ignoredResult()) … … 2308 2308 } 2309 2309 2310 RegisterID* TryNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)2310 RegisterID* TryNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 2311 2311 { 2312 2312 RefPtr<LabelID> tryStartLabel = generator.newLabel(); … … 2414 2414 } 2415 2415 2416 RegisterID* EvalNode::emitBytecode( CodeGenerator& generator, RegisterID*)2416 RegisterID* EvalNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 2417 2417 { 2418 2418 generator.emitDebugHook(WillExecuteProgram, firstLine(), lastLine()); … … 2427 2427 } 2428 2428 2429 void EvalNode::generate Code(ScopeChainNode* scopeChainNode)2429 void EvalNode::generateBytecode(ScopeChainNode* scopeChainNode) 2430 2430 { 2431 2431 ScopeChain scopeChain(scopeChainNode); … … 2434 2434 m_code.set(new EvalCodeBlock(this, globalObject, source().provider())); 2435 2435 2436 CodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable, m_code.get());2436 BytecodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable, m_code.get()); 2437 2437 generator.generate(); 2438 2438 } … … 2493 2493 } 2494 2494 2495 void FunctionBodyNode::generate Code(ScopeChainNode* scopeChainNode)2495 void FunctionBodyNode::generateBytecode(ScopeChainNode* scopeChainNode) 2496 2496 { 2497 2497 ScopeChain scopeChain(scopeChainNode); … … 2500 2500 m_code.set(new CodeBlock(this, FunctionCode, source().provider(), source().startOffset())); 2501 2501 2502 CodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable, m_code.get());2502 BytecodeGenerator generator(this, globalObject->debugger(), scopeChain, &m_code->symbolTable, m_code.get()); 2503 2503 generator.generate(); 2504 2504 } 2505 2505 2506 RegisterID* FunctionBodyNode::emitBytecode( CodeGenerator& generator, RegisterID*)2506 RegisterID* FunctionBodyNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 2507 2507 { 2508 2508 generator.emitDebugHook(DidEnterCallFrame, firstLine(), lastLine()); … … 2516 2516 } 2517 2517 2518 RegisterID* ProgramNode::emitBytecode( CodeGenerator& generator, RegisterID*)2518 RegisterID* ProgramNode::emitBytecode(BytecodeGenerator& generator, RegisterID*) 2519 2519 { 2520 2520 generator.emitDebugHook(WillExecuteProgram, firstLine(), lastLine()); … … 2529 2529 } 2530 2530 2531 void ProgramNode::generate Code(ScopeChainNode* scopeChainNode)2531 void ProgramNode::generateBytecode(ScopeChainNode* scopeChainNode) 2532 2532 { 2533 2533 ScopeChain scopeChain(scopeChainNode); … … 2536 2536 m_code.set(new ProgramCodeBlock(this, GlobalCode, globalObject, source().provider())); 2537 2537 2538 CodeGenerator generator(this, globalObject->debugger(), scopeChain, &globalObject->symbolTable(), m_code.get(), m_varStack, m_functionStack);2538 BytecodeGenerator generator(this, globalObject->debugger(), scopeChain, &globalObject->symbolTable(), m_code.get(), m_varStack, m_functionStack); 2539 2539 generator.generate(); 2540 2540 } … … 2577 2577 } 2578 2578 2579 RegisterID* FuncDeclNode::emitBytecode( CodeGenerator&, RegisterID* dst)2579 RegisterID* FuncDeclNode::emitBytecode(BytecodeGenerator&, RegisterID* dst) 2580 2580 { 2581 2581 return dst; … … 2595 2595 } 2596 2596 2597 RegisterID* FuncExprNode::emitBytecode( CodeGenerator& generator, RegisterID* dst)2597 RegisterID* FuncExprNode::emitBytecode(BytecodeGenerator& generator, RegisterID* dst) 2598 2598 { 2599 2599 return generator.emitNewFunctionExpression(generator.finalDestination(dst), this);
Note:
See TracChangeset
for help on using the changeset viewer.