Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index fa358c53929127218fbd4fd719d5bec8d3bab3b0..6a1aa9fa422875218a47cd1b0426855049272104 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -467,6 +467,20 @@ intptr_t Heap::SizeOfObjects() { |
} |
+void Heap::ClearAllICsByKind(Code::Kind kind) { |
+ HeapObjectIterator it(code_space()); |
+ |
+ for (Object* object = it.Next(); object != NULL; object = it.Next()) { |
+ Code* code = Code::cast(object); |
+ Code::Kind current_kind = code->kind(); |
+ if (current_kind == Code::FUNCTION || |
+ current_kind == Code::OPTIMIZED_FUNCTION) { |
+ code->ClearInlineCaches(kind); |
+ } |
+ } |
+} |
+ |
+ |
void Heap::RepairFreeListsAfterBoot() { |
PagedSpaces spaces(this); |
for (PagedSpace* space = spaces.next(); |