| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/ast.h" | 5 #include "src/ast.h" |
| 6 | 6 |
| 7 #include <cmath> // For isfinite. | 7 #include <cmath> // For isfinite. |
| 8 #include "src/builtins.h" | 8 #include "src/builtins.h" |
| 9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
| 10 #include "src/contexts.h" | 10 #include "src/contexts.h" |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 } | 98 } |
| 99 | 99 |
| 100 | 100 |
| 101 Assignment::Assignment(Zone* zone, Token::Value op, Expression* target, | 101 Assignment::Assignment(Zone* zone, Token::Value op, Expression* target, |
| 102 Expression* value, int pos, IdGen* id_gen) | 102 Expression* value, int pos, IdGen* id_gen) |
| 103 : Expression(zone, pos, id_gen), | 103 : Expression(zone, pos, id_gen), |
| 104 op_(op), | 104 op_(op), |
| 105 target_(target), | 105 target_(target), |
| 106 value_(value), | 106 value_(value), |
| 107 binary_operation_(NULL), | 107 binary_operation_(NULL), |
| 108 assignment_id_(id_gen->GetNextId()), | |
| 109 is_uninitialized_(false), | 108 is_uninitialized_(false), |
| 110 store_mode_(STANDARD_STORE) {} | 109 store_mode_(STANDARD_STORE) { |
| 110 #ifdef DEBUG |
| 111 int assignment_id = |
| 112 #endif |
| 113 id_gen->ReserveIdRange(kClassIdRange); // reserve assignment id |
| 114 DCHECK(assignment_id == AssignmentId().ToInt()); |
| 115 } |
| 111 | 116 |
| 112 | 117 |
| 113 Token::Value Assignment::binary_op() const { | 118 Token::Value Assignment::binary_op() const { |
| 114 switch (op_) { | 119 switch (op_) { |
| 115 case Token::ASSIGN_BIT_OR: return Token::BIT_OR; | 120 case Token::ASSIGN_BIT_OR: return Token::BIT_OR; |
| 116 case Token::ASSIGN_BIT_XOR: return Token::BIT_XOR; | 121 case Token::ASSIGN_BIT_XOR: return Token::BIT_XOR; |
| 117 case Token::ASSIGN_BIT_AND: return Token::BIT_AND; | 122 case Token::ASSIGN_BIT_AND: return Token::BIT_AND; |
| 118 case Token::ASSIGN_SHL: return Token::SHL; | 123 case Token::ASSIGN_SHL: return Token::SHL; |
| 119 case Token::ASSIGN_SAR: return Token::SAR; | 124 case Token::ASSIGN_SAR: return Token::SAR; |
| 120 case Token::ASSIGN_SHR: return Token::SHR; | 125 case Token::ASSIGN_SHR: return Token::SHR; |
| (...skipping 864 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 985 max_match_ = IncreaseBy(max_match_, node_max_match); | 990 max_match_ = IncreaseBy(max_match_, node_max_match); |
| 986 } | 991 } |
| 987 } | 992 } |
| 988 | 993 |
| 989 | 994 |
| 990 CaseClause::CaseClause(Zone* zone, Expression* label, | 995 CaseClause::CaseClause(Zone* zone, Expression* label, |
| 991 ZoneList<Statement*>* statements, int pos, IdGen* id_gen) | 996 ZoneList<Statement*>* statements, int pos, IdGen* id_gen) |
| 992 : Expression(zone, pos, id_gen), | 997 : Expression(zone, pos, id_gen), |
| 993 label_(label), | 998 label_(label), |
| 994 statements_(statements), | 999 statements_(statements), |
| 995 compare_type_(Type::None(zone)), | 1000 compare_type_(Type::None(zone)) { |
| 996 compare_id_(id_gen->GetNextId()), | 1001 #ifdef DEBUG |
| 997 entry_id_(id_gen->GetNextId()) {} | 1002 int compare_id = |
| 998 | 1003 #endif |
| 1004 id_gen->ReserveIdRange(kClassIdRange); |
| 1005 DCHECK(compare_id == CompareId().ToInt()); |
| 1006 } |
| 999 | 1007 |
| 1000 #define REGULAR_NODE(NodeType) \ | 1008 #define REGULAR_NODE(NodeType) \ |
| 1001 void AstConstructionVisitor::Visit##NodeType(NodeType* node) { \ | 1009 void AstConstructionVisitor::Visit##NodeType(NodeType* node) { \ |
| 1002 increase_node_count(); \ | 1010 increase_node_count(); \ |
| 1003 } | 1011 } |
| 1004 #define REGULAR_NODE_WITH_FEEDBACK_SLOTS(NodeType) \ | 1012 #define REGULAR_NODE_WITH_FEEDBACK_SLOTS(NodeType) \ |
| 1005 void AstConstructionVisitor::Visit##NodeType(NodeType* node) { \ | 1013 void AstConstructionVisitor::Visit##NodeType(NodeType* node) { \ |
| 1006 increase_node_count(); \ | 1014 increase_node_count(); \ |
| 1007 add_slot_node(node); \ | 1015 add_slot_node(node); \ |
| 1008 } | 1016 } |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1126 SNPrintF(buffer, "%d", Smi::cast(*value())->value()); | 1134 SNPrintF(buffer, "%d", Smi::cast(*value())->value()); |
| 1127 str = arr; | 1135 str = arr; |
| 1128 } else { | 1136 } else { |
| 1129 str = DoubleToCString(value()->Number(), buffer); | 1137 str = DoubleToCString(value()->Number(), buffer); |
| 1130 } | 1138 } |
| 1131 return isolate_->factory()->NewStringFromAsciiChecked(str); | 1139 return isolate_->factory()->NewStringFromAsciiChecked(str); |
| 1132 } | 1140 } |
| 1133 | 1141 |
| 1134 | 1142 |
| 1135 } } // namespace v8::internal | 1143 } } // namespace v8::internal |
| OLD | NEW |