Index: src/scopes.h |
diff --git a/src/scopes.h b/src/scopes.h |
index f3c64f9eadf73c7c4f9c1671779c4f55926697f9..92f5c4cf72e73aff6bbdf5e09914de835d535f45 100644 |
--- a/src/scopes.h |
+++ b/src/scopes.h |
@@ -217,6 +217,9 @@ |
// Inform the scope that the corresponding code uses "super". |
void RecordSuperPropertyUsage() { scope_uses_super_property_ = true; } |
+ |
+ // Inform the scope that the corresponding code uses "this". |
+ void RecordThisUsage() { scope_uses_this_ = true; } |
// Set the language mode flag (unless disabled by a global flag). |
void SetLanguageMode(LanguageMode language_mode) { |
@@ -321,6 +324,10 @@ |
bool inner_uses_super_property() const { |
return inner_scope_uses_super_property_; |
} |
+ // Does this scope access "this". |
+ bool uses_this() const { return scope_uses_this_; } |
+ // Does any inner scope access "this". |
+ bool inner_uses_this() const { return inner_scope_uses_this_; } |
const Scope* NearestOuterEvalScope() const { |
if (is_eval_scope()) return this; |
@@ -585,6 +592,8 @@ |
bool scope_uses_arguments_; |
// This scope uses "super" property ('super.foo'). |
bool scope_uses_super_property_; |
+ // This scope uses "this". |
+ bool scope_uses_this_; |
// This scope contains an "use asm" annotation. |
bool asm_module_; |
// This scope's outer context is an asm module. |
@@ -600,6 +609,7 @@ |
bool inner_scope_calls_eval_; |
bool inner_scope_uses_arguments_; |
bool inner_scope_uses_super_property_; |
+ bool inner_scope_uses_this_; |
bool force_eager_compilation_; |
bool force_context_allocation_; |