#ifndef gc_GCEnum_h
#define gc_GCEnum_h
#include <stdint.h>
namespace js {
namespace gc {
enum class MarkColor : uint32_t { Black = 0, Gray };
#define GCSTATES(D) \
D(NotActive) \
D(MarkRoots) \
D(Mark) \
D(Sweep) \
D(Finalize) \
D(Compact) \
D(Decommit) \
D(Finish)
enum class State {
#define MAKE_STATE(name) name,
GCSTATES(MAKE_STATE)
#undef MAKE_STATE
};
#define GC_ABORT_REASONS(D) \
D(None, 0) \
D(NonIncrementalRequested, 1) \
D(AbortRequested, 2) \
D(Unused1, 3) \
D(IncrementalDisabled, 4) \
D(ModeChange, 5) \
D(MallocBytesTrigger, 6) \
D(GCBytesTrigger, 7) \
D(ZoneChange, 8) \
D(CompartmentRevived, 9) \
D(GrayRootBufferingFailed, 10)
enum class AbortReason {
#define MAKE_REASON(name, num) name = num,
GC_ABORT_REASONS(MAKE_REASON)
#undef MAKE_REASON
};
#define JS_FOR_EACH_ZEAL_MODE(D) \
D(RootsChange, 1) \
D(Alloc, 2) \
D(VerifierPre, 4) \
D(GenerationalGC, 7) \
D(YieldBeforeMarking, 8) \
D(YieldBeforeSweeping, 9) \
D(IncrementalMultipleSlices, 10) \
D(IncrementalMarkingValidator, 11) \
D(ElementsBarrier, 12) \
D(CheckHashTablesOnMinorGC, 13) \
D(Compact, 14) \
D(CheckHeapAfterGC, 15) \
D(CheckNursery, 16) \
D(YieldBeforeSweepingAtoms, 17) \
D(CheckGrayMarking, 18) \
D(YieldBeforeSweepingCaches, 19) \
D(YieldBeforeSweepingTypes, 20) \
D(YieldBeforeSweepingObjects, 21) \
D(YieldBeforeSweepingNonObjects, 22) \
D(YieldBeforeSweepingShapeTrees, 23) \
D(CheckWeakMapMarking, 24) \
D(YieldWhileGrayMarking, 25)
enum class ZealMode {
#define ZEAL_MODE(name, value) name = value,
JS_FOR_EACH_ZEAL_MODE(ZEAL_MODE)
#undef ZEAL_MODE
Count,
Limit = Count - 1
};
}
}
#endif