5#ifndef INCLUDE_V8_CONTEXT_H_
6#define INCLUDE_V8_CONTEXT_H_
34 : name_count_(name_count),
names_(names) {}
37 const char**
end()
const {
return &
names_[name_count_]; }
164 Isolate* isolate,
size_t context_snapshot_index,
203 void UseDefaultSecurityToken();
276 uint32_t GetNumberOfEmbedderDataFields();
307 V8_INLINE void* GetAlignedPointerFromEmbedderData(
int index);
314 void SetAlignedPointerInEmbedderData(
int index,
void* value);
329 void AllowCodeGenerationFromStrings(
bool allow);
335 bool IsCodeGenerationFromStringsAllowed()
const;
342 void SetErrorMessageForCodeGenerationFromStrings(
Local<String> message);
348 void SetErrorMessageForWasmCodeGeneration(
Local<String> message);
412 return js_stack_comparable_address_;
416 uintptr_t js_stack_comparable_address_ = 0;
428 static void CheckCast(
Data* obj);
433 void* SlowGetAlignedPointerFromEmbedderData(
int index);
439#ifndef V8_ENABLE_CHECKS
444 I::ReadTaggedPointerField(ctx, I::kNativeContextEmbedderDataOffset);
446 I::kEmbedderDataArrayHeaderSize + (I::kEmbedderDataSlotSize *
index);
447 A value = I::ReadRawField<A>(embedder_data, value_offset);
448#ifdef V8_COMPRESS_POINTERS
451 value = I::DecompressTaggedField(embedder_data,
static_cast<uint32_t
>(value));
463#if !defined(V8_ENABLE_CHECKS)
468 I::ReadTaggedPointerField(ctx, I::kNativeContextEmbedderDataOffset);
469 int value_offset = I::kEmbedderDataArrayHeaderSize +
470 (I::kEmbedderDataSlotSize *
index) +
471 I::kEmbedderDataSlotExternalPointerOffset;
472 return reinterpret_cast<void*
>(
473 I::ReadExternalPointerField<internal::kEmbedderDataSlotPayloadTag>(
474 isolate, embedder_data, value_offset));
481#if !defined(V8_ENABLE_CHECKS)
486 I::ReadTaggedPointerField(ctx, I::kNativeContextEmbedderDataOffset);
487 int value_offset = I::kEmbedderDataArrayHeaderSize +
488 (I::kEmbedderDataSlotSize *
index) +
489 I::kEmbedderDataSlotExternalPointerOffset;
490 Isolate* isolate = I::GetIsolateForSandbox(ctx);
491 return reinterpret_cast<void*
>(
492 I::ReadExternalPointerField<internal::kEmbedderDataSlotPayloadTag>(
493 isolate, embedder_data, value_offset));
510#ifdef V8_ENABLE_CHECKS
union v8::internal::@341::BuiltinMetadata::KindSpecificData data
uintptr_t JSStackComparableAddressPrivate() const
Local< Context > backup_incumbent_context_
virtual bool FreezeEmbedderObjectAndGetChildren(Local< Object > obj, LocalVector< Object > &children_out)=0
V8_INLINE Scope(Local< Context > context)
Local< Context > context_
static void CheckCast(Data *obj)
V8_INLINE void * GetAlignedPointerFromEmbedderData(Isolate *isolate, int index)
static V8_INLINE Context * Cast(Data *data)
void * SlowGetAlignedPointerFromEmbedderData(int index)
void(*)(Isolate *isolate, Local< Context > context) AbortScriptExecutionCallback
Local< Value > SlowGetEmbedderData(int index)
V8_INLINE MaybeLocal< T > GetDataFromSnapshotOnce(size_t index)
V8_INLINE Local< Value > GetEmbedderData(int index)
ExtensionConfiguration(int name_count, const char *names[])
const char ** begin() const
const char ** end() const
static V8_INLINE Local< T > New(Isolate *isolate, Local< T > that)
static V8_INLINE Local< T > FromRepr(internal::ValueHelper::InternalRepresentationType repr)
static V8_INLINE Address ValueAsAddress(const T *value)
internal::Address * InternalRepresentationType
static V8_INLINE T * ReprAsValue(InternalRepresentationType repr)
static constexpr InternalRepresentationType kEmpty
Handle< Context > context_
MicrotaskQueue * microtask_queue
V8_EXPORT internal::Isolate * IsolateFromNeverReadOnlySpaceObject(Address obj)
V8_INLINE void PerformCastCheck(T *data)
v8_inspector::String16 String
#define I(name, number_of_args, result_size)