5#ifndef V8_OBJECTS_MAYBE_OBJECT_INL_H_
6#define V8_OBJECTS_MAYBE_OBJECT_INL_H_
23#ifdef V8_COMPRESS_POINTERS
37#ifdef V8_COMPRESS_POINTERS
47template <
typename THeapObjectSlot>
50 static_assert(std::is_same<THeapObjectSlot, FullHeapObjectSlot>::value ||
51 std::is_same<THeapObjectSlot, HeapObjectSlot>::value,
52 "Only FullHeapObjectSlot and HeapObjectSlot are expected here");
53 Address old_value = (*slot).ptr();
55 Address new_value = value.ptr();
static V8_INLINE constexpr bool HasHeapObjectTag(Address value)
static V8_INLINE Address DecompressTagged(TOnHeapAddress on_heap_addr, Tagged_t raw_value)
V8_CONST static V8_INLINE Address base()
#define HAS_SMI_TAG(value)
#define HAS_WEAK_HEAP_OBJECT_TAG(value)
const Address kWeakHeapObjectMask
Tagged< ClearedWeakValue > ClearedValue(PtrComprCageBase cage_base)
Tagged< ClearedWeakValue > ClearedTrustedValue()
void UpdateHeapObjectReferenceSlot(THeapObjectSlot slot, Tagged< HeapObject > value)
const uint32_t kClearedWeakHeapObjectLower32
Tagged< To > Cast(Tagged< From > value, const v8::SourceLocation &loc=INIT_SOURCE_LOCATION_IN_DEBUG)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)