Index: src/ast/scopes.cc |
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc |
index 175eb99b39de3c4e1686b29c4eb09d4a29077fe2..ad1c137753e475963467df4a934f414f9d649161 100644 |
--- a/src/ast/scopes.cc |
+++ b/src/ast/scopes.cc |
@@ -1083,8 +1083,14 @@ void Scope::DeclareVariableName(const AstRawString* name, VariableMode mode) { |
// Declare the variable in the declaration scope. |
if (FLAG_preparser_scope_analysis) { |
Variable* var = LookupLocal(name); |
+ DCHECK_NE(var, kDummyPreParserLexicalVariable); |
+ DCHECK_NE(var, kDummyPreParserVariable); |
if (var == nullptr) { |
var = DeclareLocal(name, mode); |
+ } else if (!IsLexicalVariableMode(var->mode()) && |
+ !IsLexicalVariableMode(mode)) { |
+ DCHECK_EQ(mode, VAR); |
+ var->set_maybe_assigned(); |
} |
var->set_is_used(); |
} else { |