Index: src/allocation-site-scopes.h |
diff --git a/src/allocation-site-scopes.h b/src/allocation-site-scopes.h |
index f106c5e88934e7d54f4d80b359c3ae65c33b8e5e..a195b27d85a0b180eaa7f71eaf3e8694331320b3 100644 |
--- a/src/allocation-site-scopes.h |
+++ b/src/allocation-site-scopes.h |
@@ -41,16 +41,14 @@ namespace internal { |
// boilerplate with AllocationSite and AllocationMemento support. |
class AllocationSiteContext { |
public: |
- AllocationSiteContext(Isolate* isolate, bool activated) { |
+ explicit AllocationSiteContext(Isolate* isolate) { |
isolate_ = isolate; |
- activated_ = activated; |
}; |
Handle<AllocationSite> top() { return top_; } |
Handle<AllocationSite> current() { return current_; } |
- // If activated, then recursively create mementos |
- bool activated() const { return activated_; } |
+ bool ShouldCreateMemento(Handle<JSObject> object) { return false; } |
Isolate* isolate() { return isolate_; } |
@@ -68,7 +66,6 @@ class AllocationSiteContext { |
Isolate* isolate_; |
Handle<AllocationSite> top_; |
Handle<AllocationSite> current_; |
- bool activated_; |
}; |
@@ -77,7 +74,7 @@ class AllocationSiteContext { |
class AllocationSiteCreationContext : public AllocationSiteContext { |
public: |
explicit AllocationSiteCreationContext(Isolate* isolate) |
- : AllocationSiteContext(isolate, true) { } |
+ : AllocationSiteContext(isolate) { } |
Handle<AllocationSite> EnterNewScope(); |
void ExitScope(Handle<AllocationSite> site, Handle<JSObject> object); |
@@ -90,8 +87,9 @@ class AllocationSiteUsageContext : public AllocationSiteContext { |
public: |
AllocationSiteUsageContext(Isolate* isolate, Handle<AllocationSite> site, |
bool activated) |
- : AllocationSiteContext(isolate, activated), |
- top_site_(site) { } |
+ : AllocationSiteContext(isolate), |
+ top_site_(site), |
+ activated_(activated) { } |
inline Handle<AllocationSite> EnterNewScope() { |
if (top().is_null()) { |
@@ -113,8 +111,11 @@ class AllocationSiteUsageContext : public AllocationSiteContext { |
ASSERT(object.is_null() || *object == scope_site->transition_info()); |
} |
+ bool ShouldCreateMemento(Handle<JSObject> object); |
+ |
private: |
Handle<AllocationSite> top_site_; |
+ bool activated_; |
}; |