v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::ArrayBuffer Class Reference

#include <v8-array-buffer.h>

Inheritance diagram for v8::ArrayBuffer:
Collaboration diagram for v8::ArrayBuffer:

Classes

class  Allocator
 

Public Member Functions

size_t ByteLength () const
 
size_t MaxByteLength () const
 
bool IsDetachable () const
 
bool WasDetached () const
 
 V8_DEPRECATED ("Use the version which takes a key parameter (passing a null handle is " "ok).") void Detach()
 
V8_WARN_UNUSED_RESULT Maybe< bool > Detach (v8::Local< v8::Value > key)
 
void SetDetachKey (v8::Local< v8::Value > key)
 
std::shared_ptr< BackingStoreGetBackingStore ()
 
bool IsResizableByUserJavaScript () const
 
void * Data () const
 
- Public Member Functions inherited from v8::Object
V8_WARN_UNUSED_RESULT Maybe< bool > Set (Local< Context > context, Local< Value > key, Local< Value > value)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Set (Local< Context > context, Local< Value > key, Local< Value > value, MaybeLocal< Object > receiver)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Set (Local< Context > context, uint32_t index, Local< Value > value)
 
V8_WARN_UNUSED_RESULT Maybe< bool > CreateDataProperty (Local< Context > context, Local< Name > key, Local< Value > value)
 
V8_WARN_UNUSED_RESULT Maybe< bool > CreateDataProperty (Local< Context > context, uint32_t index, Local< Value > value)
 
V8_WARN_UNUSED_RESULT Maybe< bool > DefineOwnProperty (Local< Context > context, Local< Name > key, Local< Value > value, PropertyAttribute attributes=None)
 
V8_WARN_UNUSED_RESULT Maybe< bool > DefineProperty (Local< Context > context, Local< Name > key, PropertyDescriptor &descriptor)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGet (Local< Context > context, Local< Value > key)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGet (Local< Context > context, Local< Value > key, MaybeLocal< Object > receiver)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGet (Local< Context > context, uint32_t index)
 
V8_WARN_UNUSED_RESULT Maybe< PropertyAttributeGetPropertyAttributes (Local< Context > context, Local< Value > key)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGetOwnPropertyDescriptor (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Has (Local< Context > context, Local< Value > key)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Delete (Local< Context > context, Local< Value > key)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Has (Local< Context > context, uint32_t index)
 
V8_WARN_UNUSED_RESULT Maybe< bool > Delete (Local< Context > context, uint32_t index)
 
void SetAccessorProperty (Local< Name > name, Local< Function > getter, Local< Function > setter=Local< Function >(), PropertyAttribute attributes=None)
 
V8_WARN_UNUSED_RESULT Maybe< bool > SetNativeDataProperty (Local< Context > context, Local< Name > name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter=nullptr, Local< Value > data=Local< Value >(), PropertyAttribute attributes=None, SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
 
V8_WARN_UNUSED_RESULT Maybe< bool > SetLazyDataProperty (Local< Context > context, Local< Name > name, AccessorNameGetterCallback getter, Local< Value > data=Local< Value >(), PropertyAttribute attributes=None, SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
 
Maybe< bool > HasPrivate (Local< Context > context, Local< Private > key)
 
Maybe< bool > SetPrivate (Local< Context > context, Local< Private > key, Local< Value > value)
 
Maybe< bool > DeletePrivate (Local< Context > context, Local< Private > key)
 
MaybeLocal< ValueGetPrivate (Local< Context > context, Local< Private > key)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ArrayGetPropertyNames (Local< Context > context)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ArrayGetPropertyNames (Local< Context > context, KeyCollectionMode mode, PropertyFilter property_filter, IndexFilter index_filter, KeyConversionMode key_conversion=KeyConversionMode::kKeepNumbers)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ArrayGetOwnPropertyNames (Local< Context > context)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ArrayGetOwnPropertyNames (Local< Context > context, PropertyFilter filter, KeyConversionMode key_conversion=KeyConversionMode::kKeepNumbers)
 
 V8_DEPRECATE_SOON ("V8 will stop providing access to hidden prototype (i.e. " "JSGlobalObject). Use GetPrototypeV2() instead. " "See http://crbug.com/333672197.") Local< Value > GetPrototype()
 
Local< ValueGetPrototypeV2 ()
 
 V8_DEPRECATE_SOON ("V8 will stop providing access to hidden prototype (i.e. " "JSGlobalObject). Use SetPrototypeV2() instead. " "See http://crbug.com/333672197.") V8_WARN_UNUSED_RESULT Maybe< bool > SetPrototype(Local< Context > context
 
V8_WARN_UNUSED_RESULT Maybe< bool > SetPrototypeV2 (Local< Context > context, Local< Value > prototype)
 
Local< ObjectFindInstanceInPrototypeChain (Local< FunctionTemplate > tmpl)
 
V8_WARN_UNUSED_RESULT MaybeLocal< StringObjectProtoToString (Local< Context > context)
 
Local< StringGetConstructorName ()
 
Maybe< bool > SetIntegrityLevel (Local< Context > context, IntegrityLevel level)
 
int InternalFieldCount () const
 
V8_INLINE Local< DataGetInternalField (int index)
 
void SetInternalField (int index, Local< Data > data)
 
V8_INLINE void * GetAlignedPointerFromInternalField (int index)
 
V8_INLINE void * GetAlignedPointerFromInternalField (v8::Isolate *isolate, int index)
 
void SetAlignedPointerInInternalField (int index, void *value)
 
void SetAlignedPointerInInternalFields (int argc, int indices[], void *values[])
 
V8_WARN_UNUSED_RESULT Maybe< bool > HasOwnProperty (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT Maybe< bool > HasOwnProperty (Local< Context > context, uint32_t index)
 
V8_WARN_UNUSED_RESULT Maybe< bool > HasRealNamedProperty (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT Maybe< bool > HasRealIndexedProperty (Local< Context > context, uint32_t index)
 
V8_WARN_UNUSED_RESULT Maybe< bool > HasRealNamedCallbackProperty (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGetRealNamedPropertyInPrototypeChain (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT Maybe< PropertyAttributeGetRealNamedPropertyAttributesInPrototypeChain (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueGetRealNamedProperty (Local< Context > context, Local< Name > key)
 
V8_WARN_UNUSED_RESULT Maybe< PropertyAttributeGetRealNamedPropertyAttributes (Local< Context > context, Local< Name > key)
 
bool HasNamedLookupInterceptor () const
 
bool HasIndexedLookupInterceptor () const
 
int GetIdentityHash ()
 
Local< ObjectClone (v8::Isolate *isolate)
 
Local< ObjectClone ()
 
MaybeLocal< ContextGetCreationContext (v8::Isolate *isolate)
 
MaybeLocal< ContextGetCreationContext ()
 
Local< ContextGetCreationContextChecked (v8::Isolate *isolate)
 
Local< ContextGetCreationContextChecked ()
 
void * GetAlignedPointerFromEmbedderDataInCreationContext (v8::Isolate *isolate, int index)
 
void * GetAlignedPointerFromEmbedderDataInCreationContext (int index)
 
bool IsCallable () const
 
bool IsConstructor () const
 
bool IsApiWrapper () const
 
bool IsUndetectable () const
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueCallAsFunction (Local< Context > context, Local< Value > recv, int argc, Local< Value > argv[])
 
V8_WARN_UNUSED_RESULT MaybeLocal< ValueCallAsConstructor (Local< Context > context, int argc, Local< Value > argv[])
 
IsolateGetIsolate ()
 
MaybeLocal< ArrayPreviewEntries (bool *is_key_value)
 
bool IsCodeLike (Isolate *isolate) const
 
template<CppHeapPointerTag tag, typename T >
TUnwrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper)
 
template<CppHeapPointerTag tag, typename T >
TUnwrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper)
 
template<CppHeapPointerTag tag, typename T >
TUnwrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper)
 
template<typename T >
TUnwrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<typename T >
TUnwrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<typename T >
TUnwrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<CppHeapPointerTag tag>
void Wrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, void *wrappable)
 
template<CppHeapPointerTag tag>
void Wrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, void *wrappable)
 
template<CppHeapPointerTag tag>
void Wrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, void *wrappable)
 
- Public Member Functions inherited from v8::Value
V8_INLINE bool IsUndefined () const
 
V8_INLINE bool IsNull () const
 
V8_INLINE bool IsNullOrUndefined () const
 
V8_INLINE bool IsTrue () const
 
V8_INLINE bool IsFalse () const
 
bool IsName () const
 
V8_INLINE bool IsString () const
 
bool IsSymbol () const
 
bool IsFunction () const
 
bool IsArray () const
 
bool IsObject () const
 
bool IsBigInt () const
 
bool IsBoolean () const
 
bool IsNumber () const
 
bool IsExternal () const
 
bool IsInt32 () const
 
bool IsUint32 () const
 
bool IsDate () const
 
bool IsArgumentsObject () const
 
bool IsBigIntObject () const
 
bool IsBooleanObject () const
 
bool IsNumberObject () const
 
bool IsStringObject () const
 
bool IsSymbolObject () const
 
bool IsNativeError () const
 
bool IsRegExp () const
 
bool IsAsyncFunction () const
 
bool IsGeneratorFunction () const
 
bool IsGeneratorObject () const
 
bool IsPromise () const
 
bool IsMap () const
 
bool IsSet () const
 
bool IsMapIterator () const
 
bool IsSetIterator () const
 
bool IsWeakMap () const
 
bool IsWeakSet () const
 
bool IsWeakRef () const
 
bool IsArrayBuffer () const
 
bool IsArrayBufferView () const
 
bool IsTypedArray () const
 
bool IsUint8Array () const
 
bool IsUint8ClampedArray () const
 
bool IsInt8Array () const
 
bool IsUint16Array () const
 
bool IsInt16Array () const
 
bool IsUint32Array () const
 
bool IsInt32Array () const
 
bool IsFloat16Array () const
 
bool IsFloat32Array () const
 
bool IsFloat64Array () const
 
bool IsBigInt64Array () const
 
bool IsBigUint64Array () const
 
bool IsDataView () const
 
bool IsSharedArrayBuffer () const
 
bool IsProxy () const
 
bool IsWasmMemoryObject () const
 
bool IsWasmMemoryMapDescriptor () const
 
bool IsWasmModuleObject () const
 
bool IsWasmNull () const
 
bool IsModuleNamespaceObject () const
 
bool IsPrimitive () const
 
V8_WARN_UNUSED_RESULT MaybeLocal< PrimitiveToPrimitive (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< NumericToNumeric (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< BigIntToBigInt (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< NumberToNumber (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< StringToString (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< StringToDetailString (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< ObjectToObject (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< IntegerToInteger (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< Uint32ToUint32 (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< Int32ToInt32 (Local< Context > context) const
 
Local< BooleanToBoolean (Isolate *isolate) const
 
V8_WARN_UNUSED_RESULT MaybeLocal< Uint32ToArrayIndex (Local< Context > context) const
 
bool BooleanValue (Isolate *isolate) const
 
V8_WARN_UNUSED_RESULT Maybe< double > NumberValue (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT Maybe< int64_t > IntegerValue (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT Maybe< uint32_t > Uint32Value (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT Maybe< int32_t > Int32Value (Local< Context > context) const
 
V8_WARN_UNUSED_RESULT Maybe< bool > Equals (Local< Context > context, Local< Value > that) const
 
bool StrictEquals (Local< Value > that) const
 
bool SameValue (Local< Value > that) const
 
Local< StringTypeOf (Isolate *)
 
Maybe< bool > InstanceOf (Local< Context > context, Local< Object > object)
 
uint32_t GetHash ()
 
template<>
V8_INLINE ValueCast (Data *value)
 
- Public Member Functions inherited from v8::Data
bool IsValue () const
 
bool IsModule () const
 
bool IsModuleRequest () const
 
bool IsFixedArray () const
 
bool IsPrivate () const
 
bool IsObjectTemplate () const
 
bool IsFunctionTemplate () const
 
bool IsContext () const
 

Static Public Member Functions

static MaybeLocal< ArrayBufferMaybeNew (Isolate *isolate, size_t byte_length, BackingStoreInitializationMode initialization_mode=BackingStoreInitializationMode::kZeroInitialized)
 
static Local< ArrayBufferNew (Isolate *isolate, size_t byte_length, BackingStoreInitializationMode initialization_mode=BackingStoreInitializationMode::kZeroInitialized)
 
static Local< ArrayBufferNew (Isolate *isolate, std::shared_ptr< BackingStore > backing_store)
 
static std::unique_ptr< BackingStoreNewBackingStore (Isolate *isolate, size_t byte_length, BackingStoreInitializationMode initialization_mode=BackingStoreInitializationMode::kZeroInitialized, BackingStoreOnFailureMode on_failure=BackingStoreOnFailureMode::kOutOfMemory)
 
static std::unique_ptr< BackingStoreNewBackingStore (void *data, size_t byte_length, v8::BackingStore::DeleterCallback deleter, void *deleter_data)
 
static std::unique_ptr< BackingStoreNewResizableBackingStore (size_t byte_length, size_t max_byte_length)
 
static V8_INLINE ArrayBufferCast (Value *value)
 
- Static Public Member Functions inherited from v8::Object
static V8_INLINE int InternalFieldCount (const PersistentBase< Object > &object)
 
static V8_INLINE int InternalFieldCount (const BasicTracedReference< Object > &object)
 
static V8_INLINE void * GetAlignedPointerFromInternalField (const PersistentBase< Object > &object, int index)
 
static V8_INLINE void * GetAlignedPointerFromInternalField (const BasicTracedReference< Object > &object, int index)
 
template<CppHeapPointerTag tag, typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper)
 
template<CppHeapPointerTag tag, typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper)
 
template<CppHeapPointerTag tag, typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper)
 
template<typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<typename T = void>
static V8_INLINE TUnwrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<CppHeapPointerTag tag>
static V8_INLINE void Wrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, void *wrappable)
 
template<CppHeapPointerTag tag>
static V8_INLINE void Wrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, void *wrappable)
 
template<CppHeapPointerTag tag>
static V8_INLINE void Wrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, void *wrappable)
 
static V8_INLINE void Wrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, void *wrappable, CppHeapPointerTag tag)
 
static V8_INLINE void Wrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, void *wrappable, CppHeapPointerTag tag)
 
static V8_INLINE void Wrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, void *wrappable, CppHeapPointerTag tag)
 
static V8_INLINE MaybeLocal< ContextGetCreationContext (v8::Isolate *isolate, const PersistentBase< Object > &object)
 
static V8_INLINE MaybeLocal< ContextGetCreationContext (const PersistentBase< Object > &object)
 
static V8_INLINE IsolateGetIsolate (const TracedReference< Object > &handle)
 
static Local< ObjectNew (Isolate *isolate)
 
static Local< ObjectNew (Isolate *isolate, Local< Value > prototype_or_null, Local< Name > *names, Local< Value > *values, size_t length)
 
static V8_INLINE ObjectCast (Value *obj)
 
- Static Public Member Functions inherited from v8::Value
template<class T >
static V8_INLINE ValueCast (T *value)
 

Static Public Attributes

static constexpr int kInternalFieldCount
 
static constexpr int kEmbedderFieldCount = kInternalFieldCount
 
static constexpr size_t kMaxByteLength
 

Private Member Functions

 ArrayBuffer ()
 

Static Private Member Functions

static void CheckCast (Value *obj)
 

Friends

class TypedArray
 

Additional Inherited Members

- Public Attributes inherited from v8::Object
Local< Valueprototype
 

Detailed Description

An instance of the built-in ArrayBuffer constructor (ES6 draft 15.13.5).

Definition at line 131 of file v8-array-buffer.h.

Constructor & Destructor Documentation

◆ ArrayBuffer()

v8::ArrayBuffer::ArrayBuffer ( )
private

Member Function Documentation

◆ ByteLength()

size_t v8::ArrayBuffer::ByteLength ( ) const

Data length in bytes.

Definition at line 9000 of file api.cc.

Here is the call graph for this function:

◆ Cast()

static V8_INLINE ArrayBuffer * v8::ArrayBuffer::Cast ( Value * value)
inlinestatic

Definition at line 380 of file v8-array-buffer.h.

◆ CheckCast()

void v8::ArrayBuffer::CheckCast ( Value * obj)
staticprivate

Definition at line 4061 of file api.cc.

Here is the call graph for this function:

◆ Data()

void * v8::ArrayBuffer::Data ( ) const

More efficient shortcut for GetBackingStore()->Data(). The returned pointer is valid as long as the ArrayBuffer is alive.

Definition at line 4039 of file api.cc.

Here is the call graph for this function:

◆ Detach()

void v8::ArrayBuffer::Detach ( v8::Local< v8::Value > key)

Detaches this ArrayBuffer and all its views (typed arrays). Detaching sets the byte length of the buffer and all typed arrays to zero, preventing JavaScript from ever accessing underlying backing store. ArrayBuffer should have been externalized and must be detachable. Returns Nothing if the key didn't pass the [[ArrayBufferDetachKey]] check, Just(true) otherwise.

Definition at line 8959 of file api.cc.

Here is the call graph for this function:

◆ GetBackingStore()

std::shared_ptr< v8::BackingStore > v8::ArrayBuffer::GetBackingStore ( )

Get a shared pointer to the backing store of this array buffer. This pointer coordinates the lifetime management of the internal storage with any live ArrayBuffers on the heap, even across isolates. The embedder should not attempt to manage lifetime of the storage through other means.

The returned shared pointer will not be empty, even if the ArrayBuffer has been detached. Use |WasDetached| to tell if it has been detached instead.

Definition at line 4028 of file api.cc.

Here is the call graph for this function:

◆ IsDetachable()

bool v8::ArrayBuffer::IsDetachable ( ) const

Returns true if this ArrayBuffer may be detached.

Definition at line 8944 of file api.cc.

Here is the call graph for this function:

◆ IsResizableByUserJavaScript()

bool v8::ArrayBuffer::IsResizableByUserJavaScript ( ) const

More efficient shortcut for GetBackingStore()->IsResizableByUserJavaScript().

Definition at line 4043 of file api.cc.

Here is the call graph for this function:

◆ MaxByteLength()

size_t v8::ArrayBuffer::MaxByteLength ( ) const

Maximum length in bytes.

Definition at line 9004 of file api.cc.

Here is the call graph for this function:

◆ MaybeNew()

MaybeLocal< ArrayBuffer > v8::ArrayBuffer::MaybeNew ( Isolate * isolate,
size_t byte_length,
BackingStoreInitializationMode initialization_mode = BackingStoreInitializationMode::kZeroInitialized )
static

Attempt to create a new ArrayBuffer. Allocate |byte_length| bytes. Allocated memory will be owned by a created ArrayBuffer and will be deallocated when it is garbage-collected, unless the object is externalized. If allocation fails, the Maybe returned will be empty.

Definition at line 9021 of file api.cc.

Here is the call graph for this function:

◆ New() [1/2]

Local< ArrayBuffer > v8::ArrayBuffer::New ( Isolate * isolate,
size_t byte_length,
BackingStoreInitializationMode initialization_mode = BackingStoreInitializationMode::kZeroInitialized )
static

Create a new ArrayBuffer. Allocate |byte_length| bytes, which are either zero-initialized or uninitialized. Allocated memory will be owned by a created ArrayBuffer and will be deallocated when it is garbage-collected, unless the object is externalized.

Definition at line 9044 of file api.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ New() [2/2]

Local< ArrayBuffer > v8::ArrayBuffer::New ( Isolate * isolate,
std::shared_ptr< BackingStore > backing_store )
static

Create a new ArrayBuffer with an existing backing store. The created array keeps a reference to the backing store until the array is garbage collected. Note that the IsExternal bit does not affect this reference from the array to the backing store.

In future IsExternal bit will be removed. Until then the bit is set as follows. If the backing store does not own the underlying buffer, then the array is created in externalized state. Otherwise, the array is created in internalized state. In the latter case the array can be transitioned to the externalized state using Externalize(backing_store).

Definition at line 9062 of file api.cc.

Here is the call graph for this function:

◆ NewBackingStore() [1/2]

std::unique_ptr< v8::BackingStore > v8::ArrayBuffer::NewBackingStore ( Isolate * isolate,
size_t byte_length,
BackingStoreInitializationMode initialization_mode = BackingStoreInitializationMode::kZeroInitialized,
BackingStoreOnFailureMode on_failure = BackingStoreOnFailureMode::kOutOfMemory )
static

Returns a new standalone BackingStore that is allocated using the array buffer allocator of the isolate. The allocation can either be zero initialized, or uninitialized. The result can be later passed to ArrayBuffer::New.

If the allocator returns nullptr, then the function may cause GCs in the given isolate and re-try the allocation.

If GCs do not help and on_failure is kOutOfMemory, then the function will crash with an out-of-memory error.

Otherwise if GCs do not help (or the allocation is too large for GCs to help) and on_failure is kReturnNull, then a null result is returned.

Definition at line 9079 of file api.cc.

◆ NewBackingStore() [2/2]

std::unique_ptr< v8::BackingStore > v8::ArrayBuffer::NewBackingStore ( void * data,
size_t byte_length,
v8::BackingStore::DeleterCallback deleter,
void * deleter_data )
static

Returns a new standalone BackingStore that takes over the ownership of the given buffer. The destructor of the BackingStore invokes the given deleter callback.

The result can be later passed to ArrayBuffer::New. The raw pointer to the buffer must not be passed again to any V8 API function.

Definition at line 9109 of file api.cc.

Here is the call graph for this function:

◆ NewResizableBackingStore()

std::unique_ptr< BackingStore > v8::ArrayBuffer::NewResizableBackingStore ( size_t byte_length,
size_t max_byte_length )
static

Returns a new resizable standalone BackingStore that is allocated using the array buffer allocator of the isolate. The result can be later passed to ArrayBuffer::New.

|byte_length| must be <= |max_byte_length|.

This function is usable without an isolate. Unlike |NewBackingStore| calls with an isolate, GCs cannot be triggered, and there are no retries. Allocation failure will cause the function to crash with an out-of-memory error.

Definition at line 9130 of file api.cc.

Here is the call graph for this function:

◆ SetDetachKey()

void v8::ArrayBuffer::SetDetachKey ( v8::Local< v8::Value > key)

Sets the ArrayBufferDetachKey.

Definition at line 8994 of file api.cc.

Here is the call graph for this function:

◆ V8_DEPRECATED()

v8::ArrayBuffer::V8_DEPRECATED ( "Use the version which takes a key parameter (passing a null handle is " "ok)." )

Detaches this ArrayBuffer and all its views (typed arrays). Detaching sets the byte length of the buffer and all typed arrays to zero, preventing JavaScript from ever accessing underlying backing store. ArrayBuffer should have been externalized and must be detachable.

◆ WasDetached()

bool v8::ArrayBuffer::WasDetached ( ) const

Returns true if this ArrayBuffer has been detached.

Definition at line 8948 of file api.cc.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ TypedArray

friend class TypedArray
friend

Definition at line 405 of file v8-array-buffer.h.

Member Data Documentation

◆ kEmbedderFieldCount

int v8::ArrayBuffer::kEmbedderFieldCount = kInternalFieldCount
staticconstexpr

Definition at line 389 of file v8-array-buffer.h.

◆ kInternalFieldCount

int v8::ArrayBuffer::kInternalFieldCount
staticconstexpr
Initial value:
=
V8_ARRAY_BUFFER_INTERNAL_FIELD_COUNT

Definition at line 387 of file v8-array-buffer.h.

◆ kMaxByteLength

size_t v8::ArrayBuffer::kMaxByteLength
staticconstexpr
Initial value:
=
static_cast<size_t>((uint64_t{1} << 53) - 1)

Definition at line 398 of file v8-array-buffer.h.


The documentation for this class was generated from the following files: