V8  latest master commit
V8 is Google's open source JavaScript engine
v8.h File Reference
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
#include <memory>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>
#include "cppgc/common.h"
#include "v8-internal.h"
#include "v8-version.h"
#include "v8config.h"

Go to the source code of this file.

Data Structures

class  v8::Maybe< T >
 
class  v8::Local< T >
 
class  v8::MaybeLocal< T >
 
class  v8::Eternal< T >
 
class  v8::NonCopyablePersistentTraits< T >
 
class  v8::PersistentBase< T >
 
class  v8::Persistent< T, M >
 
class  v8::Global< T >
 
class  v8::TracedGlobal< T >
 
class  v8::TracedReference< T >
 
class  v8::TracedReferenceBase< T >
 
class  v8::PersistentValueMap< K, V, Traits >
 
class  v8::PersistentValueMapBase< K, V, Traits >
 
class  v8::GlobalValueMap< K, V, Traits >
 
class  v8::PersistentValueVector< V, Traits >
 
class  v8::WeakCallbackObject< T, P >
 
class  v8::FunctionCallbackInfo< T >
 
class  v8::PropertyCallbackInfo< T >
 
class  v8::ReturnValue< T >
 
class  v8::internal::Arguments< ArgumentsType >
 
class  v8::internal::CustomArguments< T >
 
class  v8::Local< T >
 
class  v8::MaybeLocal< T >
 
class  v8::Eternal< T >
 
class  v8::WeakCallbackInfo< T >
 
class  v8::PersistentBase< T >
 
class  v8::NonCopyablePersistentTraits< T >
 
struct  v8::CopyablePersistentTraits< T >
 
class  v8::Persistent< T, M >
 
class  v8::Global< T >
 
struct  v8::TracedGlobalTrait< T >
 
class  v8::TracedReferenceBase< T >
 
class  v8::TracedGlobal< T >
 
class  v8::TracedReference< T >
 
class  v8::HandleScope
 
class  v8::EscapableHandleScope
 
class  v8::SealHandleScope
 
class  v8::Data
 
class  v8::ScriptOrModule
 
class  v8::PrimitiveArray
 
class  v8::ScriptOriginOptions
 
class  v8::ScriptOrigin
 
class  v8::UnboundScript
 
class  v8::UnboundModuleScript
 
class  v8::Location
 
class  v8::Module
 
class  v8::Script
 
class  v8::ScriptCompiler
 
struct  v8::ScriptCompiler::CachedData
 
class  v8::ScriptCompiler::Source
 
class  v8::ScriptCompiler::ExternalSourceStream
 
class  v8::ScriptCompiler::StreamedSource
 
class  v8::ScriptCompiler::ScriptStreamingTask
 
class  v8::Message
 
class  v8::StackTrace
 
class  v8::StackFrame
 
struct  v8::RegisterState
 
struct  v8::SampleInfo
 
struct  v8::MemoryRange
 
struct  v8::JSEntryStub
 
struct  v8::UnwindState
 
struct  v8::JSEntryStubs
 
class  v8::JSON
 
class  v8::ValueSerializer
 
class  v8::ValueSerializer::Delegate
 
class  v8::ValueDeserializer
 
class  v8::ValueDeserializer::Delegate
 
class  v8::Value
 
class  v8::Primitive
 
class  v8::Boolean
 
class  v8::Name
 
class  v8::String
 
class  v8::String::ExternalStringResourceBase
 
class  v8::String::ExternalStringResource
 
class  v8::String::ExternalOneByteStringResource
 
class  v8::String::Utf8Value
 
class  v8::String::Value
 
class  v8::Symbol
 
class  v8::Private
 
class  v8::Number
 
class  v8::Integer
 
class  v8::Int32
 
class  v8::Uint32
 
class  v8::BigInt
 
class  v8::Object
 
class  v8::Array
 
class  v8::Map
 
class  v8::Set
 
class  v8::ReturnValue< T >
 
class  v8::FunctionCallbackInfo< T >
 
class  v8::PropertyCallbackInfo< T >
 
class  v8::Function
 
class  v8::Promise
 
class  v8::Promise::Resolver
 
class  v8::PropertyDescriptor
 
class  v8::Proxy
 
class  v8::MemorySpan< T >
 
struct  v8::OwnedBuffer
 
class  v8::CompiledWasmModule
 
class  v8::WasmModuleObject
 
class  v8::WasmStreaming
 
class  v8::WasmStreaming::Client
 
class  v8::WasmModuleObjectBuilderStreaming
 
class  v8::BackingStore
 
class  v8::ArrayBuffer
 
class  v8::ArrayBuffer::Allocator
 
class  v8::ArrayBuffer::Contents
 
class  v8::ArrayBufferView
 
class  v8::TypedArray
 
class  v8::Uint8Array
 
class  v8::Uint8ClampedArray
 
class  v8::Int8Array
 
class  v8::Uint16Array
 
class  v8::Int16Array
 
class  v8::Uint32Array
 
class  v8::Int32Array
 
class  v8::Float32Array
 
class  v8::Float64Array
 
class  v8::BigInt64Array
 
class  v8::BigUint64Array
 
class  v8::DataView
 
class  v8::SharedArrayBuffer
 
class  v8::SharedArrayBuffer::Contents
 
class  v8::Date
 
class  v8::NumberObject
 
class  v8::BigIntObject
 
class  v8::BooleanObject
 
class  v8::StringObject
 
class  v8::SymbolObject
 
class  v8::RegExp
 
class  v8::External
 
class  v8::Template
 
class  v8::FunctionTemplate
 
struct  v8::NamedPropertyHandlerConfiguration
 
struct  v8::IndexedPropertyHandlerConfiguration
 
class  v8::ObjectTemplate
 
class  v8::Signature
 
class  v8::AccessorSignature
 
class  v8::Extension
 
class  v8::ResourceConstraints
 
class  v8::Exception
 
class  v8::PromiseRejectMessage
 
class  v8::MicrotaskQueue
 
class  v8::MicrotasksScope
 
struct  v8::ModifyCodeGenerationFromStringsResult
 
class  v8::SharedMemoryStatistics
 
class  v8::HeapStatistics
 
class  v8::HeapSpaceStatistics
 
class  v8::HeapObjectStatistics
 
class  v8::HeapCodeStatistics
 
struct  v8::JitCodeEvent
 
struct  v8::JitCodeEvent::name_t
 
struct  v8::JitCodeEvent::line_info_t
 
struct  v8::JitCodeEvent::wasm_source_info_t
 
class  v8::ExternalResourceVisitor
 
class  v8::PersistentHandleVisitor
 
class  v8::EmbedderHeapTracer
 
class  v8::EmbedderHeapTracer::TracedGlobalHandleVisitor
 
struct  v8::EmbedderHeapTracer::TraceSummary
 
struct  v8::SerializeInternalFieldsCallback
 
struct  v8::DeserializeInternalFieldsCallback
 
class  v8::MeasureMemoryDelegate
 
class  v8::Isolate
 
struct  v8::Isolate::CreateParams
 
class  v8::Isolate::Scope
 
class  v8::Isolate::DisallowJavascriptExecutionScope
 
class  v8::Isolate::AllowJavascriptExecutionScope
 
class  v8::Isolate::SuppressMicrotaskExecutionScope
 
class  v8::Isolate::SafeForTerminationScope
 
class  v8::Isolate::AtomicsWaitWakeHandle
 
class  v8::StartupData
 
class  v8::V8
 
class  v8::SnapshotCreator
 
class  v8::Maybe< T >
 
class  v8::Maybe< void >
 
class  v8::TryCatch
 
class  v8::ExtensionConfiguration
 
class  v8::Context
 
class  v8::Context::Scope
 
class  v8::Context::BackupIncumbentScope
 
class  v8::Unlocker
 
class  v8::Locker
 
class  v8::Unwinder
 

Namespaces

 v8
 
 v8::internal
 
 v8::internal::wasm
 
 v8::debug
 

Macros

#define V8_PROMISE_INTERNAL_FIELD_COUNT   0
 
#define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT   2
 
#define V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT   2
 
#define V8_INTRINSICS_LIST(F)
 
#define V8_DECL_INTRINSIC(name, iname)   k##name,
 

Typedefs

template<class T >
using v8::Handle = Local< T >
 
template<class T >
using v8::UniquePersistent = Global< T >
 
typedef void(* v8::AccessorGetterCallback) (Local< String > property, const PropertyCallbackInfo< Value > &info)
 
typedef void(* v8::AccessorNameGetterCallback) (Local< Name > property, const PropertyCallbackInfo< Value > &info)
 
typedef void(* v8::AccessorSetterCallback) (Local< String > property, Local< Value > value, const PropertyCallbackInfo< void > &info)
 
typedef void(* v8::AccessorNameSetterCallback) (Local< Name > property, Local< Value > value, const PropertyCallbackInfo< void > &info)
 
typedef void(* v8::FunctionCallback) (const FunctionCallbackInfo< Value > &info)
 
using v8::BackingStoreDeleterCallback = void(*)(void *data, size_t length, void *deleter_data)
 
typedef void(* v8::GenericNamedPropertyGetterCallback) (Local< Name > property, const PropertyCallbackInfo< Value > &info)
 
typedef void(* v8::GenericNamedPropertySetterCallback) (Local< Name > property, Local< Value > value, const PropertyCallbackInfo< Value > &info)
 
typedef void(* v8::GenericNamedPropertyQueryCallback) (Local< Name > property, const PropertyCallbackInfo< Integer > &info)
 
typedef void(* v8::GenericNamedPropertyDeleterCallback) (Local< Name > property, const PropertyCallbackInfo< Boolean > &info)
 
typedef void(* v8::GenericNamedPropertyEnumeratorCallback) (const PropertyCallbackInfo< Array > &info)
 
typedef void(* v8::GenericNamedPropertyDefinerCallback) (Local< Name > property, const PropertyDescriptor &desc, const PropertyCallbackInfo< Value > &info)
 
typedef void(* v8::GenericNamedPropertyDescriptorCallback) (Local< Name > property, const PropertyCallbackInfo< Value > &info)
 
typedef void(* v8::IndexedPropertyGetterCallback) (uint32_t index, const PropertyCallbackInfo< Value > &info)
 
typedef void(* v8::IndexedPropertySetterCallback) (uint32_t index, Local< Value > value, const PropertyCallbackInfo< Value > &info)
 
typedef void(* v8::IndexedPropertyQueryCallback) (uint32_t index, const PropertyCallbackInfo< Integer > &info)
 
typedef void(* v8::IndexedPropertyDeleterCallback) (uint32_t index, const PropertyCallbackInfo< Boolean > &info)
 
typedef void(* v8::IndexedPropertyEnumeratorCallback) (const PropertyCallbackInfo< Array > &info)
 
typedef void(* v8::IndexedPropertyDefinerCallback) (uint32_t index, const PropertyDescriptor &desc, const PropertyCallbackInfo< Value > &info)
 
typedef void(* v8::IndexedPropertyDescriptorCallback) (uint32_t index, const PropertyCallbackInfo< Value > &info)
 
typedef bool(* v8::AccessCheckCallback) (Local< Context > accessing_context, Local< Object > accessed_object, Local< Value > data)
 
typedef void(* v8::FatalErrorCallback) (const char *location, const char *message)
 
typedef void(* v8::OOMErrorCallback) (const char *location, bool is_heap_oom)
 
typedef void(* v8::DcheckErrorCallback) (const char *file, int line, const char *message)
 
typedef void(* v8::MessageCallback) (Local< Message > message, Local< Value > data)
 
typedef void(* v8::LogEventCallback) (const char *name, int event)
 
typedef int *(* v8::CounterLookupCallback) (const char *name)
 
typedef void *(* v8::CreateHistogramCallback) (const char *name, int min, int max, size_t buckets)
 
typedef void(* v8::AddHistogramSampleCallback) (void *histogram, int sample)
 
typedef void(* v8::AddCrashKeyCallback) (CrashKeyId id, const std::string &value)
 
typedef void(* v8::BeforeCallEnteredCallback) (Isolate *)
 
typedef void(* v8::CallCompletedCallback) (Isolate *)
 
typedef MaybeLocal< Promise >(* v8::HostImportModuleDynamicallyCallback) (Local< Context > context, Local< ScriptOrModule > referrer, Local< String > specifier)
 
typedef void(* v8::HostInitializeImportMetaObjectCallback) (Local< Context > context, Local< Module > module, Local< Object > meta)
 
typedef MaybeLocal< Value >(* v8::PrepareStackTraceCallback) (Local< Context > context, Local< Value > error, Local< Array > sites)
 
typedef void(* v8::PromiseHook) (PromiseHookType type, Local< Promise > promise, Local< Value > parent)
 
typedef void(* v8::PromiseRejectCallback) (PromiseRejectMessage message)
 
typedef void(* v8::MicrotasksCompletedCallback) (Isolate *)
 
typedef void(* v8::MicrotasksCompletedCallbackWithData) (Isolate *, void *)
 
typedef void(* v8::MicrotaskCallback) (void *data)
 
typedef void(* v8::FailedAccessCheckCallback) (Local< Object > target, AccessType type, Local< Value > data)
 
typedef bool(* v8::AllowCodeGenerationFromStringsCallback) (Local< Context > context, Local< String > source)
 
typedef ModifyCodeGenerationFromStringsResult(* v8::ModifyCodeGenerationFromStringsCallback) (Local< Context > context, Local< Value > source)
 
typedef bool(* v8::ExtensionCallback) (const FunctionCallbackInfo< Value > &)
 
typedef bool(* v8::AllowWasmCodeGenerationCallback) (Local< Context > context, Local< String > source)
 
typedef void(* v8::ApiImplementationCallback) (const FunctionCallbackInfo< Value > &)
 
typedef void(* v8::WasmStreamingCallback) (const FunctionCallbackInfo< Value > &)
 
typedef bool(* v8::WasmThreadsEnabledCallback) (Local< Context > context)
 
typedef Local< String >(* v8::WasmLoadSourceMapCallback) (Isolate *isolate, const char *name)
 
typedef bool(* v8::WasmSimdEnabledCallback) (Local< Context > context)
 
typedef void(* v8::GCCallback) (GCType type, GCCallbackFlags flags)
 
typedef void(* v8::InterruptCallback) (Isolate *isolate, void *data)
 
typedef size_t(* v8::NearHeapLimitCallback) (void *data, size_t current_heap_limit, size_t initial_heap_limit)
 
typedef void(* v8::JitCodeEventHandler) (const JitCodeEvent *event)
 
typedef SerializeInternalFieldsCallback v8::SerializeEmbedderFieldsCallback
 
typedef DeserializeInternalFieldsCallback v8::DeserializeEmbedderFieldsCallback
 
typedef bool(* v8::EntropySource) (unsigned char *buffer, size_t length)
 
typedef uintptr_t(* v8::ReturnAddressLocationResolver) (uintptr_t return_addr_location)
 

Enumerations

enum  v8::WeakCallbackType { v8::WeakCallbackType::kParameter, v8::WeakCallbackType::kInternalFields, v8::WeakCallbackType::kFinalizer }
 
enum  v8::StateTag {
  v8::JS, v8::GC, v8::PARSER, v8::BYTECODE_COMPILER,
  v8::COMPILER, v8::OTHER, v8::EXTERNAL, v8::ATOMICS_WAIT,
  v8::IDLE
}
 
enum  v8::NewStringType { v8::NewStringType::kNormal, v8::NewStringType::kInternalized }
 
enum  v8::PropertyAttribute { v8::None = 0, v8::ReadOnly = 1 << 0, v8::DontEnum = 1 << 1, v8::DontDelete = 1 << 2 }
 
enum  v8::AccessControl { v8::DEFAULT = 0, v8::ALL_CAN_READ = 1, v8::ALL_CAN_WRITE = 1 << 1, v8::PROHIBITS_OVERWRITING = 1 << 2 }
 
enum  v8::PropertyFilter {
  v8::ALL_PROPERTIES = 0, v8::ONLY_WRITABLE = 1, v8::ONLY_ENUMERABLE = 2, v8::ONLY_CONFIGURABLE = 4,
  v8::SKIP_STRINGS = 8, v8::SKIP_SYMBOLS = 16
}
 
enum  v8::SideEffectType { v8::SideEffectType::kHasSideEffect, v8::SideEffectType::kHasNoSideEffect, v8::SideEffectType::kHasSideEffectToReceiver }
 
enum  v8::KeyCollectionMode { v8::KeyCollectionMode::kOwnOnly, v8::KeyCollectionMode::kIncludePrototypes }
 
enum  v8::IndexFilter { v8::IndexFilter::kIncludeIndices, v8::IndexFilter::kSkipIndices }
 
enum  v8::KeyConversionMode { v8::KeyConversionMode::kConvertToString, v8::KeyConversionMode::kKeepNumbers, v8::KeyConversionMode::kNoNumbers }
 
enum  v8::IntegrityLevel { v8::IntegrityLevel::kFrozen, v8::IntegrityLevel::kSealed }
 
enum  v8::ConstructorBehavior { v8::ConstructorBehavior::kThrow, v8::ConstructorBehavior::kAllow }
 
enum  v8::ArrayBufferCreationMode { v8::ArrayBufferCreationMode::kInternalized, v8::ArrayBufferCreationMode::kExternalized }
 
enum  v8::Intrinsic
 
enum  v8::AccessType {
  v8::ACCESS_GET, v8::ACCESS_SET, v8::ACCESS_HAS, v8::ACCESS_DELETE,
  v8::ACCESS_KEYS
}
 
enum  v8::PropertyHandlerFlags {
  v8::PropertyHandlerFlags::kNone = 0, v8::PropertyHandlerFlags::kAllCanRead = 1, v8::PropertyHandlerFlags::kNonMasking = 1 << 1, v8::PropertyHandlerFlags::kOnlyInterceptStrings = 1 << 2,
  v8::PropertyHandlerFlags::kHasNoSideEffect = 1 << 3
}
 
enum  v8::CrashKeyId {
  v8::CrashKeyId::kIsolateAddress, v8::CrashKeyId::kReadonlySpaceFirstPageAddress, v8::CrashKeyId::kMapSpaceFirstPageAddress, v8::CrashKeyId::kCodeSpaceFirstPageAddress,
  v8::CrashKeyId::kDumpType
}
 
enum  v8::PromiseHookType { v8::PromiseHookType::kInit, v8::PromiseHookType::kResolve, v8::PromiseHookType::kBefore, v8::PromiseHookType::kAfter }
 
enum  v8::PromiseRejectEvent { v8::kPromiseRejectWithNoHandler = 0, v8::kPromiseHandlerAddedAfterReject = 1, v8::kPromiseRejectAfterResolved = 2, v8::kPromiseResolveAfterResolved = 3 }
 
enum  v8::MicrotasksPolicy { v8::MicrotasksPolicy::kExplicit, v8::MicrotasksPolicy::kScoped, v8::MicrotasksPolicy::kAuto }
 
enum  v8::GCType {
  v8::kGCTypeScavenge = 1 << 0, v8::kGCTypeMarkSweepCompact = 1 << 1, v8::kGCTypeIncrementalMarking = 1 << 2, v8::kGCTypeProcessWeakCallbacks = 1 << 3,
  v8::kGCTypeAll
}
 
enum  v8::GCCallbackFlags {
  v8::kNoGCCallbackFlags = 0, v8::kGCCallbackFlagConstructRetainedObjectInfos = 1 << 1, v8::kGCCallbackFlagForced = 1 << 2, v8::kGCCallbackFlagSynchronousPhantomCallbackProcessing = 1 << 3,
  v8::kGCCallbackFlagCollectAllAvailableGarbage = 1 << 4, v8::kGCCallbackFlagCollectAllExternalMemory = 1 << 5, v8::kGCCallbackScheduleIdleGarbageCollection = 1 << 6
}
 
enum  v8::RAILMode : unsigned { v8::PERFORMANCE_RESPONSE, v8::PERFORMANCE_ANIMATION, v8::PERFORMANCE_IDLE, v8::PERFORMANCE_LOAD }
 
enum  v8::JitCodeEventOptions { v8::kJitCodeEventDefault = 0, v8::kJitCodeEventEnumExisting = 1 }
 
enum  v8::MemoryPressureLevel { v8::MemoryPressureLevel::kNone, v8::MemoryPressureLevel::kModerate, v8::MemoryPressureLevel::kCritical }
 
enum  v8::MeasureMemoryMode { v8::MeasureMemoryMode::kSummary, v8::MeasureMemoryMode::kDetailed }
 
enum  v8::MeasureMemoryExecution { v8::MeasureMemoryExecution::kDefault, v8::MeasureMemoryExecution::kEager }
 

Functions

void V8_EXPORT v8::RegisterExtension (std::unique_ptr< Extension >)
 
V8_INLINE Local< Primitive > v8::Undefined (Isolate *isolate)
 
V8_INLINE Local< Primitive > v8::Null (Isolate *isolate)
 
V8_INLINE Local< Boolean > v8::True (Isolate *isolate)
 
V8_INLINE Local< Boolean > v8::False (Isolate *isolate)
 
template<class T >
Maybe< T > v8::Nothing ()
 
template<class T >
Maybe< T > v8::Just (const T &t)
 
Maybe< void > v8::JustVoid ()
 

Macro Definition Documentation

◆ V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT

#define V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT   2

Definition at line 4934 of file v8.h.

◆ V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT

#define V8_ARRAY_BUFFER_VIEW_INTERNAL_FIELD_COUNT   2

Definition at line 5289 of file v8.h.

◆ V8_DECL_INTRINSIC

#define V8_DECL_INTRINSIC (   name,
  iname 
)    k##name,

Definition at line 5969 of file v8.h.

◆ V8_INTRINSICS_LIST

#define V8_INTRINSICS_LIST (   F)
Value:
F(ArrayProto_entries, array_entries_iterator) \
F(ArrayProto_forEach, array_for_each_iterator) \
F(ArrayProto_keys, array_keys_iterator) \
F(ArrayProto_values, array_values_iterator) \
F(ErrorPrototype, initial_error_prototype) \
F(IteratorPrototype, initial_iterator_prototype) \
F(ObjProto_valueOf, object_value_of_function)

Definition at line 5959 of file v8.h.

◆ V8_PROMISE_INTERNAL_FIELD_COUNT

#define V8_PROMISE_INTERNAL_FIELD_COUNT   0

Definition at line 4526 of file v8.h.