5 #ifndef V8_OBJECTS_EMBEDDER_DATA_SLOT_H_ 6 #define V8_OBJECTS_EMBEDDER_DATA_SLOT_H_ 10 #include "src/assert-scope.h" 11 #include "src/globals.h" 12 #include "src/objects/slots.h" 15 #include "src/objects/object-macros.h" 20 class EmbedderDataArray;
33 :
public SlotBase<EmbedderDataSlot, Address, kEmbedderDataSlotSize> {
39 #ifdef V8_COMPRESS_POINTERS 40 static constexpr
int kRawPayloadOffset = kTaggedSize;
42 static constexpr
int kTaggedPayloadOffset = 0;
43 static constexpr
int kRequiredPtrAlignment = kSmiTagSize;
47 const Address data_[kEmbedderDataSlotSizeInTaggedSlots];
50 V8_INLINE
Object* load_tagged()
const;
51 V8_INLINE
void store_smi(
Smi value);
58 static V8_INLINE
void store_tagged(
JSObject*
object,
int embedder_field_index,
65 V8_INLINE
bool ToAlignedPointer(
void** out_result)
const;
69 V8_INLINE V8_WARN_UNUSED_RESULT
bool store_aligned_pointer(
void* ptr);
72 V8_INLINE
void store_raw(
const RawData& data,
79 #include "src/objects/object-macros-undef.h" 81 #endif // V8_OBJECTS_EMBEDDER_DATA_SLOT_H_