Index: src/compiler/js-operator.cc |
diff --git a/src/compiler/js-operator.cc b/src/compiler/js-operator.cc |
index 01e66a4c74d4d9a9d52dd195be89a6484adecfff..60fab9d17547874f3dae38e0be1ba6060c0ec6c3 100644 |
--- a/src/compiler/js-operator.cc |
+++ b/src/compiler/js-operator.cc |
@@ -118,6 +118,17 @@ const CallFunctionParameters& CallFunctionParametersOf(const Operator* op) { |
return OpParameter<CallFunctionParameters>(op); |
} |
+std::ostream& operator<<(std::ostream& os, |
+ CallForwardVarargsParameters const& p) { |
+ return os << p.start_index() << ", " << p.tail_call_mode(); |
+} |
+ |
+CallForwardVarargsParameters const& CallForwardVarargsParametersOf( |
+ Operator const* op) { |
+ DCHECK_EQ(IrOpcode::kJSCallForwardVarargs, op->opcode()); |
+ return OpParameter<CallForwardVarargsParameters>(op); |
+} |
+ |
bool operator==(CallFunctionWithSpreadParameters const& lhs, |
CallFunctionWithSpreadParameters const& rhs) { |
return lhs.arity() == rhs.arity(); |
@@ -724,6 +735,16 @@ const Operator* JSOperatorBuilder::ToBoolean(ToBooleanHints hints) { |
hints); // parameter |
} |
+const Operator* JSOperatorBuilder::CallForwardVarargs( |
+ uint32_t start_index, TailCallMode tail_call_mode) { |
+ CallForwardVarargsParameters parameters(start_index, tail_call_mode); |
+ return new (zone()) Operator1<CallForwardVarargsParameters>( // -- |
+ IrOpcode::kJSCallForwardVarargs, Operator::kNoProperties, // opcode |
+ "JSCallForwardVarargs", // name |
+ 2, 1, 1, 1, 1, 2, // counts |
+ parameters); // parameter |
+} |
+ |
const Operator* JSOperatorBuilder::CallFunction( |
size_t arity, float frequency, VectorSlotPair const& feedback, |
ConvertReceiverMode convert_mode, TailCallMode tail_call_mode) { |