Index: src/scopes.h |
diff --git a/src/scopes.h b/src/scopes.h |
index f3c64f9eadf73c7c4f9c1671779c4f55926697f9..4ff10c43921a7e4bb7e81f9ad67f821c10a22c44 100644 |
--- a/src/scopes.h |
+++ b/src/scopes.h |
@@ -409,6 +409,16 @@ class Scope: public ZoneObject { |
return arguments_; |
} |
+ // A local variable to the [[HomeObject]] used by methods if we need to |
+ // allocate it; NULL otherwise. |
+ Variable* home_object_var() const { |
+ DCHECK(home_object_ == nullptr || |
+ (is_function_scope() && (IsConciseMethod(function_kind()) || |
+ IsAccessorFunction(function_kind()) || |
+ IsConstructor(function_kind())))); |
+ return home_object_; |
+ } |
+ |
// Declarations list. |
ZoneList<Declaration*>* declarations() { return &decls_; } |
@@ -566,6 +576,8 @@ class Scope: public ZoneObject { |
Variable* new_target_; |
// Convenience variable; function scopes only. |
Variable* arguments_; |
+ // Convenience variable; method scopes only. |
+ Variable* home_object_; |
// Module descriptor; module scopes only. |
ModuleDescriptor* module_descriptor_; |