Index: src/interpreter/interpreter.cc |
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc |
index 1d467e300fe3894a9590bac62d03a7ddca173d33..774aeea8abc47cde70a8c1dadc2e06f6ce9e7e6f 100644 |
--- a/src/interpreter/interpreter.cc |
+++ b/src/interpreter/interpreter.cc |
@@ -1770,6 +1770,19 @@ void Interpreter::DoCreateUnmappedArguments( |
__ Dispatch(); |
} |
+// CreateRestArguments |
+// |
+// Creates a new rest arguments object starting at |rest_index|. |
+void Interpreter::DoCreateRestArguments( |
+ compiler::InterpreterAssembler* assembler) { |
+ Node* closure = __ LoadRegister(Register::function_closure()); |
+ Node* constant_pool_index = __ BytecodeOperandIdx(0); |
+ Node* rest_index = __ LoadConstantPoolEntry(constant_pool_index); |
+ Node* result = |
+ __ CallRuntime(Runtime::kNewRestArguments_Generic, closure, rest_index); |
+ __ SetAccumulator(result); |
+ __ Dispatch(); |
+} |
// Throw |
// |