Index: src/scopes.h |
diff --git a/src/scopes.h b/src/scopes.h |
index 4975ab4abf632529e2ffbf0f9eb377884aa84141..8d790068783c20e681248972c91dbce176d1848f 100644 |
--- a/src/scopes.h |
+++ b/src/scopes.h |
@@ -214,7 +214,12 @@ class Scope: public ZoneObject { |
void RecordArgumentsUsage() { scope_uses_arguments_ = true; } |
// Inform the scope that the corresponding code uses "super". |
- void RecordSuperUsage() { scope_uses_super_ = true; } |
+ void RecordSuperPropertyUsage() { scope_uses_super_property_ = true; } |
+ |
+ // Inform the scope that the corresponding code invokes "super" constructor. |
+ void RecordSuperConstructorCallUsage() { |
+ scope_uses_super_constructor_call_ = true; |
+ } |
// Inform the scope that the corresponding code uses "this". |
void RecordThisUsage() { scope_uses_this_ = true; } |
@@ -307,10 +312,20 @@ class Scope: public ZoneObject { |
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 "super" property (super.foo). |
+ bool uses_super_property() const { return scope_uses_super_property_; } |
+ // Does any inner scope access "super" property. |
+ bool inner_uses_super_property() const { |
+ return inner_scope_uses_super_property_; |
+ } |
+ // Does this scope calls "super" constructor. |
+ bool uses_super_constructor_call() const { |
+ return scope_uses_super_constructor_call_; |
+ } |
+ // Does any inner scope calls "super" constructor. |
+ bool inner_uses_super_constructor_call() const { |
+ return inner_scope_uses_super_constructor_call_; |
+ } |
// Does this scope access "this". |
bool uses_this() const { return scope_uses_this_; } |
// Does any inner scope access "this". |
@@ -496,8 +511,10 @@ class Scope: public ZoneObject { |
bool scope_calls_eval_; |
// This scope uses "arguments". |
bool scope_uses_arguments_; |
- // This scope uses "super". |
- bool scope_uses_super_; |
+ // This scope uses "super" property ('super.foo'). |
+ bool scope_uses_super_property_; |
+ // This scope uses "super" constructor ('super(..)'). |
+ bool scope_uses_super_constructor_call_; |
// This scope uses "this". |
bool scope_uses_this_; |
// This scope contains an "use asm" annotation. |
@@ -514,7 +531,8 @@ class Scope: public ZoneObject { |
bool outer_scope_calls_sloppy_eval_; |
bool inner_scope_calls_eval_; |
bool inner_scope_uses_arguments_; |
- bool inner_scope_uses_super_; |
+ bool inner_scope_uses_super_property_; |
+ bool inner_scope_uses_super_constructor_call_; |
bool inner_scope_uses_this_; |
bool force_eager_compilation_; |
bool force_context_allocation_; |