Index: src/scopes.h |
diff --git a/src/scopes.h b/src/scopes.h |
index 016fc7f7c3d852ccfd58ad68e6cd0d2f903eafb1..c6baba5e29d07abf52c3b3473349dd16e6a5a7bc 100644 |
--- a/src/scopes.h |
+++ b/src/scopes.h |
@@ -317,9 +317,12 @@ class Scope: public ZoneObject { |
bool inner_uses_arguments() const { return inner_scope_uses_arguments_; } |
// 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_; |
+ |
+ bool NeedsHomeObject() const { |
+ return scope_uses_super_property_ || |
+ (scope_calls_eval_ && (IsConciseMethod(function_kind()) || |
+ IsAccessorFunction(function_kind()) || |
+ IsConstructor(function_kind()))); |
} |
const Scope* NearestOuterEvalScope() const { |
@@ -611,7 +614,6 @@ 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_property_; |
bool force_eager_compilation_; |
bool force_context_allocation_; |