#include "src/heap/read-only-promotion.h"
#include <unordered_set>
#include "src/common/assert-scope.h"
#include "src/execution/isolate.h"
#include "src/heap/heap.h"
#include "src/objects/heap-object-inl.h"
#include "src/sandbox/external-pointer-table.h"
namespace v8 {
namespace internal {
namespace {
using HeapObjectSet = std::unordered_set<Tagged<HeapObject>, Object::Hasher,
Object::KeyEqualSafe>;
using HeapObjectMap = std::unordered_map<Tagged<HeapObject>, Tagged<HeapObject>,
Object::Hasher, Object::KeyEqualSafe>;
using HeapObjectList = std::vector<Tagged<HeapObject>>;
bool Contains(const HeapObjectSet& s, Tagged<HeapObject> o) { … }
bool Contains(const HeapObjectMap& s, Tagged<HeapObject> o) { … }
class Committee final { … } … };
class ReadOnlyPromotionImpl final : public AllStatic { … };
}
void ReadOnlyPromotion::Promote(Isolate* isolate,
const SafepointScope& safepoint_scope,
const DisallowGarbageCollection& no_gc) { … }
}
}