| Index: src/parsing/parser.cc
 | 
| diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc
 | 
| index fd403040c6e05d5201144e183479da8f78a789c5..b5637aa5b2dbb8b3e06cc04b86d3504ca8fd8fbd 100644
 | 
| --- a/src/parsing/parser.cc
 | 
| +++ b/src/parsing/parser.cc
 | 
| @@ -5453,5 +5453,28 @@ void ParserTraits::SetFunctionNameFromPropertyName(
 | 
|  }
 | 
|  
 | 
|  
 | 
| +void ParserTraits::SetFunctionNameFromIdentifierRef(Expression* value,
 | 
| +                                                    Expression* identifier) {
 | 
| +  if (!value->IsFunctionLiteral() && !value->IsClassLiteral()) return;
 | 
| +  if (!identifier->IsVariableProxy()) return;
 | 
| +
 | 
| +  auto name = identifier->AsVariableProxy()->raw_name();
 | 
| +  DCHECK_NOT_NULL(name);
 | 
| +
 | 
| +  if (value->IsFunctionLiteral()) {
 | 
| +    auto function = value->AsFunctionLiteral();
 | 
| +    if (function->is_anonymous()) {
 | 
| +      function->set_raw_name(name);
 | 
| +    }
 | 
| +  } else {
 | 
| +    DCHECK(value->IsClassLiteral());
 | 
| +    auto class_literal = value->AsClassLiteral();
 | 
| +    if (class_literal->raw_name() == nullptr) {
 | 
| +      class_literal->set_raw_name(name);
 | 
| +    }
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +
 | 
|  }  // namespace internal
 | 
|  }  // namespace v8
 | 
| 
 |