| Index: src/compiler/graph-builder.cc | 
| diff --git a/src/compiler/graph-builder.cc b/src/compiler/graph-builder.cc | 
| index 9c414f1bf9b1df5086e683bfdf15536ca85562f7..36d62d4c86b157c925c2aad7edcb0ef81f373580 100644 | 
| --- a/src/compiler/graph-builder.cc | 
| +++ b/src/compiler/graph-builder.cc | 
| @@ -30,7 +30,10 @@ StructuredGraphBuilder::StructuredGraphBuilder(Graph* graph, | 
|  | 
| Node* StructuredGraphBuilder::MakeNode(Operator* op, int value_input_count, | 
| Node** value_inputs) { | 
| +  DCHECK(op->InputCount() == value_input_count); | 
| + | 
| bool has_context = OperatorProperties::HasContextInput(op); | 
| +  bool has_framestate = OperatorProperties::HasFrameStateInput(op); | 
| bool has_control = OperatorProperties::GetControlInputCount(op) == 1; | 
| bool has_effect = OperatorProperties::GetEffectInputCount(op) == 1; | 
|  | 
| @@ -43,6 +46,7 @@ Node* StructuredGraphBuilder::MakeNode(Operator* op, int value_input_count, | 
| } else { | 
| int input_count_with_deps = value_input_count; | 
| if (has_context) ++input_count_with_deps; | 
| +    if (has_framestate) ++input_count_with_deps; | 
| if (has_control) ++input_count_with_deps; | 
| if (has_effect) ++input_count_with_deps; | 
| void* raw_buffer = alloca(kPointerSize * input_count_with_deps); | 
| @@ -52,6 +56,12 @@ Node* StructuredGraphBuilder::MakeNode(Operator* op, int value_input_count, | 
| if (has_context) { | 
| *current_input++ = current_context(); | 
| } | 
| +    if (has_framestate) { | 
| +      // The frame state will be inserted later. Here we misuse | 
| +      // the dead_control node as a sentinel to be later overwritten | 
| +      // with the real frame state. | 
| +      *current_input++ = dead_control(); | 
| +    } | 
| if (has_effect) { | 
| *current_input++ = environment_->GetEffectDependency(); | 
| } | 
|  |