| Index: src/compiler/js-inlining.cc | 
| diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc | 
| index 66d71a6e298daf623d612a0f511f6881bb90baec..90c6eecb2e94688016ddeca3e213a4ff50b5b18d 100644 | 
| --- a/src/compiler/js-inlining.cc | 
| +++ b/src/compiler/js-inlining.cc | 
| @@ -351,10 +351,15 @@ Reduction JSInliner::Reduce(Node* node) { | 
| outer_frame_state = CreateArgumentsAdaptorFrameState(&call, info.zone()); | 
| } | 
|  | 
| -  for (Node* node : visitor.copies()) { | 
| -    if (node && node->opcode() == IrOpcode::kFrameState) { | 
| +  // Fix up all outer frame states from the inlinee. | 
| +  for (Node* const node : visitor.copies()) { | 
| +    if (node->opcode() == IrOpcode::kFrameState) { | 
| DCHECK_EQ(1, OperatorProperties::GetFrameStateInputCount(node->op())); | 
| -      NodeProperties::ReplaceFrameStateInput(node, 0, outer_frame_state); | 
| +      // Don't touch this frame state, if it already has an "outer frame state". | 
| +      if (NodeProperties::GetFrameStateInput(node, 0)->opcode() != | 
| +          IrOpcode::kFrameState) { | 
| +        NodeProperties::ReplaceFrameStateInput(node, 0, outer_frame_state); | 
| +      } | 
| } | 
| } | 
|  | 
|  |