| Index: src/compiler/js-operator.cc
|
| diff --git a/src/compiler/js-operator.cc b/src/compiler/js-operator.cc
|
| index 1b894d7cc1e384b5d6ff960c22dafd54ff9620bb..b8156a23f4305e14ab3f31e32bf0ca3b593a26ab 100644
|
| --- a/src/compiler/js-operator.cc
|
| +++ b/src/compiler/js-operator.cc
|
| @@ -57,6 +57,17 @@ ToBooleanHints ToBooleanHintsOf(Operator const* op) {
|
| return OpParameter<ToBooleanHints>(op);
|
| }
|
|
|
| +std::ostream& operator<<(std::ostream& os,
|
| + ConstructForwardVarargsParameters const& p) {
|
| + return os << p.arity() << ", " << p.start_index();
|
| +}
|
| +
|
| +ConstructForwardVarargsParameters const& ConstructForwardVarargsParametersOf(
|
| + Operator const* op) {
|
| + DCHECK_EQ(IrOpcode::kJSConstructForwardVarargs, op->opcode());
|
| + return OpParameter<ConstructForwardVarargsParameters>(op);
|
| +}
|
| +
|
| bool operator==(ConstructParameters const& lhs,
|
| ConstructParameters const& rhs) {
|
| return lhs.arity() == rhs.arity() && lhs.frequency() == rhs.frequency() &&
|
| @@ -118,7 +129,8 @@ const CallParameters& CallParametersOf(const Operator* op) {
|
|
|
| std::ostream& operator<<(std::ostream& os,
|
| CallForwardVarargsParameters const& p) {
|
| - return os << p.start_index() << ", " << p.tail_call_mode();
|
| + return os << p.arity() << ", " << p.start_index() << ", "
|
| + << p.tail_call_mode();
|
| }
|
|
|
| CallForwardVarargsParameters const& CallForwardVarargsParametersOf(
|
| @@ -743,12 +755,12 @@ const Operator* JSOperatorBuilder::ToBoolean(ToBooleanHints hints) {
|
| }
|
|
|
| const Operator* JSOperatorBuilder::CallForwardVarargs(
|
| - uint32_t start_index, TailCallMode tail_call_mode) {
|
| - CallForwardVarargsParameters parameters(start_index, tail_call_mode);
|
| + size_t arity, uint32_t start_index, TailCallMode tail_call_mode) {
|
| + CallForwardVarargsParameters parameters(arity, 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.arity(), 1, 1, 1, 1, 2, // counts
|
| parameters); // parameter
|
| }
|
|
|
| @@ -798,6 +810,16 @@ const Operator* JSOperatorBuilder::CallRuntime(const Runtime::Function* f,
|
| parameters); // parameter
|
| }
|
|
|
| +const Operator* JSOperatorBuilder::ConstructForwardVarargs(
|
| + size_t arity, uint32_t start_index) {
|
| + ConstructForwardVarargsParameters parameters(arity, start_index);
|
| + return new (zone()) Operator1<ConstructForwardVarargsParameters>( // --
|
| + IrOpcode::kJSConstructForwardVarargs, Operator::kNoProperties, // opcode
|
| + "JSConstructForwardVarargs", // name
|
| + parameters.arity(), 1, 1, 1, 1, 2, // counts
|
| + parameters); // parameter
|
| +}
|
| +
|
| const Operator* JSOperatorBuilder::Construct(uint32_t arity,
|
| CallFrequency frequency,
|
| VectorSlotPair const& feedback) {
|
|
|