Index: src/ast/scopes.h |
diff --git a/src/ast/scopes.h b/src/ast/scopes.h |
index fa289733066386d5635780a9359cdbd13a714302..15a5f79b7aed6ecd41df076d9c18ec78ffa8a0b1 100644 |
--- a/src/ast/scopes.h |
+++ b/src/ast/scopes.h |
@@ -34,6 +34,10 @@ class VariableMap: public ZoneHashMap { |
MaybeAssignedFlag maybe_assigned_flag = kNotAssigned, |
bool* added = nullptr); |
+ // Records that "name" exists but doesn't create a Variable. Useful for |
+ // preparsing. |
+ void DeclareName(Zone* zone, const AstRawString* name); |
+ |
Variable* Lookup(const AstRawString* name); |
void Remove(Variable* var); |
void Add(Zone* zone, Variable* var); |
@@ -157,6 +161,8 @@ class V8_EXPORT_PRIVATE Scope : public NON_EXPORTED_BASE(ZoneObject) { |
bool* sloppy_mode_block_scope_function_redefinition, |
bool* ok); |
+ void DeclareVariableName(const AstRawString* name, VariableMode mode); |
+ |
// Declarations list. |
ThreadedList<Declaration>* declarations() { return &decls_; } |
@@ -526,7 +532,6 @@ class V8_EXPORT_PRIVATE Scope : public NON_EXPORTED_BASE(ZoneObject) { |
// list along the way, so full resolution cannot be done afterwards. |
// If a ParseInfo* is passed, non-free variables will be resolved. |
VariableProxy* FetchFreeVariables(DeclarationScope* max_outer_scope, |
- bool try_to_resolve = true, |
ParseInfo* info = nullptr, |
VariableProxy* stack = nullptr); |
@@ -578,6 +583,7 @@ class V8_EXPORT_PRIVATE Scope : public NON_EXPORTED_BASE(ZoneObject) { |
void SetDefaults(); |
friend class DeclarationScope; |
+ friend class ScopeTestHelper; |
}; |
class DeclarationScope : public Scope { |
@@ -649,6 +655,9 @@ class DeclarationScope : public Scope { |
Variable* DeclareParameter(const AstRawString* name, VariableMode mode, |
bool is_optional, bool is_rest, bool* is_duplicate, |
AstValueFactory* ast_value_factory); |
+ void DeclareParameterName(const AstRawString* name, bool is_optional, |
+ bool is_rest, bool* is_duplicate, |
+ AstValueFactory* ast_value_factory); |
// Declare an implicit global variable in this scope which must be a |
// script scope. The variable was introduced (possibly from an inner |