Index: src/compiler/bytecode-graph-builder.cc |
diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc |
index 44b0d39d7f9740461630f7251fce1621ea8de3eb..8119b873e56235d7d0d1a46932f4bca82af57782 100644 |
--- a/src/compiler/bytecode-graph-builder.cc |
+++ b/src/compiler/bytecode-graph-builder.cc |
@@ -1017,19 +1017,25 @@ void BytecodeGraphBuilder::VisitCreateClosure() { |
void BytecodeGraphBuilder::VisitCreateClosureWide() { VisitCreateClosure(); } |
void BytecodeGraphBuilder::BuildCreateArguments( |
- CreateArgumentsParameters::Type type) { |
+ CreateArgumentsParameters::Type type, int rest_index) { |
FrameStateBeforeAndAfter states(this); |
- const Operator* op = javascript()->CreateArguments(type, 0); |
+ const Operator* op = javascript()->CreateArguments(type, rest_index); |
Node* object = NewNode(op, GetFunctionClosure()); |
environment()->BindAccumulator(object, &states); |
} |
void BytecodeGraphBuilder::VisitCreateMappedArguments() { |
- BuildCreateArguments(CreateArgumentsParameters::kMappedArguments); |
+ BuildCreateArguments(CreateArgumentsParameters::kMappedArguments, 0); |
} |
void BytecodeGraphBuilder::VisitCreateUnmappedArguments() { |
- BuildCreateArguments(CreateArgumentsParameters::kUnmappedArguments); |
+ BuildCreateArguments(CreateArgumentsParameters::kUnmappedArguments, 0); |
+} |
+ |
+void BytecodeGraphBuilder::VisitCreateRestArguments() { |
+ int index = |
+ Smi::cast(*bytecode_iterator().GetConstantForIndexOperand(0))->value(); |
+ BuildCreateArguments(CreateArgumentsParameters::kRestArray, index); |
} |
void BytecodeGraphBuilder::BuildCreateLiteral(const Operator* op) { |