Index: src/interpreter/bytecode-generator.h |
diff --git a/src/interpreter/bytecode-generator.h b/src/interpreter/bytecode-generator.h |
index 66dd1e3c1c2797afa79db8f86f0b6bc449e809d7..020b0a81c1b99173f623de89ca76dedea963d6ce 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 StatementResultScope; |
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/03 14:17:52
Should this be VisitForCondition or VisitForTest (
oth
2015/11/04 10:03:36
Removed from latest revision as no longer need to
|
+ |
// Helper visitors which perform common operations. |
Register VisitArguments(ZoneList<Expression*>* arguments); |
@@ -80,7 +84,7 @@ class BytecodeGenerator : public AstVisitor { |
ObjectLiteralProperty* property, |
Register value_out); |
void VisitForInAssignment(Expression* expr, FeedbackVectorSlot slot); |
- |
+ void VisitExpressionStatementExpression(Expression* expr); |
rmcilroy
2015/11/03 14:17:52
Unused?
oth
2015/11/04 10:03:37
Done.
|
// Visitors for obtaining expression result in the accumulator, in a |
// register, or just getting the effect. |
@@ -88,10 +92,6 @@ class BytecodeGenerator : public AstVisitor { |
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); |
@@ -119,6 +119,14 @@ class BytecodeGenerator : public AstVisitor { |
} |
ExpressionResultScope* execution_result() const { return execution_result_; } |
+ inline void set_statement_execution_result( |
+ StatementResultScope* statement_execution_result) { |
+ statement_execution_result_ = statement_execution_result; |
+ } |
+ inline StatementResultScope* statement_execution_result() const { |
+ return statement_execution_result_; |
+ } |
+ |
ZoneVector<Handle<Object>>* globals() { return &globals_; } |
inline LanguageMode language_mode() const; |
Strength language_mode_strength() const; |
@@ -133,9 +141,7 @@ class BytecodeGenerator : public AstVisitor { |
ControlScope* execution_control_; |
ContextScope* execution_context_; |
ExpressionResultScope* execution_result_; |
- |
- int binary_expression_depth_; |
- ZoneSet<int> binary_expression_hazard_set_; |
+ StatementResultScope* statement_execution_result_; |
}; |
} // namespace interpreter |