| Index: src/compiler/verifier.cc | 
| diff --git a/src/compiler/verifier.cc b/src/compiler/verifier.cc | 
| index ff3b2efa45d746309573c755b20918618ba87d4f..cff4b682c5966a8c8120f8c13b5fc906493e8af0 100644 | 
| --- a/src/compiler/verifier.cc | 
| +++ b/src/compiler/verifier.cc | 
| @@ -135,6 +135,11 @@ void Verifier::Visitor::Check(Node* node) { | 
| CheckOutput(value, node, value->op()->ValueOutputCount(), "value"); | 
| CHECK(IsDefUseChainLinkPresent(value, node)); | 
| CHECK(IsUseDefChainLinkPresent(value, node)); | 
| +    // Verify that only parameters and projections can have input nodes with | 
| +    // multiple outputs. | 
| +    CHECK(node->opcode() == IrOpcode::kParameter || | 
| +          node->opcode() == IrOpcode::kProjection || | 
| +          value->op()->ValueOutputCount() <= 1); | 
| } | 
|  | 
| // Verify all context inputs are value nodes. | 
| @@ -161,16 +166,6 @@ void Verifier::Visitor::Check(Node* node) { | 
| CHECK(IsUseDefChainLinkPresent(control, node)); | 
| } | 
|  | 
| -  // Verify all successors are projections if multiple value outputs exist. | 
| -  if (node->op()->ValueOutputCount() > 1) { | 
| -    for (Edge edge : node->use_edges()) { | 
| -      Node* use = edge.from(); | 
| -      CHECK(!NodeProperties::IsValueEdge(edge) || | 
| -            use->opcode() == IrOpcode::kProjection || | 
| -            use->opcode() == IrOpcode::kParameter); | 
| -    } | 
| -  } | 
| - | 
| switch (node->opcode()) { | 
| case IrOpcode::kStart: | 
| // Start has no inputs. | 
|  |