| Index: src/compiler/js-inlining.cc | 
| diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc | 
| index 86463179486bcf326bed9a26842b2d48e95dc3d6..fcac171b0d2bee258d2d369f15864c2d6887d323 100644 | 
| --- a/src/compiler/js-inlining.cc | 
| +++ b/src/compiler/js-inlining.cc | 
| @@ -127,19 +127,17 @@ void Inlinee::UnifyReturn(JSGraph* jsgraph) { | 
| NodeVector effects(jsgraph->zone()); | 
| // Iterate over all control flow predecessors, | 
| // which must be return statements. | 
| -  InputIter iter = final_merge->inputs().begin(); | 
| -  while (iter != final_merge->inputs().end()) { | 
| -    Node* input = *iter; | 
| +  for (auto edge : final_merge->input_edges()) { | 
| +    Node* input = edge.to(); | 
| switch (input->opcode()) { | 
| case IrOpcode::kReturn: | 
| values.push_back(NodeProperties::GetValueInput(input, 0)); | 
| effects.push_back(NodeProperties::GetEffectInput(input)); | 
| -        iter.UpdateToAndIncrement(NodeProperties::GetControlInput(input)); | 
| +        edge.UpdateTo(NodeProperties::GetControlInput(input)); | 
| input->RemoveAllInputs(); | 
| break; | 
| default: | 
| UNREACHABLE(); | 
| -        ++iter; | 
| break; | 
| } | 
| } | 
| @@ -168,9 +166,8 @@ class CopyVisitor : public NullNodeVisitor { | 
|  | 
| void Post(Node* original) { | 
| NodeVector inputs(temp_zone_); | 
| -    for (InputIter it = original->inputs().begin(); | 
| -         it != original->inputs().end(); ++it) { | 
| -      inputs.push_back(GetCopy(*it)); | 
| +    for (auto const node : original->inputs()) { | 
| +      inputs.push_back(GetCopy(node)); | 
| } | 
|  | 
| // Reuse the operator in the copy. This assumes that op lives in a zone | 
| @@ -243,35 +240,33 @@ void Inlinee::InlineAtCall(JSGraph* jsgraph, Node* call) { | 
| // context, effect, control. | 
| int inliner_inputs = call->op()->ValueInputCount(); | 
| // Iterate over all uses of the start node. | 
| -  UseIter iter = start_->uses().begin(); | 
| -  while (iter != start_->uses().end()) { | 
| -    Node* use = *iter; | 
| +  for (auto edge : start_->use_edges()) { | 
| +    Node* use = edge.from(); | 
| switch (use->opcode()) { | 
| case IrOpcode::kParameter: { | 
| int index = 1 + OpParameter<int>(use->op()); | 
| if (index < inliner_inputs && index < inlinee_context_index) { | 
| // There is an input from the call, and the index is a value | 
| // projection but not the context, so rewire the input. | 
| -          NodeProperties::ReplaceWithValue(*iter, call->InputAt(index)); | 
| +          NodeProperties::ReplaceWithValue(use, call->InputAt(index)); | 
| } else if (index == inlinee_context_index) { | 
| // This is the context projection, rewire it to the context from the | 
| // JSFunction object. | 
| -          NodeProperties::ReplaceWithValue(*iter, context); | 
| +          NodeProperties::ReplaceWithValue(use, context); | 
| } else if (index < inlinee_context_index) { | 
| // Call has fewer arguments than required, fill with undefined. | 
| -          NodeProperties::ReplaceWithValue(*iter, jsgraph->UndefinedConstant()); | 
| +          NodeProperties::ReplaceWithValue(use, jsgraph->UndefinedConstant()); | 
| } else { | 
| // We got too many arguments, discard for now. | 
| // TODO(sigurds): Fix to treat arguments array correctly. | 
| } | 
| -        ++iter; | 
| break; | 
| } | 
| default: | 
| -        if (NodeProperties::IsEffectEdge(iter.edge())) { | 
| -          iter.UpdateToAndIncrement(context); | 
| -        } else if (NodeProperties::IsControlEdge(iter.edge())) { | 
| -          iter.UpdateToAndIncrement(control); | 
| +        if (NodeProperties::IsEffectEdge(edge)) { | 
| +          edge.UpdateTo(context); | 
| +        } else if (NodeProperties::IsControlEdge(edge)) { | 
| +          edge.UpdateTo(control); | 
| } else { | 
| UNREACHABLE(); | 
| } | 
| @@ -456,9 +451,8 @@ class JSCallRuntimeAccessor { | 
|  | 
| NodeVector inputs(Zone* zone) const { | 
| NodeVector inputs(zone); | 
| -    for (InputIter it = call_->inputs().begin(); it != call_->inputs().end(); | 
| -         ++it) { | 
| -      inputs.push_back(*it); | 
| +    for (auto const node : call_->inputs()) { | 
| +      inputs.push_back(node); | 
| } | 
| return inputs; | 
| } | 
|  |