| Index: src/compiler/instruction-selector.cc
|
| diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc
|
| index 0efdd065551fefc346ebaf3240852de82fbf97cb..55afeb5c10d63609d84cb812718659a1e515e3d7 100644
|
| --- a/src/compiler/instruction-selector.cc
|
| +++ b/src/compiler/instruction-selector.cc
|
| @@ -281,7 +281,8 @@ void InstructionSelector::InitializeCallBuffer(Node* call, CallBuffer* buffer,
|
| static_cast<int>(buffer->descriptor->ReturnCount()));
|
| DCHECK_EQ(
|
| call->op()->ValueInputCount(),
|
| - static_cast<int>(buffer->input_count() + buffer->frame_state_count()));
|
| + static_cast<int>(buffer->input_count() + buffer->frame_state_count() +
|
| + buffer->non_argument_input_count()));
|
|
|
| if (buffer->descriptor->ReturnCount() > 0) {
|
| // Collect the projections that represent multiple outputs from this call.
|
| @@ -423,7 +424,8 @@ void InstructionSelector::VisitBlock(BasicBlock* block) {
|
| SourcePosition source_position = source_positions_->GetSourcePosition(node);
|
| if (source_position.IsKnown() &&
|
| (source_position_mode_ == kAllSourcePositions ||
|
| - node->opcode() == IrOpcode::kCall)) {
|
| + node->opcode() == IrOpcode::kCall ||
|
| + node->opcode() == IrOpcode::kCallVarArgs)) {
|
| sequence()->SetSourcePosition(instructions_[current_node_end],
|
| source_position);
|
| }
|
| @@ -583,6 +585,8 @@ void InstructionSelector::VisitNode(Node* node) {
|
| }
|
| case IrOpcode::kCall:
|
| return VisitCall(node);
|
| + case IrOpcode::kCallVarArgs:
|
| + return VisitCallVarArgs(node);
|
| case IrOpcode::kFrameState:
|
| case IrOpcode::kStateValues:
|
| return;
|
|
|