Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index e69b004a9b0d2b8fc64dc2f463eec10bf205a0a3..fef74442c3da4a6b93cd0028868e6a4a51c4bdcf 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -11107,6 +11107,16 @@ |
void SharedFunctionInfo::ClearOptimizedCodeMap() { |
+ FixedArray* code_map = FixedArray::cast(optimized_code_map()); |
+ |
+ // If the next map link slot is already used then the function was |
+ // enqueued with code flushing and we remove it now. |
+ if (!code_map->get(kNextMapIndex)->IsUndefined()) { |
+ CodeFlusher* flusher = GetHeap()->mark_compact_collector()->code_flusher(); |
+ flusher->EvictOptimizedCodeMap(this); |
+ } |
+ |
+ DCHECK(code_map->get(kNextMapIndex)->IsUndefined()); |
set_optimized_code_map(Smi::FromInt(0)); |
} |