v8 12.4.254 (node 22.4.1)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
Object Class Reference

#include <v8-object.h>

Inheritance diagram for Object:
Collaboration diagram for Object:

Public Member Functions

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, 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, 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)
 
V8_WARN_UNUSED_RESULT Maybe< bool > SetAccessor (Local< Context > context, Local< Name > name, AccessorNameGetterCallback getter, AccessorNameSetterCallback setter=nullptr, MaybeLocal< Value > data=MaybeLocal< Value >(), AccessControl deprecated_settings=DEFAULT, PropertyAttribute attribute=None, SideEffectType getter_side_effect_type=SideEffectType::kHasSideEffect, SideEffectType setter_side_effect_type=SideEffectType::kHasSideEffect)
 
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)
 
Local< ValueGetPrototype ()
 
V8_WARN_UNUSED_RESULT Maybe< bool > SetPrototype (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 ()
 
MaybeLocal< ContextGetCreationContext ()
 
Local< ContextGetCreationContextChecked ()
 
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
 
- Public Member Functions inherited from 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 IsWasmModuleObject () const
 
bool IsWasmNull () const
 
bool IsModuleNamespaceObject () 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)
 
template<>
V8_INLINE ValueCast (Data *value)
 
- Public Member Functions inherited from 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 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)
 
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 Value
template<class T >
static V8_INLINE ValueCast (T *value)
 

Detailed Description

A JavaScript object (ECMA-262, 4.3.3)

Definition at line 234 of file v8-object.h.

Member Function Documentation

◆ CallAsConstructor()

V8_WARN_UNUSED_RESULT MaybeLocal< Value > 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()

V8_WARN_UNUSED_RESULT MaybeLocal< Value > 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 * Cast ( v8::Value value)
static

Definition at line 815 of file v8-object.h.

◆ Clone()

Local< Object > Clone ( )

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

◆ CreateDataProperty() [1/2]

V8_WARN_UNUSED_RESULT Maybe< bool > 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]

V8_WARN_UNUSED_RESULT Maybe< bool > CreateDataProperty ( Local< Context context,
uint32_t  index,
Local< Value value 
)

◆ DefineOwnProperty()

V8_WARN_UNUSED_RESULT Maybe< bool > 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()

V8_WARN_UNUSED_RESULT Maybe< bool > 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]

V8_WARN_UNUSED_RESULT Maybe< bool > Delete ( Local< Context context,
Local< Value key 
)

◆ Delete() [2/2]

V8_WARN_UNUSED_RESULT Maybe< bool > Delete ( Local< Context context,
uint32_t  index 
)

◆ DeletePrivate()

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

◆ FindInstanceInPrototypeChain()

Local< Object > FindInstanceInPrototypeChain ( Local< FunctionTemplate tmpl)

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

◆ Get() [1/2]

V8_WARN_UNUSED_RESULT MaybeLocal< Value > Get ( Local< Context context,
Local< Value key 
)

◆ Get() [2/2]

V8_WARN_UNUSED_RESULT MaybeLocal< Value > Get ( Local< Context context,
uint32_t  index 
)

◆ GetAlignedPointerFromEmbedderDataInCreationContext()

void * GetAlignedPointerFromEmbedderDataInCreationContext ( 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().

◆ GetAlignedPointerFromInternalField() [1/4]

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

Same as above, but works for TracedReference.

Definition at line 513 of file v8-object.h.

◆ GetAlignedPointerFromInternalField() [2/4]

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

Same as above, but works for PersistentBase.

Definition at line 506 of file v8-object.h.

◆ GetAlignedPointerFromInternalField() [3/4]

void * GetAlignedPointerFromInternalField ( int  index)

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.

Definition at line 787 of file v8-object.h.

References V8_LIKELY, and ValueHelper::ValueAsAddress().

◆ GetAlignedPointerFromInternalField() [4/4]

void * GetAlignedPointerFromInternalField ( v8::Isolate isolate,
int  index 
)

Definition at line 766 of file v8-object.h.

References V8_LIKELY, and ValueHelper::ValueAsAddress().

◆ GetConstructorName()

Local< String > GetConstructorName ( )

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

◆ GetCreationContext() [1/2]

MaybeLocal< Context > GetCreationContext ( )

Returns the context in which the object was created.

◆ GetCreationContext() [2/2]

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

Same as above, but works for Persistents

Definition at line 622 of file v8-object.h.

◆ GetCreationContextChecked()

Local< Context > GetCreationContextChecked ( )

Shortcut for GetCreationContext().ToLocalChecked().

◆ GetIdentityHash()

int 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 > GetInternalField ( int  index)

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.

Definition at line 741 of file v8-object.h.

References v8::internal::IsolateFromNeverReadOnlySpaceObject(), Local< T >::New(), and ValueHelper::ValueAsAddress().

◆ GetIsolate() [1/2]

Isolate * GetIsolate ( )

Return the isolate to which the Object belongs to.

◆ GetIsolate() [2/2]

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

Definition at line 690 of file v8-object.h.

◆ GetOwnPropertyDescriptor()

V8_WARN_UNUSED_RESULT MaybeLocal< Value > GetOwnPropertyDescriptor ( Local< Context context,
Local< Name key 
)

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

◆ GetOwnPropertyNames() [1/2]

V8_WARN_UNUSED_RESULT MaybeLocal< Array > 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]

V8_WARN_UNUSED_RESULT MaybeLocal< Array > 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 > GetPrivate ( Local< Context context,
Local< Private key 
)

◆ GetPropertyAttributes()

V8_WARN_UNUSED_RESULT Maybe< PropertyAttribute > 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]

V8_WARN_UNUSED_RESULT MaybeLocal< Array > 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]

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

◆ GetPrototype()

Local< Value > GetPrototype ( )

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

◆ GetRealNamedProperty()

V8_WARN_UNUSED_RESULT MaybeLocal< Value > 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()

V8_WARN_UNUSED_RESULT Maybe< PropertyAttribute > 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()

V8_WARN_UNUSED_RESULT Maybe< PropertyAttribute > 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()

V8_WARN_UNUSED_RESULT MaybeLocal< Value > 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]

V8_WARN_UNUSED_RESULT Maybe< bool > 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]

V8_WARN_UNUSED_RESULT Maybe< bool > Has ( Local< Context context,
uint32_t  index 
)

◆ HasIndexedLookupInterceptor()

bool HasIndexedLookupInterceptor ( ) const

Tests for an index lookup interceptor.

◆ HasNamedLookupInterceptor()

bool HasNamedLookupInterceptor ( ) const

Tests for a named lookup interceptor.

◆ HasOwnProperty() [1/2]

V8_WARN_UNUSED_RESULT Maybe< bool > 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]

V8_WARN_UNUSED_RESULT Maybe< bool > HasOwnProperty ( Local< Context context,
uint32_t  index 
)

◆ HasPrivate()

Maybe< bool > 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()

V8_WARN_UNUSED_RESULT Maybe< bool > HasRealIndexedProperty ( Local< Context context,
uint32_t  index 
)

◆ HasRealNamedCallbackProperty()

V8_WARN_UNUSED_RESULT Maybe< bool > HasRealNamedCallbackProperty ( Local< Context context,
Local< Name key 
)

◆ HasRealNamedProperty()

V8_WARN_UNUSED_RESULT Maybe< bool > 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 InternalFieldCount ( ) const

Gets the number of internal fields for this Object.

◆ InternalFieldCount() [2/3]

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

Same as above, but works for BasicTracedReference.

Definition at line 476 of file v8-object.h.

◆ InternalFieldCount() [3/3]

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

Same as above, but works for PersistentBase.

Definition at line 470 of file v8-object.h.

◆ IsApiWrapper()

bool IsApiWrapper ( ) const

True if this object can carry information relevant to the embedder in its embedder fields, false otherwise. This is generally true for objects constructed through function templates but also holds for other types where V8 automatically adds internal fields at compile time, such as e.g. v8::ArrayBuffer.

◆ IsCallable()

bool IsCallable ( ) const

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

◆ IsCodeLike()

bool 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 IsConstructor ( ) const

True if this object is a constructor.

◆ IsUndetectable()

bool 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 > New ( Isolate isolate)
static

◆ New() [2/2]

static Local< 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()

V8_WARN_UNUSED_RESULT MaybeLocal< String > 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 > 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/2]

V8_WARN_UNUSED_RESULT Maybe< bool > 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/2]

V8_WARN_UNUSED_RESULT Maybe< bool > Set ( Local< Context context,
uint32_t  index,
Local< Value value 
)

◆ SetAccessor()

V8_WARN_UNUSED_RESULT Maybe< bool > SetAccessor ( Local< Context context,
Local< Name name,
AccessorNameGetterCallback  getter,
AccessorNameSetterCallback  setter = nullptr,
MaybeLocal< Value data = MaybeLocalValue >(),
AccessControl  deprecated_settings = DEFAULT,
PropertyAttribute  attribute = None,
SideEffectType  getter_side_effect_type = SideEffectType::kHasSideEffect,
SideEffectType  setter_side_effect_type = SideEffectType::kHasSideEffect 
)

◆ SetAccessorProperty()

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

◆ SetAlignedPointerInInternalField()

void 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 SetAlignedPointerInInternalFields ( int  argc,
int  indices[],
void *  values[] 
)

◆ SetIntegrityLevel()

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

Sets the integrity level of the object.

◆ SetInternalField()

void SetInternalField ( int  index,
Local< Data data 
)

Sets the data in an internal field.

◆ SetLazyDataProperty()

V8_WARN_UNUSED_RESULT Maybe< bool > 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()

V8_WARN_UNUSED_RESULT Maybe< bool > 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 > SetPrivate ( Local< Context context,
Local< Private key,
Local< Value value 
)

◆ SetPrototype()

V8_WARN_UNUSED_RESULT Maybe< bool > 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.


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