| Index: src/compiler/ast-graph-builder.cc
 | 
| diff --git a/src/compiler/ast-graph-builder.cc b/src/compiler/ast-graph-builder.cc
 | 
| index 28378a59a5d2fa6372e2bc73e49dd8953dfd8f13..d37ca7eab2183fa1d97298f3ca764e680af9d2b1 100644
 | 
| --- a/src/compiler/ast-graph-builder.cc
 | 
| +++ b/src/compiler/ast-graph-builder.cc
 | 
| @@ -899,7 +899,8 @@ void AstGraphBuilder::VisitClassLiteralContents(ClassLiteral* expr) {
 | 
|      environment()->Push(property->is_static() ? literal : proto);
 | 
|  
 | 
|      VisitForValue(property->key());
 | 
| -    environment()->Push(BuildToName(environment()->Pop()));
 | 
| +    environment()->Push(
 | 
| +        BuildToName(environment()->Pop(), expr->GetIdForProperty(i)));
 | 
|      VisitForValue(property->value());
 | 
|      Node* value = environment()->Pop();
 | 
|      Node* key = environment()->Pop();
 | 
| @@ -1131,7 +1132,8 @@ void AstGraphBuilder::VisitObjectLiteral(ObjectLiteral* expr) {
 | 
|  
 | 
|      environment()->Push(literal);  // Duplicate receiver.
 | 
|      VisitForValue(property->key());
 | 
| -    environment()->Push(BuildToName(environment()->Pop()));
 | 
| +    environment()->Push(BuildToName(environment()->Pop(),
 | 
| +                                    expr->GetIdForProperty(property_index)));
 | 
|      // TODO(mstarzinger): For ObjectLiteral::Property::PROTOTYPE the key should
 | 
|      // not be on the operand stack while the value is being evaluated. Come up
 | 
|      // with a repro for this and fix it. Also find a nice way to do so. :)
 | 
| @@ -2324,11 +2326,13 @@ Node* AstGraphBuilder::BuildToBoolean(Node* input) {
 | 
|  }
 | 
|  
 | 
|  
 | 
| -Node* AstGraphBuilder::BuildToName(Node* input) {
 | 
| +Node* AstGraphBuilder::BuildToName(Node* input, BailoutId bailout_id) {
 | 
|    // TODO(turbofan): Possible optimization is to NOP on name constants. But the
 | 
|    // same caveat as with BuildToBoolean applies, and it should be factored out
 | 
|    // into a JSOperatorReducer.
 | 
| -  return NewNode(javascript()->ToName(), input);
 | 
| +  Node* name = NewNode(javascript()->ToName(), input);
 | 
| +  PrepareFrameState(name, bailout_id);
 | 
| +  return name;
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |