5#ifndef V8_HEAP_NEW_SPACES_INL_H_
6#define V8_HEAP_NEW_SPACES_INL_H_
65 :
current_(space->first_allocatable_address()) {}
73 page = page->next_page();
74 if (page ==
nullptr)
return {};
79 if (!IsFreeSpaceOrFiller(
object))
return object;
114 const bool on_age_mark_page =
118 return !on_age_mark_page || address <
age_mark;
static Tagged< HeapObject > FromAddress(Address address)
@ NEW_SPACE_BELOW_AGE_MARK
V8_INLINE bool IsFlagSet(Flag flag) const
V8_INLINE Address address() const
V8_INLINE MemoryChunkMetadata * Metadata()
static V8_INLINE MemoryChunk * FromAddress(Address addr)
V8_INLINE bool InYoungGeneration() const
static V8_INLINE MemoryChunk * FromHeapObject(Tagged< HeapObject > object)
static const int kPageSize
bool Contains(Tagged< Object > o) const
static V8_INLINE PageMetadata * FromAllocationAreaAddress(Address address)
static bool IsAlignedToPageSize(Address addr)
V8_INLINE void IncrementAllocationTop(Address new_top)
V8_INLINE void DecrementAllocationTop(Address new_top)
V8_INLINE bool IsAddressBelowAgeMark(Address address) const
V8_INLINE bool ShouldBePromoted(Address object) const
SemiSpaceObjectIterator(const SemiSpaceNewSpace *space)
Tagged< HeapObject > Next() final
bool Contains(Tagged< HeapObject > o) const
bool ContainsSlow(Address a) const
#define ALIGN_TO_ALLOCATION_ALIGNMENT(value)
static constexpr bool kTaggedCanConvertToRawObjects
V8_INLINE constexpr bool IsHeapObject(TaggedImpl< kRefType, StorageType > obj)
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define DCHECK_LE(v1, v2)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)