Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index c484eabe9183401b1b3cce2e571efb85d66ae879..be0ecff57da0b093346e69a172b32ce1365343ca 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -12775,6 +12775,24 @@ void JSObject::TransitionElementsKind(Handle<JSObject> object, |
const double AllocationSite::kPretenureRatio = 0.60; |
+void AllocationSite::ResetPretenureDecision() { |
+ dependent_code()->DeoptimizeDependentCodeGroup( |
+ GetIsolate(), |
+ DependentCode::kAllocationSiteTenuringChangedGroup); |
+ set_pretenure_decision(Smi::FromInt(kUndecided)); |
+ set_memento_found_count(Smi::FromInt(0)); |
+ set_memento_create_count(Smi::FromInt(0)); |
+} |
+ |
+ |
+PretenureFlag AllocationSite::GetPretenureMode() { |
+ int mode = pretenure_decision()->value(); |
+ // Zombie objects "decide" to be untenured. |
+ return (mode == kTenure && GetHeap()->GetPretenureMode() == TENURED) |
+ ? TENURED : NOT_TENURED; |
+} |
+ |
+ |
bool AllocationSite::IsNestedSite() { |
ASSERT(FLAG_trace_track_allocation_sites); |
Object* current = GetHeap()->allocation_sites_list(); |