| 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_;
|
|
|
|
|