| Index: src/scopes.h
|
| diff --git a/src/scopes.h b/src/scopes.h
|
| index 25305de1e1fd2c565d4db9b7243ca96fa7680fec..b506c58cdd109dd3d66e7bac9188a51c6d3fa358 100644
|
| --- a/src/scopes.h
|
| +++ b/src/scopes.h
|
| @@ -211,12 +211,15 @@ class Scope: public ZoneObject {
|
| // Inform the scope that the corresponding code contains an eval call.
|
| void RecordEvalCall() { if (!is_global_scope()) scope_calls_eval_ = true; }
|
|
|
| - // Inform the scope that the corresponding code uses "this".
|
| - void RecordThisUsage() { scope_uses_this_ = true; }
|
| -
|
| // Inform the scope that the corresponding code uses "arguments".
|
| void RecordArgumentsUsage() { scope_uses_arguments_ = true; }
|
|
|
| + // Inform the scope that the corresponding code uses "super".
|
| + void RecordSuperUsage() { scope_uses_super_ = true; }
|
| +
|
| + // Inform the scope that the corresponding code uses "this".
|
| + void RecordThisUsage() { scope_uses_this_ = true; }
|
| +
|
| // Set the strict mode flag (unless disabled by a global flag).
|
| void SetStrictMode(StrictMode strict_mode) { strict_mode_ = strict_mode; }
|
|
|
| @@ -301,14 +304,18 @@ class Scope: public ZoneObject {
|
| // Does this scope contain a with statement.
|
| bool contains_with() const { return scope_contains_with_; }
|
|
|
| - // 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_; }
|
| // Does this scope access "arguments".
|
| bool uses_arguments() const { return scope_uses_arguments_; }
|
| // Does any inner scope access "arguments".
|
| bool inner_uses_arguments() const { return inner_scope_uses_arguments_; }
|
| + // Does this scope access "super".
|
| + bool uses_super() const { return scope_uses_super_; }
|
| + // Does any inner scope access "super".
|
| + bool inner_uses_super() const { return inner_scope_uses_super_; }
|
| + // 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_; }
|
|
|
| // ---------------------------------------------------------------------------
|
| // Accessors.
|
| @@ -486,10 +493,12 @@ class Scope: public ZoneObject {
|
| // This scope or a nested catch scope or with scope contain an 'eval' call. At
|
| // the 'eval' call site this scope is the declaration scope.
|
| bool scope_calls_eval_;
|
| - // This scope uses "this".
|
| - bool scope_uses_this_;
|
| // This scope uses "arguments".
|
| bool scope_uses_arguments_;
|
| + // This scope uses "super".
|
| + bool scope_uses_super_;
|
| + // 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.
|
| @@ -503,8 +512,9 @@ class Scope: public ZoneObject {
|
| // Computed via PropagateScopeInfo.
|
| bool outer_scope_calls_sloppy_eval_;
|
| bool inner_scope_calls_eval_;
|
| - bool inner_scope_uses_this_;
|
| bool inner_scope_uses_arguments_;
|
| + bool inner_scope_uses_super_;
|
| + bool inner_scope_uses_this_;
|
| bool force_eager_compilation_;
|
| bool force_context_allocation_;
|
|
|
|
|