Index: src/interpreter/bytecode-generator.h |
diff --git a/src/interpreter/bytecode-generator.h b/src/interpreter/bytecode-generator.h |
index 41c529218fd5831c4222ba4b21db6ced580f86bf..fa86489f2dcb925d893734e54cdda61bb37f6ebb 100644 |
--- a/src/interpreter/bytecode-generator.h |
+++ b/src/interpreter/bytecode-generator.h |
@@ -72,10 +72,9 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { |
// Used by flow control routines to evaluate loop condition. |
void VisitCondition(Expression* expr); |
- // Visit the arguments expressions in |args| and store them in |args_regs| |
- // starting at register |first_argument_register| in the list. |
- void VisitArguments(ZoneList<Expression*>* args, RegisterList arg_regs, |
- size_t first_argument_register = 0); |
+ // Visit the arguments expressions in |args| and store them in |args_regs|, |
+ // growing |args_regs| for each argument visited. |
+ void VisitArguments(ZoneList<Expression*>* args, RegisterList* arg_regs); |
// Visit a keyed super property load. The optional |
// |opt_receiver_out| register will have the receiver stored to it |
@@ -92,7 +91,8 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { |
Register opt_receiver_out); |
void VisitPropertyLoad(Register obj, Property* expr); |
- void VisitPropertyLoadForAccumulator(Register obj, Property* expr); |
+ void VisitPropertyLoadForRegister(Register obj, Property* expr, |
+ Register destination); |
void BuildVariableLoad(Variable* variable, FeedbackVectorSlot slot, |
HoleCheckMode hole_check_mode, |
@@ -153,12 +153,15 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { |
// Visit a statement and switch scopes, the context is in the accumulator. |
void VisitInScope(Statement* stmt, Scope* scope); |
+ void BuildPushUndefinedIntoRegisterList(RegisterList* reg_list); |
+ |
// Visitors for obtaining expression result in the accumulator, in a |
// register, or just getting the effect. |
void VisitForAccumulatorValue(Expression* expr); |
void VisitForAccumulatorValueOrTheHole(Expression* expr); |
MUST_USE_RESULT Register VisitForRegisterValue(Expression* expr); |
void VisitForRegisterValue(Expression* expr, Register destination); |
+ void VisitAndPushIntoRegisterList(Expression* expr, RegisterList* reg_list); |
void VisitForEffect(Expression* expr); |
void VisitForTest(Expression* expr, BytecodeLabels* then_labels, |
BytecodeLabels* else_labels, TestFallthrough fallthrough); |