Index: src/ast/scopes.h |
diff --git a/src/ast/scopes.h b/src/ast/scopes.h |
index ec946142e8d3c17637ff615efcc7fbee959cb8f8..45e8346d5c6a983ec1f504d61fc33d08fe315a5b 100644 |
--- a/src/ast/scopes.h |
+++ b/src/ast/scopes.h |
@@ -418,6 +418,13 @@ class Scope: public ZoneObject { |
bool is_debug_evaluate_scope() const { return is_debug_evaluate_scope_; } |
bool is_lazily_parsed() const { return is_lazily_parsed_; } |
+ bool should_compile_lazily() const { |
+ return is_lazily_parsed_ || should_compile_lazily_; |
+ } |
+ |
+ // Marks this scope and all inner scopes (except for inner function scopes) |
+ // as lazy. |
marja
2016/10/06 11:53:06
Why "except for inner function scopes"?
If we com
jochen (gone - plz use gerrit)
2016/10/06 15:05:04
yeah, but not the other way round... if we compile
|
+ void SetShouldCompileLazily(bool is_lazy); |
protected: |
explicit Scope(Zone* zone); |
@@ -447,7 +454,7 @@ class Scope: public ZoneObject { |
DCHECK(!already_resolved_); |
// A lazily parsed scope doesn't contain enough information to create a |
// ScopeInfo from it. |
- if (is_lazily_parsed_) return false; |
+ if (should_compile_lazily()) return false; |
// The debugger expects all functions to have scope infos. |
// TODO(jochen|yangguo): Remove this requirement. |
if (is_function_scope()) return true; |
@@ -523,6 +530,7 @@ class Scope: public ZoneObject { |
bool is_declaration_scope_ : 1; |
bool is_lazily_parsed_ : 1; |
+ bool should_compile_lazily_ : 1; |
// Create a non-local variable with a given name. |
// These variables are looked up dynamically at runtime. |