Chromium Code Reviews| 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 |