v8
10.1.124 (node 18.2.0)
V8 is Google's open source JavaScript engine
|
#include <v8-object.h>
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< Context > | GetCreationContext (const PersistentBase< Object > &object) |
static Local< Object > | New (Isolate *isolate) |
static Local< Object > | New (Isolate *isolate, Local< Value > prototype_or_null, Local< Name > *names, Local< Value > *values, size_t length) |
static V8_INLINE Object * | Cast (Value *obj) |
Static Public Member Functions inherited from Value | |
template<class T > | |
static V8_INLINE Value * | Cast (T *value) |
A JavaScript object (ECMA-262, 4.3.3)
Definition at line 238 of file v8-object.h.
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.
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.
Definition at line 766 of file v8-object.h.
Clone this object with a fast but shallow copy. Values will point to the same values as the original object.
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 Maybe<bool> Delete | ( | Local< Context > | context, |
uint32_t | index | ||
) |
Local<Object> FindInstanceInPrototypeChain | ( | Local< FunctionTemplate > | tmpl | ) |
Finds an instance of the given function template in the prototype chain.
V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get | ( | Local< Context > | context, |
Local< Value > | key | ||
) |
V8_WARN_UNUSED_RESULT MaybeLocal<Value> Get | ( | Local< Context > | context, |
uint32_t | index | ||
) |
|
inlinestatic |
Same as above, but works for TracedGlobal.
Definition at line 497 of file v8-object.h.
References Object::GetAlignedPointerFromInternalField(), and BasicTracedReference< T >::operator->().
|
inlinestatic |
Same as above, but works for PersistentBase.
Definition at line 491 of file v8-object.h.
References Object::GetAlignedPointerFromInternalField().
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 737 of file v8-object.h.
References v8::internal::CanHaveInternalField(), Internals::GetInstanceType(), Internals::GetIsolateForSandbox(), v8::internal::kEmbedderDataSlotPayloadTag, Internals::kEmbedderDataSlotSize, Internals::kJSObjectHeaderSize, and Internals::ReadExternalPointerField().
Referenced by Object::GetAlignedPointerFromInternalField().
Returns the name of the function invoked as a constructor for this object.
MaybeLocal<Context> GetCreationContext | ( | ) |
Referenced by Object::GetCreationContext().
|
inlinestatic |
Definition at line 611 of file v8-object.h.
References Object::GetCreationContext().
Shortcut for GetCreationContext().ToLocalChecked().
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.
Gets the value from an internal field.
Definition at line 712 of file v8-object.h.
References v8::internal::CanHaveInternalField(), HandleScope::CreateHandle(), Internals::GetInstanceType(), v8::internal::IsolateFromNeverReadOnlySpaceObject(), Internals::kEmbedderDataSlotSize, Internals::kJSObjectHeaderSize, HandleScope::Local, and Internals::ReadRawField().
V8_WARN_UNUSED_RESULT MaybeLocal<Value> GetOwnPropertyDescriptor | ( | Local< Context > | context, |
Local< Name > | key | ||
) |
Returns Object.getOwnPropertyDescriptor as per ES2016 section 19.1.2.6.
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.
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.
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.
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.
V8_WARN_UNUSED_RESULT MaybeLocal<Array> GetPropertyNames | ( | Local< Context > | context, |
KeyCollectionMode | mode, | ||
PropertyFilter | property_filter, | ||
IndexFilter | index_filter, | ||
KeyConversionMode | key_conversion = KeyConversionMode::kKeepNumbers |
||
) |
Get the prototype object. This does not skip objects marked to be skipped by proto and it does not consult the security handler.
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.
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.
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.
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.
Object::Has() calls the abstract operation HasProperty(O, P) described in ECMA-262, 7.3.10. 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.
See also v8::Object::HasOwnProperty() and v8::Object::HasRealNamedProperty().
V8_WARN_UNUSED_RESULT Maybe<bool> Has | ( | Local< Context > | context, |
uint32_t | index | ||
) |
bool HasIndexedLookupInterceptor | ( | ) | const |
Tests for an index lookup interceptor.
bool HasNamedLookupInterceptor | ( | ) | const |
Tests for a named lookup interceptor.
HasOwnProperty() is like JavaScript's Object.prototype.hasOwnProperty().
See also v8::Object::Has() and v8::Object::HasRealNamedProperty().
V8_WARN_UNUSED_RESULT Maybe<bool> HasOwnProperty | ( | Local< Context > | context, |
uint32_t | index | ||
) |
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.
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 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.
v8::PropertyHandlerFlags::kNonMasking
.See also v8::Object::Has().
int InternalFieldCount | ( | ) | const |
Gets the number of internal fields for this Object.
Referenced by Object::InternalFieldCount().
|
inlinestatic |
Same as above, but works for BasicTracedReference.
Definition at line 472 of file v8-object.h.
References Object::InternalFieldCount(), and BasicTracedReference< T >::operator->().
|
inlinestatic |
Same as above, but works for PersistentBase.
Definition at line 466 of file v8-object.h.
References Object::InternalFieldCount().
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.
bool IsCallable | ( | ) | const |
Checks whether a callback is set by the ObjectTemplate::SetCallAsFunctionHandler method. When an Object is callable this method returns true.
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
bool IsConstructor | ( | ) | const |
True if this object is a constructor.
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.
|
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.
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.
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).
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().
V8_WARN_UNUSED_RESULT Maybe<bool> Set | ( | Local< Context > | context, |
uint32_t | index, | ||
Local< Value > | value | ||
) |
V8_WARN_UNUSED_RESULT Maybe<bool> SetAccessor | ( | Local< Context > | context, |
Local< Name > | name, | ||
AccessorNameGetterCallback | getter, | ||
AccessorNameSetterCallback | setter = nullptr , |
||
MaybeLocal< Value > | data = MaybeLocal< Value >() , |
||
AccessControl | settings = DEFAULT , |
||
PropertyAttribute | attribute = None , |
||
SideEffectType | getter_side_effect_type = SideEffectType::kHasSideEffect , |
||
SideEffectType | setter_side_effect_type = SideEffectType::kHasSideEffect |
||
) |
Note: SideEffectType affects the getter only, not the setter.
void SetAccessorProperty | ( | Local< Name > | name, |
Local< Function > | getter, | ||
Local< Function > | setter = Local< Function >() , |
||
PropertyAttribute | attribute = None , |
||
AccessControl | settings = DEFAULT |
||
) |
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.
void SetAlignedPointerInInternalFields | ( | int | argc, |
int | indices[], | ||
void * | values[] | ||
) |
Maybe<bool> SetIntegrityLevel | ( | Local< Context > | context, |
IntegrityLevel | level | ||
) |
Sets the integrity level of the object.
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 |
||
) |
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.
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 |
||
) |
Sets a native data property like Template::SetNativeDataProperty, but this method sets on this object directly.
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.
V8_DEPRECATED | ( | "Use MaybeLocal<Context> GetCreationContext(const " "PersistentBase<Object>& object)" | ) | const & |
Same as above, but works for Persistents