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

#include <v8-container.h>

Inheritance diagram for v8::Array:
Collaboration diagram for v8::Array:

Public Types

enum class  CallbackResult { kException , kBreak , kContinue }
 
using IterationCallback
 

Public Member Functions

uint32_t Length () const
 
Maybe< void > Iterate (Local< Context > context, IterationCallback callback, void *callback_data)
 
- 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 Local< ArrayNew (Isolate *isolate, int length=0)
 
static Local< ArrayNew (Isolate *isolate, Local< Value > *elements, size_t length)
 
static V8_INLINE ArrayCast (Value *value)
 
static MaybeLocal< ArrayNew (Local< Context > context, size_t length, std::function< MaybeLocal< v8::Value >()> next_value_callback)
 
- 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)
 

Private Member Functions

 Array ()
 

Static Private Member Functions

static void CheckCast (Value *obj)
 

Additional Inherited Members

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

Detailed Description

An instance of the built-in array constructor (ECMA-262, 15.4.2).

Definition at line 25 of file v8-container.h.

Member Typedef Documentation

◆ IterationCallback

Initial value:
CallbackResult (*)(uint32_t index,
Local<Value> element,
void* data)
union v8::internal::@341::BuiltinMetadata::KindSpecificData data
OptionalOpIndex index

Definition at line 69 of file v8-container.h.

Member Enumeration Documentation

◆ CallbackResult

enum class v8::Array::CallbackResult
strong
Enumerator
kException 
kBreak 
kContinue 

Definition at line 64 of file v8-container.h.

Constructor & Destructor Documentation

◆ Array()

v8::Array::Array ( )
private

Member Function Documentation

◆ Cast()

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

Definition at line 41 of file v8-container.h.

◆ CheckCast()

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

Definition at line 3951 of file api.cc.

Here is the call graph for this function:

◆ Iterate()

Maybe< void > v8::Array::Iterate ( Local< Context > context,
IterationCallback callback,
void * callback_data )

Calls {callback} for every element of this array, passing {callback_data} as its {data} parameter. This function will typically be faster than calling {Get()} repeatedly. As a consequence of being optimized for low overhead, the provided callback must adhere to the following restrictions:

  • It must not allocate any V8 objects and continue iterating; it may allocate (e.g. an error message/object) and then immediately terminate the iteration.
  • It must not modify the array being iterated.
  • It must not call back into V8 (unless it can guarantee that such a call does not violate the above restrictions, which is difficult).
  • The {Local<Value> element} must not "escape", i.e. must not be assigned to any other {Local}. Creating a {Global} from it, or updating a v8::TypecheckWitness with it, is safe. These restrictions may be lifted in the future if use cases arise that justify a slower but more robust implementation.

Returns {Nothing} on exception; use a {TryCatch} to catch and handle this exception. When the {callback} returns {kException}, iteration is terminated immediately, returning {Nothing}. By returning {kBreak}, the callback can request non-exceptional early termination of the iteration.

Definition at line 8342 of file api.cc.

Here is the call graph for this function:

◆ Length()

uint32_t v8::Array::Length ( ) const

Definition at line 8187 of file api.cc.

Here is the call graph for this function:

◆ New() [1/3]

Local< v8::Array > v8::Array::New ( Isolate * isolate,
int length = 0 )
static

Creates a JavaScript array with the given length. If the length is negative the returned array will have length 0.

Definition at line 8119 of file api.cc.

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

◆ New() [2/3]

Local< v8::Array > v8::Array::New ( Isolate * isolate,
Local< Value > * elements,
size_t length )
static

Creates a JavaScript array out of a Local<Value> array in C++ with a known length.

Definition at line 8132 of file api.cc.

Here is the call graph for this function:

◆ New() [3/3]

MaybeLocal< v8::Array > v8::Array::New ( Local< Context > context,
size_t length,
std::function< MaybeLocal< v8::Value >()> next_value_callback )
static

Creates a JavaScript array from a provided callback.

Parameters
contextThe v8::Context to create the array in.
lengthThe length of the array to be created.
next_value_callbackThe callback that is invoked to retrieve elements for the array. The embedder can signal that the array initialization should be aborted by throwing an exception and returning an empty MaybeLocal.
Returns
The v8::Array if all elements were constructed successfully and an empty MaybeLocal otherwise.

Definition at line 8151 of file api.cc.

Here is the call graph for this function:

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