| Index: src/parsing/parser-base.h
|
| diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h
|
| index cdfbe7e0f32e7af404f78abfb1bc6c726ea5596c..68d78c66b4c5ea9b64a339cfd3eac9f4f8198507 100644
|
| --- a/src/parsing/parser-base.h
|
| +++ b/src/parsing/parser-base.h
|
| @@ -838,8 +838,12 @@ class ParserBase : public Traits {
|
| void CheckPossibleEvalCall(ExpressionT expression, Scope* scope) {
|
| if (Traits::IsIdentifier(expression) &&
|
| Traits::IsEval(Traits::AsIdentifier(expression))) {
|
| - scope->DeclarationScope()->RecordEvalCall();
|
| scope->RecordEvalCall();
|
| + if (is_sloppy(scope->language_mode())) {
|
| + // For sloppy scopes we also have to record the call at function level,
|
| + // in case it includes declarations that will be hoisted.
|
| + scope->DeclarationScope()->RecordEvalCall();
|
| + }
|
| }
|
| }
|
|
|
|
|