Index: src/interpreter/bytecode-generator.h |
diff --git a/src/interpreter/bytecode-generator.h b/src/interpreter/bytecode-generator.h |
index 7284cfe9e18a41ae7454af1333872dcc7f59a922..cdaac481a72e7e0b79cd8f553c561647a033a487 100644 |
--- a/src/interpreter/bytecode-generator.h |
+++ b/src/interpreter/bytecode-generator.h |
@@ -36,6 +36,7 @@ class BytecodeGenerator : public AstVisitor { |
class EffectResultScope; |
class AccumulatorResultScope; |
class RegisterResultScope; |
+ class AssignmentHazardScope; |
void MakeBytecodeBody(); |
Register NextContextRegister() const; |
@@ -54,6 +55,9 @@ class BytecodeGenerator : public AstVisitor { |
void VisitNot(UnaryOperation* expr); |
void VisitDelete(UnaryOperation* expr); |
+ // Used by flow control routines to evaluate loop condition. |
+ void VisitCondition(Expression* expr); |
rmcilroy
2015/11/05 16:34:51
Remove - no longer used.
|
+ |
// Helper visitors which perform common operations. |
Register VisitArguments(ZoneList<Expression*>* arguments); |
@@ -84,17 +88,12 @@ class BytecodeGenerator : public AstVisitor { |
Register value_out); |
void VisitForInAssignment(Expression* expr, FeedbackVectorSlot slot); |
- |
// Visitors for obtaining expression result in the accumulator, in a |
// register, or just getting the effect. |
void VisitForAccumulatorValue(Expression* expression); |
MUST_USE_RESULT Register VisitForRegisterValue(Expression* expression); |
void VisitForEffect(Expression* node); |
- // Methods marking the start and end of binary expressions. |
- void PrepareForBinaryExpression(); |
- void CompleteBinaryExpression(); |
- |
// Methods for tracking and remapping register. |
void RecordStoreToRegister(Register reg); |
Register LoadFromAliasedRegister(Register reg); |
@@ -122,6 +121,14 @@ class BytecodeGenerator : public AstVisitor { |
} |
ExpressionResultScope* execution_result() const { return execution_result_; } |
+ inline void set_assignment_hazard_scope( |
+ AssignmentHazardScope* assignment_hazard_scope) { |
+ assignment_hazard_scope_ = assignment_hazard_scope; |
+ } |
+ inline AssignmentHazardScope* assignment_hazard_scope() const { |
+ return assignment_hazard_scope_; |
+ } |
+ |
ZoneVector<Handle<Object>>* globals() { return &globals_; } |
inline LanguageMode language_mode() const; |
Strength language_mode_strength() const; |
@@ -136,9 +143,7 @@ class BytecodeGenerator : public AstVisitor { |
ControlScope* execution_control_; |
ContextScope* execution_context_; |
ExpressionResultScope* execution_result_; |
- |
- int binary_expression_depth_; |
- ZoneSet<int> binary_expression_hazard_set_; |
+ AssignmentHazardScope* assignment_hazard_scope_; |
}; |
} // namespace interpreter |