Index: src/compiler/bytecode-graph-builder.cc |
diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc |
index 5b2c8805aa94dcba702b7fccdea7e0f5a996c032..5a596e2f45c612a47bc3b14b367a2dad94f6968c 100644 |
--- a/src/compiler/bytecode-graph-builder.cc |
+++ b/src/compiler/bytecode-graph-builder.cc |
@@ -1273,6 +1273,16 @@ void BytecodeGraphBuilder::VisitCall() { |
BuildCall(TailCallMode::kDisallow, ConvertReceiverMode::kAny); |
} |
+void BytecodeGraphBuilder::VisitCallWithSpread() { |
+ PrepareEagerCheckpoint(); |
+ interpreter::Register first_arg = bytecode_iterator().GetRegisterOperand(0); |
+ size_t arg_count = bytecode_iterator().GetRegisterCountOperand(1); |
+ const Operator* op = |
+ javascript()->CallFunctionWithSpread(static_cast<int>(arg_count)); |
+ Node* value = ProcessCallRuntimeArguments(op, first_arg, arg_count); |
+ environment()->BindAccumulator(value, Environment::kAttachFrameState); |
+} |
+ |
void BytecodeGraphBuilder::VisitCallProperty() { |
BuildCall(TailCallMode::kDisallow, ConvertReceiverMode::kNotNullOrUndefined); |
} |
@@ -1353,16 +1363,6 @@ Node* BytecodeGraphBuilder::ProcessCallNewWithSpreadArguments( |
return value; |
} |
-void BytecodeGraphBuilder::VisitCallWithSpread() { |
- PrepareEagerCheckpoint(); |
- interpreter::Register first_arg = bytecode_iterator().GetRegisterOperand(0); |
- size_t arg_count = bytecode_iterator().GetRegisterCountOperand(1); |
- const Operator* call = |
- javascript()->CallRuntime(Runtime::kCallWithSpread, arg_count); |
- Node* value = ProcessCallRuntimeArguments(call, first_arg, arg_count); |
- environment()->BindAccumulator(value, Environment::kAttachFrameState); |
-} |
- |
void BytecodeGraphBuilder::VisitNewWithSpread() { |
PrepareEagerCheckpoint(); |
interpreter::Register callee_reg = bytecode_iterator().GetRegisterOperand(0); |