Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
v8::Object Class Reference

#include <v8-object.h>

Inheritance diagram for v8::Object:
[legend]
Collaboration diagram for v8::Object:
[legend]

Public Member Functions

Maybe< bool > Set (Local< Context > context, Local< Value > key, Local< Value > value)
 
Maybe< bool > Set (Local< Context > context, Local< Value > key, Local< Value > value, MaybeLocal< Object > receiver)
 
Maybe< bool > Set (Local< Context > context, uint32_t index, Local< Value > value)
 
Maybe< bool > CreateDataProperty (Local< Context > context, Local< Name > key, Local< Value > value)
 
Maybe< bool > CreateDataProperty (Local< Context > context, uint32_t index, Local< Value > value)
 
Maybe< bool > DefineOwnProperty (Local< Context > context, Local< Name > key, Local< Value > value, PropertyAttribute attributes=None)
 
Maybe< bool > DefineProperty (Local< Context > context, Local< Name > key, PropertyDescriptor &descriptor)
 
MaybeLocal< ValueGet (Local< Context > context, Local< Value > key)
 
MaybeLocal< ValueGet (Local< Context > context, Local< Value > key, MaybeLocal< Object > receiver)
 
MaybeLocal< ValueGet (Local< Context > context, uint32_t index)
 
Maybe< PropertyAttributeGetPropertyAttributes (Local< Context > context, Local< Value > key)
 
MaybeLocal< ValueGetOwnPropertyDescriptor (Local< Context > context, Local< Name > key)
 
Maybe< bool > Has (Local< Context > context, Local< Value > key)
 
Maybe< bool > Delete (Local< Context > context, Local< Value > key)
 
Maybe< bool > Has (Local< Context > context, uint32_t index)
 
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)
 
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)
 
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)
 
MaybeLocal< ArrayGetPropertyNames (Local< Context > context)
 
MaybeLocal< ArrayGetPropertyNames (Local< Context > context, KeyCollectionMode mode, PropertyFilter property_filter, IndexFilter index_filter, KeyConversionMode key_conversion=KeyConversionMode::kKeepNumbers)
 
MaybeLocal< ArrayGetOwnPropertyNames (Local< Context > context)
 
MaybeLocal< ArrayGetOwnPropertyNames (Local< Context > context, PropertyFilter filter, KeyConversionMode key_conversion=KeyConversionMode::kKeepNumbers)
 
Local< ValueGetPrototype ()
 
Local< ValueGetPrototypeV2 ()
 
Maybe< bool > SetPrototype (Local< Context > context, Local< Value > prototype)
 
Maybe< bool > SetPrototypeV2 (Local< Context > context, Local< Value > prototype)
 
Local< ObjectFindInstanceInPrototypeChain (Local< FunctionTemplate > tmpl)
 
MaybeLocal< StringObjectProtoToString (Local< Context > context)
 
Local< StringGetConstructorName ()
 
Maybe< bool > SetIntegrityLevel (Local< Context > context, IntegrityLevel level)
 
int InternalFieldCount () const
 
Local< DataGetInternalField (int index)
 
void SetInternalField (int index, Local< Data > data)
 
void * GetAlignedPointerFromInternalField (int index)
 
void * GetAlignedPointerFromInternalField (v8::Isolate *isolate, int index)
 
void SetAlignedPointerInInternalField (int index, void *value)
 
void SetAlignedPointerInInternalFields (int argc, int indices[], void *values[])
 
Maybe< bool > HasOwnProperty (Local< Context > context, Local< Name > key)
 
Maybe< bool > HasOwnProperty (Local< Context > context, uint32_t index)
 
Maybe< bool > HasRealNamedProperty (Local< Context > context, Local< Name > key)
 
Maybe< bool > HasRealIndexedProperty (Local< Context > context, uint32_t index)
 
Maybe< bool > HasRealNamedCallbackProperty (Local< Context > context, Local< Name > key)
 
MaybeLocal< ValueGetRealNamedPropertyInPrototypeChain (Local< Context > context, Local< Name > key)
 
Maybe< PropertyAttributeGetRealNamedPropertyAttributesInPrototypeChain (Local< Context > context, Local< Name > key)
 
MaybeLocal< ValueGetRealNamedProperty (Local< Context > context, Local< Name > key)
 
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
 
MaybeLocal< ValueCallAsFunction (Local< Context > context, Local< Value > recv, int argc, Local< Value > argv[])
 
MaybeLocal< ValueCallAsConstructor (Local< Context > context, int argc, Local< Value > argv[])
 
IsolateGetIsolate ()
 
MaybeLocal< ArrayPreviewEntries (bool *is_key_value)
 
bool IsCodeLike (Isolate *isolate) const
 
- Public Member Functions inherited from v8::Value
bool IsUndefined () const
 
bool IsNull () const
 
bool IsNullOrUndefined () const
 
bool IsTrue () const
 
bool IsFalse () const
 
bool IsName () const
 
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 IsWasmModuleObject () const
 
bool IsWasmNull () const
 
bool IsModuleNamespaceObject () const
 
MaybeLocal< PrimitiveToPrimitive (Local< Context > context) const
 
MaybeLocal< NumericToNumeric (Local< Context > context) const
 
MaybeLocal< BigIntToBigInt (Local< Context > context) const
 
MaybeLocal< NumberToNumber (Local< Context > context) const
 
MaybeLocal< StringToString (Local< Context > context) const
 
MaybeLocal< StringToDetailString (Local< Context > context) const
 
MaybeLocal< ObjectToObject (Local< Context > context) const
 
MaybeLocal< IntegerToInteger (Local< Context > context) const
 
MaybeLocal< Uint32ToUint32 (Local< Context > context) const
 
MaybeLocal< Int32ToInt32 (Local< Context > context) const
 
Local< BooleanToBoolean (Isolate *isolate) const
 
MaybeLocal< Uint32ToArrayIndex (Local< Context > context) const
 
bool BooleanValue (Isolate *isolate) const
 
Maybe< double > NumberValue (Local< Context > context) const
 
Maybe< int64_t > IntegerValue (Local< Context > context) const
 
Maybe< uint32_t > Uint32Value (Local< Context > context) const
 
Maybe< int32_t > Int32Value (Local< Context > context) const
 
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)
 
template<>
ValueCast (Data *value)
 
- Public Member Functions inherited from v8::Data
bool IsValue () const
 
bool IsModule () const
 
bool IsFixedArray () const
 
bool IsPrivate () const
 
bool IsObjectTemplate () const
 
bool IsFunctionTemplate () const
 
bool IsContext () const
 

Static Public Member Functions

static int InternalFieldCount (const PersistentBase< Object > &object)
 
static int InternalFieldCount (const BasicTracedReference< Object > &object)
 
static void * GetAlignedPointerFromInternalField (const PersistentBase< Object > &object, int index)
 
static void * GetAlignedPointerFromInternalField (const BasicTracedReference< Object > &object, int index)
 
template<CppHeapPointerTag tag, typename T = void>
static T * Unwrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper)
 
template<CppHeapPointerTag tag, typename T = void>
static T * Unwrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper)
 
template<CppHeapPointerTag tag, typename T = void>
static T * Unwrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper)
 
template<typename T = void>
static T * Unwrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<typename T = void>
static T * Unwrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<typename T = void>
static T * Unwrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, CppHeapPointerTagRange tag_range)
 
template<CppHeapPointerTag tag>
static void Wrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, void *wrappable)
 
template<CppHeapPointerTag tag>
static void Wrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, void *wrappable)
 
template<CppHeapPointerTag tag>
static void Wrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, void *wrappable)
 
static void Wrap (v8::Isolate *isolate, const v8::Local< v8::Object > &wrapper, void *wrappable, CppHeapPointerTag tag)
 
static void Wrap (v8::Isolate *isolate, const PersistentBase< Object > &wrapper, void *wrappable, CppHeapPointerTag tag)
 
static void Wrap (v8::Isolate *isolate, const BasicTracedReference< Object > &wrapper, void *wrappable, CppHeapPointerTag tag)
 
static MaybeLocal< ContextGetCreationContext (v8::Isolate *isolate, const PersistentBase< Object > &object)
 
static MaybeLocal< ContextGetCreationContext (const PersistentBase< Object > &object)
 
static 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 ObjectCast (Value *obj)
 
- Static Public Member Functions inherited from v8::Value
template<class T >
static ValueCast (T *value)
 

Detailed Description

A JavaScript object (ECMA-262, 4.3.3)

Examples
process.cc.

Member Function Documentation

◆ CallAsConstructor()

MaybeLocal< Value > v8::Object::CallAsConstructor ( Local< Context context,
int  argc,
Local< Value argv[] 
)

Call an Object as a constructor if a callback is set by the ObjectTemplate::SetCallAsFunctionHandler method. Note: This method behaves like the Function::NewInstance method.

◆ CallAsFunction()

MaybeLocal< Value > v8::Object::CallAsFunction ( Local< Context context,
Local< Value recv,
int  argc,
Local< Value argv[] 
)

Call an Object as a function if a callback is set by the ObjectTemplate::SetCallAsFunctionHandler method.

◆ Cast()

Object * v8::Object::Cast ( v8::Value value)
inlinestatic

◆ Clone() [1/2]

Local< Object > v8::Object::Clone ( )

◆ Clone() [2/2]

Local< Object > v8::Object::Clone ( v8::Isolate isolate)

Clone this object with a fast but shallow copy. Values will point to the same values as the original object.

Prefer using version with Isolate parameter.

◆ CreateDataProperty() [1/2]

Maybe< bool > v8::Object::CreateDataProperty ( Local< Context context,
Local< Name key,
Local< Value value 
)

Implements CreateDataProperty(O, P, V), see https://tc39.es/ecma262/#sec-createdataproperty.

Defines a configurable, writable, enumerable property with the given value on the object unless the property already exists and is not configurable or the object is not extensible.

Returns true on success.

◆ CreateDataProperty() [2/2]

Maybe< bool > v8::Object::CreateDataProperty ( Local< Context context,
uint32_t  index,
Local< Value value 
)

◆ DefineOwnProperty()

Maybe< bool > v8::Object::DefineOwnProperty ( Local< Context context,
Local< Name key,
Local< Value value,
PropertyAttribute  attributes = None 
)

Implements [[DefineOwnProperty]] for data property case, see https://tc39.es/ecma262/#table-essential-internal-methods.

In general, CreateDataProperty will be faster, however, does not allow for specifying attributes.

Returns true on success.

◆ DefineProperty()

Maybe< bool > v8::Object::DefineProperty ( Local< Context context,
Local< Name key,
PropertyDescriptor descriptor 
)

Implements Object.defineProperty(O, P, Attributes), see https://tc39.es/ecma262/#sec-object.defineproperty.

The defineProperty function is used to add an own property or update the attributes of an existing own property of an object.

Both data and accessor descriptors can be used.

In general, CreateDataProperty is faster, however, does not allow for specifying attributes or an accessor descriptor.

The PropertyDescriptor can change when redefining a property.

Returns true on success.

◆ Delete() [1/2]

Maybe< bool > v8::Object::Delete ( Local< Context context,
Local< Value key 
)

◆ Delete() [2/2]

Maybe< bool > v8::Object::Delete ( Local< Context context,
uint32_t  index 
)

◆ DeletePrivate()

Maybe< bool > v8::Object::DeletePrivate ( Local< Context context,
Local< Private key 
)

◆ FindInstanceInPrototypeChain()

Local< Object > v8::Object::FindInstanceInPrototypeChain ( Local< FunctionTemplate tmpl)

Finds an instance of the given function template in the prototype chain.

◆ Get() [1/3]

MaybeLocal< Value > v8::Object::Get ( Local< Context context,
Local< Value key 
)

◆ Get() [2/3]

MaybeLocal< Value > v8::Object::Get ( Local< Context context,
Local< Value key,
MaybeLocal< Object receiver 
)

◆ Get() [3/3]

MaybeLocal< Value > v8::Object::Get ( Local< Context context,
uint32_t  index 
)

◆ GetAlignedPointerFromEmbedderDataInCreationContext() [1/2]

void * v8::Object::GetAlignedPointerFromEmbedderDataInCreationContext ( int  index)

◆ GetAlignedPointerFromEmbedderDataInCreationContext() [2/2]

void * v8::Object::GetAlignedPointerFromEmbedderDataInCreationContext ( v8::Isolate isolate,
int  index 
)

Gets the context in which the object was created (see GetCreationContext()) and if it's available reads respective embedder field value. If the context can't be obtained nullptr is returned. Basically it's a shortcut for obj->GetCreationContext().GetAlignedPointerFromEmbedderData(index) which doesn't create a handle for Context object on the way and doesn't try to expand the embedder data attached to the context. In case the Local<Context> is already available because of other reasons, it's fine to keep using Context::GetAlignedPointerFromEmbedderData().

Prefer using version with Isolate parameter if you have an Isolate, otherwise use the other one.

◆ GetAlignedPointerFromInternalField() [1/4]

static void * v8::Object::GetAlignedPointerFromInternalField ( const BasicTracedReference< Object > &  object,
int  index 
)
inlinestatic

Same as above, but works for TracedReference.

◆ GetAlignedPointerFromInternalField() [2/4]

static void * v8::Object::GetAlignedPointerFromInternalField ( const PersistentBase< Object > &  object,
int  index 
)
inlinestatic

Same as above, but works for PersistentBase.

◆ GetAlignedPointerFromInternalField() [3/4]

void * v8::Object::GetAlignedPointerFromInternalField ( int  index)
inline

Gets a 2-byte-aligned native pointer from an internal field. This field must have been set by SetAlignedPointerInInternalField, everything else leads to undefined behavior.

Here is the call graph for this function:

◆ GetAlignedPointerFromInternalField() [4/4]

void * v8::Object::GetAlignedPointerFromInternalField ( v8::Isolate isolate,
int  index 
)
inline
Here is the call graph for this function:

◆ GetConstructorName()

Local< String > v8::Object::GetConstructorName ( )

Returns the name of the function invoked as a constructor for this object.

◆ GetCreationContext() [1/4]

MaybeLocal< Context > v8::Object::GetCreationContext ( )

◆ GetCreationContext() [2/4]

static MaybeLocal< Context > v8::Object::GetCreationContext ( const PersistentBase< Object > &  object)
inlinestatic

◆ GetCreationContext() [3/4]

MaybeLocal< Context > v8::Object::GetCreationContext ( v8::Isolate isolate)

Returns the context in which the object was created.

Prefer using version with Isolate parameter.

◆ GetCreationContext() [4/4]

static MaybeLocal< Context > v8::Object::GetCreationContext ( v8::Isolate isolate,
const PersistentBase< Object > &  object 
)
inlinestatic

Same as above, but works for Persistents

◆ GetCreationContextChecked() [1/2]

Local< Context > v8::Object::GetCreationContextChecked ( )

◆ GetCreationContextChecked() [2/2]

Local< Context > v8::Object::GetCreationContextChecked ( v8::Isolate isolate)

Shortcut for GetCreationContext(...).ToLocalChecked().

Prefer using version with Isolate parameter.

◆ GetIdentityHash()

int v8::Object::GetIdentityHash ( )

Returns the identity hash for this object. The current implementation uses a hidden property on the object to store the identity hash.

The return value will never be 0. Also, it is not guaranteed to be unique.

◆ GetInternalField()

Local< Data > v8::Object::GetInternalField ( int  index)
inline

Gets the data from an internal field. To cast the return value into v8::Value subtypes, it needs to be casted to a v8::Value first. For example, to cast it into v8::External:

object->GetInternalField(index).As<v8::Value>().As<v8::External>();

The embedder should make sure that the internal field being retrieved using this method has already been set with SetInternalField() before.

Here is the call graph for this function:

◆ GetIsolate() [1/2]

Isolate * v8::Object::GetIsolate ( )

Return the isolate to which the Object belongs to.

◆ GetIsolate() [2/2]

static Isolate * v8::Object::GetIsolate ( const TracedReference< Object > &  handle)
inlinestatic

◆ GetOwnPropertyDescriptor()

MaybeLocal< Value > v8::Object::GetOwnPropertyDescriptor ( Local< Context context,
Local< Name key 
)

Implements Object.getOwnPropertyDescriptor(O, P), see https://tc39.es/ecma262/#sec-object.getownpropertydescriptor.

◆ GetOwnPropertyNames() [1/2]

MaybeLocal< Array > v8::Object::GetOwnPropertyNames ( Local< Context context)

This function has the same functionality as GetPropertyNames but the returned array doesn't contain the names of properties from prototype objects.

◆ GetOwnPropertyNames() [2/2]

MaybeLocal< Array > v8::Object::GetOwnPropertyNames ( Local< Context context,
PropertyFilter  filter,
KeyConversionMode  key_conversion = KeyConversionMode::kKeepNumbers 
)

Returns an array containing the names of the filtered properties of this object, including properties from prototype objects. The array returned by this method contains the same values as would be enumerated by a for-in statement over this object.

◆ GetPrivate()

MaybeLocal< Value > v8::Object::GetPrivate ( Local< Context context,
Local< Private key 
)

◆ GetPropertyAttributes()

Maybe< PropertyAttribute > v8::Object::GetPropertyAttributes ( Local< Context context,
Local< Value key 
)

Gets the property attributes of a property which can be None or any combination of ReadOnly, DontEnum and DontDelete. Returns None when the property doesn't exist.

◆ GetPropertyNames() [1/2]

MaybeLocal< Array > v8::Object::GetPropertyNames ( Local< Context context)

Returns an array containing the names of the enumerable properties of this object, including properties from prototype objects. The array returned by this method contains the same values as would be enumerated by a for-in statement over this object.

◆ GetPropertyNames() [2/2]

MaybeLocal< Array > v8::Object::GetPropertyNames ( Local< Context context,
KeyCollectionMode  mode,
PropertyFilter  property_filter,
IndexFilter  index_filter,
KeyConversionMode  key_conversion = KeyConversionMode::kKeepNumbers 
)

◆ GetPrototype()

Local< Value > v8::Object::GetPrototype ( )

Get the prototype object. This does not skip objects marked to be skipped by proto and it does not consult the security handler.

◆ GetPrototypeV2()

Local< Value > v8::Object::GetPrototypeV2 ( )

Get the prototype object (same as getting proto property). This does not consult the security handler. TODO(333672197): rename back to GetPrototype() once the old version goes through the deprecation process and is removed.

◆ GetRealNamedProperty()

MaybeLocal< Value > v8::Object::GetRealNamedProperty ( Local< Context context,
Local< Name key 
)

If result.IsEmpty() no real property was located on the object or in the prototype chain. This means interceptors in the prototype chain are not called.

◆ GetRealNamedPropertyAttributes()

Maybe< PropertyAttribute > v8::Object::GetRealNamedPropertyAttributes ( Local< Context context,
Local< Name key 
)

Gets the property attributes of a real property which can be None or any combination of ReadOnly, DontEnum and DontDelete. Interceptors in the prototype chain are not called.

◆ GetRealNamedPropertyAttributesInPrototypeChain()

Maybe< PropertyAttribute > v8::Object::GetRealNamedPropertyAttributesInPrototypeChain ( Local< Context context,
Local< Name key 
)

Gets the property attributes of a real property in the prototype chain, which can be None or any combination of ReadOnly, DontEnum and DontDelete. Interceptors in the prototype chain are not called.

◆ GetRealNamedPropertyInPrototypeChain()

MaybeLocal< Value > v8::Object::GetRealNamedPropertyInPrototypeChain ( Local< Context context,
Local< Name key 
)

If result.IsEmpty() no real property was located in the prototype chain. This means interceptors in the prototype chain are not called.

◆ Has() [1/2]

Maybe< bool > v8::Object::Has ( Local< Context context,
Local< Value key 
)

Object::Has() calls the abstract operation HasProperty(O, P), see https://tc39.es/ecma262/#sec-hasproperty. Has() returns true, if the object has the property, either own or on the prototype chain. Interceptors, i.e., PropertyQueryCallbacks, are called if present.

Has() has the same side effects as JavaScript's variable in object. For example, calling Has() on a revoked proxy will throw an exception.

Note
Has() converts the key to a name, which possibly calls back into JavaScript.

See also v8::Object::HasOwnProperty() and v8::Object::HasRealNamedProperty().

◆ Has() [2/2]

Maybe< bool > v8::Object::Has ( Local< Context context,
uint32_t  index 
)

◆ HasIndexedLookupInterceptor()

bool v8::Object::HasIndexedLookupInterceptor ( ) const

Tests for an index lookup interceptor.

◆ HasNamedLookupInterceptor()

bool v8::Object::HasNamedLookupInterceptor ( ) const

Tests for a named lookup interceptor.

◆ HasOwnProperty() [1/2]

Maybe< bool > v8::Object::HasOwnProperty ( Local< Context context,
Local< Name key 
)

HasOwnProperty() is like JavaScript's Object.prototype.hasOwnProperty().

See also v8::Object::Has() and v8::Object::HasRealNamedProperty().

◆ HasOwnProperty() [2/2]

Maybe< bool > v8::Object::HasOwnProperty ( Local< Context context,
uint32_t  index 
)

◆ HasPrivate()

Maybe< bool > v8::Object::HasPrivate ( Local< Context context,
Local< Private key 
)

Functionality for private properties. This is an experimental feature, use at your own risk. Note: Private properties are not inherited. Do not rely on this, since it may change.

◆ HasRealIndexedProperty()

Maybe< bool > v8::Object::HasRealIndexedProperty ( Local< Context context,
uint32_t  index 
)

◆ HasRealNamedCallbackProperty()

Maybe< bool > v8::Object::HasRealNamedCallbackProperty ( Local< Context context,
Local< Name key 
)

◆ HasRealNamedProperty()

Maybe< bool > v8::Object::HasRealNamedProperty ( Local< Context context,
Local< Name key 
)

Use HasRealNamedProperty() if you want to check if an object has an own property without causing side effects, i.e., without calling interceptors.

This function is similar to v8::Object::HasOwnProperty(), but it does not call interceptors.

Note
Consider using non-masking interceptors, i.e., the interceptors are not called if the receiver has the real named property. See v8::PropertyHandlerFlags::kNonMasking.

See also v8::Object::Has().

◆ InternalFieldCount() [1/3]

int v8::Object::InternalFieldCount ( ) const

Gets the number of internal fields for this Object.

◆ InternalFieldCount() [2/3]

static int v8::Object::InternalFieldCount ( const BasicTracedReference< Object > &  object)
inlinestatic

Same as above, but works for BasicTracedReference.

◆ InternalFieldCount() [3/3]

static int v8::Object::InternalFieldCount ( const PersistentBase< Object > &  object)
inlinestatic

Same as above, but works for PersistentBase.

◆ IsApiWrapper()

bool v8::Object::IsApiWrapper ( ) const

Returns true if this object can be generally used to wrap object objects. This means that the object either follows the convention of using embedder fields to denote type/instance pointers or is using the Wrap()/Unwrap() APIs for the same purpose. Returns false otherwise.

Note that there may be other objects that use embedder fields but are not used as API wrapper objects. E.g., v8::Promise may in certain configuration use embedder fields but promises are not generally supported as API wrappers. The method will return false in those cases.

◆ IsCallable()

bool v8::Object::IsCallable ( ) const

Checks whether a callback is set by the ObjectTemplate::SetCallAsFunctionHandler method. When an Object is callable this method returns true.

◆ IsCodeLike()

bool v8::Object::IsCodeLike ( Isolate isolate) const

Support for TC39 "dynamic code brand checks" proposal.

This API allows to query whether an object was constructed from a "code like" ObjectTemplate.

See also: v8::ObjectTemplate::SetCodeLike

◆ IsConstructor()

bool v8::Object::IsConstructor ( ) const

True if this object is a constructor.

◆ IsUndetectable()

bool v8::Object::IsUndetectable ( ) const

True if this object was created from an object template which was marked as undetectable. See v8::ObjectTemplate::MarkAsUndetectable for more information.

◆ New() [1/2]

static Local< Object > v8::Object::New ( Isolate isolate)
static

◆ New() [2/2]

static Local< Object > v8::Object::New ( Isolate isolate,
Local< Value prototype_or_null,
Local< Name > *  names,
Local< Value > *  values,
size_t  length 
)
static

Creates a JavaScript object with the given properties, and a the given prototype_or_null (which can be any JavaScript value, and if it's null, the newly created object won't have a prototype at all). This is similar to Object.create(). All properties will be created as enumerable, configurable and writable properties.

◆ ObjectProtoToString()

MaybeLocal< String > v8::Object::ObjectProtoToString ( Local< Context context)

Call builtin Object.prototype.toString on this object. This is different from Value::ToString() that may call user-defined toString function. This one does not.

◆ PreviewEntries()

MaybeLocal< Array > v8::Object::PreviewEntries ( bool *  is_key_value)

If this object is a Set, Map, WeakSet or WeakMap, this returns a representation of the elements of this object as an array. If this object is a SetIterator or MapIterator, this returns all elements of the underlying collection, starting at the iterator's current position. For other types, this will return an empty MaybeLocal<Array> (without scheduling an exception).

◆ Set() [1/3]

Maybe< bool > v8::Object::Set ( Local< Context context,
Local< Value key,
Local< Value value 
)

Set only return Just(true) or Empty(), so if it should never fail, use result.Check().

◆ Set() [2/3]

Maybe< bool > v8::Object::Set ( Local< Context context,
Local< Value key,
Local< Value value,
MaybeLocal< Object receiver 
)

◆ Set() [3/3]

Maybe< bool > v8::Object::Set ( Local< Context context,
uint32_t  index,
Local< Value value 
)

◆ SetAccessorProperty()

void v8::Object::SetAccessorProperty ( Local< Name name,
Local< Function getter,
Local< Function setter = LocalFunction >(),
PropertyAttribute  attributes = None 
)

Sets an accessor property like Template::SetAccessorProperty, but this method sets on this object directly.

◆ SetAlignedPointerInInternalField()

void v8::Object::SetAlignedPointerInInternalField ( int  index,
void *  value 
)

Sets a 2-byte-aligned native pointer in an internal field. To retrieve such a field, GetAlignedPointerFromInternalField must be used, everything else leads to undefined behavior.

◆ SetAlignedPointerInInternalFields()

void v8::Object::SetAlignedPointerInInternalFields ( int  argc,
int  indices[],
void *  values[] 
)

◆ SetIntegrityLevel()

Maybe< bool > v8::Object::SetIntegrityLevel ( Local< Context context,
IntegrityLevel  level 
)

Sets the integrity level of the object.

◆ SetInternalField()

void v8::Object::SetInternalField ( int  index,
Local< Data data 
)

Sets the data in an internal field.

◆ SetLazyDataProperty()

Maybe< bool > v8::Object::SetLazyDataProperty ( Local< Context context,
Local< Name name,
AccessorNameGetterCallback  getter,
Local< Value data = LocalValue >(),
PropertyAttribute  attributes = None,
SideEffectType  getter_side_effect_type = SideEffectType::kHasSideEffect,
SideEffectType  setter_side_effect_type = SideEffectType::kHasSideEffect 
)

Attempts to create a property with the given name which behaves like a data property, except that the provided getter is invoked (and provided with the data value) to supply its value the first time it is read. After the property is accessed once, it is replaced with an ordinary data property.

Analogous to Template::SetLazyDataProperty.

◆ SetNativeDataProperty()

Maybe< bool > v8::Object::SetNativeDataProperty ( Local< Context context,
Local< Name name,
AccessorNameGetterCallback  getter,
AccessorNameSetterCallback  setter = nullptr,
Local< Value data = LocalValue >(),
PropertyAttribute  attributes = None,
SideEffectType  getter_side_effect_type = SideEffectType::kHasSideEffect,
SideEffectType  setter_side_effect_type = SideEffectType::kHasSideEffect 
)

Sets a native data property like Template::SetNativeDataProperty, but this method sets on this object directly.

◆ SetPrivate()

Maybe< bool > v8::Object::SetPrivate ( Local< Context context,
Local< Private key,
Local< Value value 
)

◆ SetPrototype()

Maybe< bool > v8::Object::SetPrototype ( Local< Context context,
Local< Value prototype 
)

Set the prototype object. This does not skip objects marked to be skipped by proto and it does not consult the security handler.

◆ SetPrototypeV2()

Maybe< bool > v8::Object::SetPrototypeV2 ( Local< Context context,
Local< Value prototype 
)

Set the prototype object (same as setting proto property). This does does not consult the security handler. TODO(333672197): rename back to SetPrototype() once the old version goes through the deprecation process and is removed.

◆ Unwrap() [1/6]

template<CppHeapPointerTag tag, typename T >
T * v8::Object::Unwrap ( v8::Isolate isolate,
const BasicTracedReference< Object > &  wrapper 
)
inlinestatic
Here is the call graph for this function:

◆ Unwrap() [2/6]

template<typename T >
T * v8::Object::Unwrap ( v8::Isolate isolate,
const BasicTracedReference< Object > &  wrapper,
CppHeapPointerTagRange  tag_range 
)
inlinestatic
Here is the call graph for this function:

◆ Unwrap() [3/6]

template<CppHeapPointerTag tag, typename T >
T * v8::Object::Unwrap ( v8::Isolate isolate,
const PersistentBase< Object > &  wrapper 
)
inlinestatic
Here is the call graph for this function:

◆ Unwrap() [4/6]

template<typename T >
T * v8::Object::Unwrap ( v8::Isolate isolate,
const PersistentBase< Object > &  wrapper,
CppHeapPointerTagRange  tag_range 
)
inlinestatic
Here is the call graph for this function:

◆ Unwrap() [5/6]

template<CppHeapPointerTag tag, typename T >
T * v8::Object::Unwrap ( v8::Isolate isolate,
const v8::Local< v8::Object > &  wrapper 
)
inlinestatic

Unwraps a JS wrapper object.

Parameters
tagThe tag for retrieving the wrappable instance. Must match the tag that has been used for a previous Wrap() operation.
isolateThe Isolate for the wrapper object.
wrapperThe JS wrapper object that should be unwrapped.
Returns
the C++ wrappable instance, or nullptr if the JS object has never been wrapped.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Unwrap() [6/6]

template<typename T >
T * v8::Object::Unwrap ( v8::Isolate isolate,
const v8::Local< v8::Object > &  wrapper,
CppHeapPointerTagRange  tag_range 
)
inlinestatic
Here is the call graph for this function:

◆ Wrap() [1/6]

template<CppHeapPointerTag tag>
void v8::Object::Wrap ( v8::Isolate isolate,
const BasicTracedReference< Object > &  wrapper,
void *  wrappable 
)
inlinestatic
Here is the call graph for this function:

◆ Wrap() [2/6]

void v8::Object::Wrap ( v8::Isolate isolate,
const BasicTracedReference< Object > &  wrapper,
void *  wrappable,
CppHeapPointerTag  tag 
)
inlinestatic
Here is the call graph for this function:

◆ Wrap() [3/6]

template<CppHeapPointerTag tag>
void v8::Object::Wrap ( v8::Isolate isolate,
const PersistentBase< Object > &  wrapper,
void *  wrappable 
)
inlinestatic
Here is the call graph for this function:

◆ Wrap() [4/6]

void v8::Object::Wrap ( v8::Isolate isolate,
const PersistentBase< Object > &  wrapper,
void *  wrappable,
CppHeapPointerTag  tag 
)
inlinestatic
Here is the call graph for this function:

◆ Wrap() [5/6]

template<CppHeapPointerTag tag>
void v8::Object::Wrap ( v8::Isolate isolate,
const v8::Local< v8::Object > &  wrapper,
void *  wrappable 
)
inlinestatic

Wraps a JS wrapper with a C++ instance.

Parameters
tagThe pointer tag that should be used for storing this object. Future Unwrap() operations must provide a matching tag.
isolateThe Isolate for the wrapper object.
wrapperThe JS wrapper object.
wrappableThe C++ object instance that is wrapped by the JS object.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Wrap() [6/6]

void v8::Object::Wrap ( v8::Isolate isolate,
const v8::Local< v8::Object > &  wrapper,
void *  wrappable,
CppHeapPointerTag  tag 
)
inlinestatic
Here is the call graph for this function:

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