Index: src/ast/scopes.cc |
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc |
index 417345a5ef8b6ae33969c54126d16c98d5d4188d..63f9b5ddc3acc9b996f52f04800ef055aa54b78b 100644 |
--- a/src/ast/scopes.cc |
+++ b/src/ast/scopes.cc |
@@ -91,7 +91,6 @@ Scope::Scope(Zone* zone, Scope* outer_scope, ScopeType scope_type) |
force_context_allocation_ = |
!is_function_scope() && outer_scope->has_forced_context_allocation(); |
outer_scope_->AddInnerScope(this); |
- scope_inside_with_ = outer_scope_->scope_inside_with_ || is_with_scope(); |
} |
} |
@@ -208,7 +207,6 @@ void Scope::SetDefaults() { |
set_language_mode(SLOPPY); |
- scope_inside_with_ = false; |
scope_calls_eval_ = false; |
scope_uses_super_property_ = false; |
has_arguments_parameter_ = false; |
@@ -256,10 +254,6 @@ Scope* Scope::DeserializeScopeChain(Isolate* isolate, Zone* zone, |
with_scope->set_is_debug_evaluate_scope(); |
} |
current_scope = with_scope; |
- // All the inner scopes are inside a with. |
- for (Scope* s = innermost_scope; s != nullptr; s = s->outer_scope()) { |
- s->scope_inside_with_ = true; |
- } |
} else if (context->IsScriptContext()) { |
Handle<ScopeInfo> scope_info(context->scope_info(), isolate); |
current_scope = new (zone) |
@@ -886,7 +880,7 @@ bool Scope::HasTrivialContext() const { |
// return true. |
for (const Scope* scope = this; scope != NULL; scope = scope->outer_scope_) { |
if (scope->is_eval_scope()) return false; |
- if (scope->scope_inside_with_) return false; |
+ if (scope->InsideWithScope()) return false; |
if (scope->ContextLocalCount() > 0) return false; |
if (scope->ContextGlobalCount() > 0) return false; |
} |
@@ -895,12 +889,11 @@ bool Scope::HasTrivialContext() const { |
bool Scope::HasTrivialOuterContext() const { |
- Scope* outer = outer_scope_; |
- if (outer == NULL) return true; |
+ if (outer_scope_ == nullptr) return true; |
// Note that the outer context may be trivial in general, but the current |
// scope may be inside a 'with' statement in which case the outer context |
// for this scope is not trivial. |
- return !scope_inside_with_ && outer->HasTrivialContext(); |
+ return !is_with_scope() && outer_scope_->HasTrivialContext(); |
neis
2016/08/19 14:33:41
Now the code doesn't quite match the comment anymo
Toon Verwaest
2016/08/19 18:00:35
I'll do so in a follow-up
|
} |
@@ -1171,7 +1164,6 @@ void Scope::Print(int n) { |
} |
if (IsAsmModule()) Indent(n1, "// scope is an asm module\n"); |
if (IsAsmFunction()) Indent(n1, "// scope is an asm function\n"); |
- if (scope_inside_with_) Indent(n1, "// scope inside 'with'\n"); |
if (scope_calls_eval_) Indent(n1, "// scope calls 'eval'\n"); |
if (scope_uses_super_property_) |
Indent(n1, "// scope uses 'super' property\n"); |