1 // Copyright 2019 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "third_party/blink/renderer/platform/heap/blink_gc.h" 6 7 #include "base/logging.h" 8 9 namespace blink { 10 ToString(BlinkGC::GCReason reason)11const char* BlinkGC::ToString(BlinkGC::GCReason reason) { 12 switch (reason) { 13 case BlinkGC::GCReason::kPreciseGC: 14 return "PreciseGC"; 15 case BlinkGC::GCReason::kConservativeGC: 16 return "ConservativeGC"; 17 case BlinkGC::GCReason::kForcedGCForTesting: 18 return "ForcedGCForTesting"; 19 case BlinkGC::GCReason::kMemoryPressureGC: 20 return "MemoryPressureGC"; 21 case BlinkGC::GCReason::kThreadTerminationGC: 22 return "ThreadTerminationGC"; 23 case BlinkGC::GCReason::kIncrementalV8FollowupGC: 24 return "IncrementalV8FollowupGC"; 25 case BlinkGC::GCReason::kUnifiedHeapGC: 26 return "UnifiedHeapGC"; 27 case BlinkGC::GCReason::kUnifiedHeapForMemoryReductionGC: 28 return "UnifiedHeapForMemoryReductionGC"; 29 } 30 IMMEDIATE_CRASH(); 31 } 32 ToString(BlinkGC::MarkingType type)33const char* BlinkGC::ToString(BlinkGC::MarkingType type) { 34 switch (type) { 35 case BlinkGC::MarkingType::kAtomicMarking: 36 return "AtomicMarking"; 37 case BlinkGC::MarkingType::kIncrementalAndConcurrentMarking: 38 return "IncrementalAndConcurrentMarking"; 39 } 40 IMMEDIATE_CRASH(); 41 } 42 ToString(BlinkGC::SweepingType type)43const char* BlinkGC::ToString(BlinkGC::SweepingType type) { 44 switch (type) { 45 case BlinkGC::SweepingType::kConcurrentAndLazySweeping: 46 return "ConcurrentAndLazySweeping"; 47 case BlinkGC::SweepingType::kEagerSweeping: 48 return "EagerSweeping"; 49 } 50 IMMEDIATE_CRASH(); 51 } 52 ToString(BlinkGC::StackState stack_state)53const char* BlinkGC::ToString(BlinkGC::StackState stack_state) { 54 switch (stack_state) { 55 case BlinkGC::kNoHeapPointersOnStack: 56 return "NoHeapPointersOnStack"; 57 case BlinkGC::kHeapPointersOnStack: 58 return "HeapPointersOnStack"; 59 } 60 IMMEDIATE_CRASH(); 61 } 62 ToString(BlinkGC::ArenaIndices arena_index)63const char* BlinkGC::ToString(BlinkGC::ArenaIndices arena_index) { 64 #define ArenaCase(name) \ 65 case k##name##ArenaIndex: \ 66 return "" #name "Arena"; 67 68 switch (arena_index) { 69 FOR_EACH_ARENA(ArenaCase) 70 71 case BlinkGC::ArenaIndices::kNumberOfArenas: 72 IMMEDIATE_CRASH(); 73 } 74 IMMEDIATE_CRASH(); 75 76 #undef ArenaCase 77 } 78 79 } // namespace blink 80