Index: src/heap/objects-visiting-inl.h |
diff --git a/src/heap/objects-visiting-inl.h b/src/heap/objects-visiting-inl.h |
index 8846d27bceb4e9f4b9a0eeaa219457209889d88d..7fe6a508b12f628a0fe0b275e8260297366a4b5b 100644 |
--- a/src/heap/objects-visiting-inl.h |
+++ b/src/heap/objects-visiting-inl.h |
@@ -261,7 +261,8 @@ void StaticMarkingVisitor<StaticVisitor>::VisitCodeTarget(Heap* heap, |
// to be serialized. |
if (FLAG_cleanup_code_caches_at_gc && target->is_inline_cache_stub() && |
(target->ic_state() == MEGAMORPHIC || target->ic_state() == GENERIC || |
- target->ic_state() == POLYMORPHIC || heap->flush_monomorphic_ics() || |
+ target->ic_state() == POLYMORPHIC || |
+ (heap->flush_monomorphic_ics() && !target->is_weak_stub()) || |
heap->isolate()->serializer_enabled() || |
target->ic_age() != heap->global_ic_age() || |
target->is_invalidated_weak_stub())) { |