Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QV4::Object Struct Reference

#include <qv4object_p.h>

Inherits QV4::Managed.

Inherited by QQmlDelegateModelGroupChange, QQmlDelegateModelGroupChange, QQmlDelegateModelGroupChangeArray, QQmlDelegateModelGroupChangeArray, QQmlDelegateModelItemObject, QQuickContext2DStyle, QQuickContext2DStyle, QQuickJSContext2D, QQuickJSContext2D, QQuickJSContext2DImageData, QQuickJSContext2DImageData, QQuickJSContext2DPixelData, QQuickJSContext2DPixelData, QQuickJSContext2DPrototype, QQuickJSContext2DPrototype, QV4::ArgumentsObject, QV4::ArrayIteratorObject, QV4::ArrayIteratorPrototype, QV4::ArrayObject, QV4::Atomics, QV4::BooleanObject, QV4::ConsoleObject, QV4::DataView, QV4::DataViewPrototype, QV4::DatePrototype, QV4::ErrorObject, QV4::ErrorPrototype, QV4::EvalErrorPrototype, QV4::ForInIteratorObject, QV4::ForInIteratorPrototype, QV4::FunctionObject, QV4::GeneratorObject, QV4::GeneratorPrototype, QV4::Heap::ArrayObject, QV4::Heap::Atomics, QV4::Heap::BooleanObject, QV4::Heap::ConsoleObject, QV4::Heap::IntrinsicTypedArrayPrototype, QV4::Heap::JsonObject, QV4::Heap::MapObject, QV4::Heap::MathObject, QV4::Heap::NamedNodeMap, QV4::Heap::NamedNodeMap, QV4::Heap::Node, QV4::Heap::Node, QV4::Heap::NodeList, QV4::Heap::NodeList, QV4::Heap::NodePrototype, QV4::Heap::NodePrototype, QV4::Heap::NumberObject, QV4::Heap::QObjectWrapper, QV4::Heap::QQmlDelegateModelGroupChange, QV4::Heap::QQmlDelegateModelGroupChange, QV4::Heap::QQmlDelegateModelGroupChangeArray, QV4::Heap::QQmlDelegateModelGroupChangeArray, QV4::Heap::QQmlDelegateModelItemObject, QV4::Heap::QQmlEnumWrapper, QV4::Heap::QQmlSqlDatabaseWrapper, QV4::Heap::QQmlSqlDatabaseWrapper, QV4::Heap::QQmlXMLHttpRequestWrapper, QV4::Heap::QQmlXMLHttpRequestWrapper, QV4::Heap::QQuickContext2DStyle, QV4::Heap::QQuickContext2DStyle, QV4::Heap::QQuickJSContext2D, QV4::Heap::QQuickJSContext2D, QV4::Heap::QQuickJSContext2DImageData, QV4::Heap::QQuickJSContext2DImageData, QV4::Heap::QQuickJSContext2DPixelData, QV4::Heap::QQuickJSContext2DPixelData, QV4::Heap::QQuickJSContext2DPrototype, QV4::Heap::QQuickJSContext2DPrototype, QV4::Heap::QmlListWrapper, QV4::Heap::QmlSignalHandler, QV4::Heap::Reflect, QV4::Heap::SetObject, QV4::Heap::SharedArrayBuffer, QV4::Heap::TypedArrayPrototype, QV4::Heap::VariantObject, QV4::IntrinsicTypedArrayPrototype, QV4::IteratorPrototype, QV4::JsonObject, QV4::MapIteratorObject, QV4::MapIteratorPrototype, QV4::MapObject, QV4::MathObject, QV4::Module, QV4::NamedNodeMap, QV4::NamedNodeMap, QV4::Node, QV4::Node, QV4::NodeList, QV4::NodeList, QV4::NodePrototype, QV4::NodePrototype, QV4::NumberObject, QV4::ObjectPrototype, QV4::PromiseCapability, QV4::PromiseExecutionState, QV4::PromiseObject, QV4::PromisePrototype, QV4::PromiseReaction, QV4::PropertyListPrototype, QV4::QObjectWrapper, QV4::QQmlContextWrapper, QV4::QQmlEnumWrapper, QV4::QQmlSqlDatabaseWrapper, QV4::QQmlSqlDatabaseWrapper, QV4::QQmlXMLHttpRequestWrapper, QV4::QQmlXMLHttpRequestWrapper, QV4::QmlIncubatorObject, QV4::QmlIncubatorObject, QV4::QmlListWrapper, QV4::QmlSignalHandler, QV4::RangeErrorPrototype, QV4::ReferenceErrorPrototype, QV4::ReferenceObject, QV4::Reflect, QV4::RegExpObject, QV4::RegExpPrototype, QV4::SequencePrototype, QV4::SetIteratorObject, QV4::SetIteratorPrototype, QV4::SetObject, QV4::SharedArrayBuffer, QV4::SharedArrayBufferPrototype, QV4::StrictArgumentsObject, QV4::StringIteratorObject, QV4::StringIteratorPrototype, QV4::StringObject, QV4::SymbolObject, QV4::SymbolPrototype, QV4::SyntaxErrorPrototype, QV4::TypeErrorPrototype, QV4::TypedArray, QV4::TypedArrayPrototype, QV4::URIErrorPrototype, QV4::UrlObject, QV4::UrlPrototype, QV4::UrlSearchParamsObject, QV4::UrlSearchParamsPrototype, QV4::VariantAssociationPrototype, QV4::VariantObject, QV4::WeakMapPrototype, and QV4::WeakSetPrototype.

Collaboration diagram for QV4::Object:

Public Types

enum  { NInlineProperties = 2 }
enum  { IsObject = true , GetterOffset = 0 , SetterOffset = 1 }
enum  ThrowOnFailure { DoThrowOnRejection , DoNotThrow }
Public Types inherited from QV4::Managed
enum  {
  IsExecutionContext = false , IsString = false , IsStringOrSymbol = false , IsObject = false ,
  IsTailCallable = false , IsErrorObject = false , IsArrayData = false
}
enum  { NInlineProperties = 0 }
enum  Type {
  Type_Invalid , Type_String , Type_Object , Type_Symbol ,
  Type_ArrayObject , Type_FunctionObject , Type_GeneratorObject , Type_BooleanObject ,
  Type_NumberObject , Type_StringObject , Type_SymbolObject , Type_DateObject ,
  Type_RegExpObject , Type_ErrorObject , Type_ArgumentsObject , Type_JsonObject ,
  Type_MathObject , Type_ProxyObject , Type_UrlObject , Type_UrlSearchParamsObject ,
  Type_ExecutionContext , Type_InternalClass , Type_SetIteratorObject , Type_MapIteratorObject ,
  Type_ArrayIteratorObject , Type_StringIteratorObject , Type_ForInIterator , Type_RegExp ,
  Type_V4Sequence , Type_QmlListProperty , Type_V4QObjectWrapper , Type_QMLTypeWrapper ,
  Type_V4ReferenceObject , Type_QMLValueTypeWrapper , Type_MemberData , Type_ArrayData ,
  Type_StringOrSymbol
}
Public Types inherited from QV4::Value
using ManagedPtr = Managed *
Public Types inherited from QV4::StaticValue
enum class  TagBit {
  SpecialNegative = 0b10000000000000000000 << 12 , SpecialQNaN = 0b00000000000010000000 << 12 , Special = 0b00000000000001000000 << 12 , IntCompat = 0b00000000000000100000 << 12 ,
  Unmanaged = 0b00000000000000010000 << 12 , IntOrBool = 0b00000000000000001000 << 12 , Number = 0b00000000000000000100 << 12
}
enum  Type {
  Managed_Type = 0 , Double_Type = 1 , Undefined_Type = 2 , Empty_Type = quint32(TagBit::Unmanaged) ,
  Null_Type = Empty_Type | quint32(TagBit::IntCompat) , Boolean_Type = Null_Type | quint32(TagBit::IntOrBool) , Integer_Type = Boolean_Type | quint32(TagBit::Number)
}
enum  {
  Tag_Shift = 32 , IsIntegerConvertible_Shift = 48 , IsIntegerConvertible_Value = 3 , IsIntegerOrBool_Shift = 47 ,
  IsIntegerOrBool_Value = 7
}
enum class  QuickType : quint32 {
  Managed = Managed_Type , Empty = Empty_Type , Null = Null_Type , Boolean = Boolean_Type ,
  Integer = Integer_Type , PlusInf = quint32(TagBit::Number) | quint32(TagBit::Special) | quint32(TagBit::Unmanaged) , MinusInf = PlusInf | quint32(TagBit::SpecialNegative) , NaN = PlusInf | quint32(TagBit::SpecialQNaN) ,
  MinusNaN = NaN | quint32(TagBit::SpecialNegative)
}
enum  {
  QT_Empty = Empty_Type , QT_Null = Null_Type , QT_Bool = Boolean_Type , QT_Int = Integer_Type ,
  QuickType_Shift = Tag_Shift
}
using HeapBasePtr = Heap::Base *
using ValueTypeInternal = QuickType

Public Member Functions

void setInternalClass (Heap::InternalClass *ic)
const ValuepropertyData (uint index) const
Heap::ArrayData * arrayData () const
void setArrayData (ArrayData *a)
void getProperty (const InternalClassEntry &entry, Property *p) const
void setProperty (const InternalClassEntry &entry, const Property *p)
void setProperty (uint index, Value v) const
void setProperty (uint index, Heap::Base *b) const
void setProperty (ExecutionEngine *engine, uint index, Value v) const
void setProperty (ExecutionEngine *engine, uint index, Heap::Base *b) const
const VTablevtable () const
PropertyAttributes getOwnProperty (PropertyKey id, Property *p=nullptr) const
PropertyIndex getValueOrSetter (PropertyKey id, PropertyAttributes *attrs)
bool hasProperty (PropertyKey id) const
bool defineOwnProperty (PropertyKey id, const Property *p, PropertyAttributes attrs)
ReturnedValue getValue (const Value &v, PropertyAttributes attrs) const
ReturnedValue getValueByIndex (uint propertyIndex) const
bool putValue (uint memberIndex, PropertyAttributes attrs, const Value &value)
void defineDefaultProperty (StringOrSymbol *name, const Value &value, PropertyAttributes attributes=Attr_Data|Attr_NotEnumerable)
void defineDefaultProperty (const QString &name, const Value &value, PropertyAttributes attributes=Attr_Data|Attr_NotEnumerable)
void defineDefaultProperty (const QString &name, VTable::Call code, int argumentCount=0, PropertyAttributes attributes=Attr_Data|Attr_NotEnumerable)
void defineDefaultProperty (StringOrSymbol *name, VTable::Call code, int argumentCount=0, PropertyAttributes attributes=Attr_Data|Attr_NotEnumerable)
void defineAccessorProperty (const QString &name, VTable::Call getter, VTable::Call setter)
void defineAccessorProperty (StringOrSymbol *name, VTable::Call getter, VTable::Call setter)
void defineReadonlyProperty (const QString &name, const Value &value)
void defineReadonlyProperty (String *name, const Value &value)
void defineReadonlyConfigurableProperty (const QString &name, const Value &value)
void defineReadonlyConfigurableProperty (StringOrSymbol *name, const Value &value)
void addSymbolSpecies ()
void insertMember (StringOrSymbol *s, const Value &v, PropertyAttributes attributes=Attr_Data)
void insertMember (StringOrSymbol *s, const Property *p, PropertyAttributes attributes)
bool isExtensible () const
bool preventExtensions ()
Heap::Object * getPrototypeOf () const
bool setPrototypeOf (const Object *p)
void setPrototypeUnchecked (const Object *p)
void copyArrayData (Object *other)
bool setArrayLength (uint newLen)
void setArrayLengthUnchecked (uint l)
void arraySet (uint index, const Property *p, PropertyAttributes attributes=Attr_Data)
void arraySet (uint index, const Value &value)
bool arrayPut (uint index, const Value &value)
bool arrayPut (uint index, const Value *values, uint n)
void setArrayAttributes (uint i, PropertyAttributes a)
void push_back (const Value &v)
ArrayData::Type arrayType () const
void setArrayType (ArrayData::Type t)
void arrayReserve (uint n)
void arrayCreate ()
void initSparseArray ()
SparseArrayNodesparseBegin () const
SparseArrayNodesparseEnd () const
bool protoHasArray ()
ReturnedValue get (StringOrSymbol *name, bool *hasProperty=nullptr, const Value *receiver=nullptr) const
ReturnedValue get (uint idx, bool *hasProperty=nullptr, const Value *receiver=nullptr) const
QT_DEPRECATED ReturnedValue getIndexed (uint idx, bool *hasProperty=nullptr) const
ReturnedValue get (PropertyKey id, const Value *receiver=nullptr, bool *hasProperty=nullptr) const
bool put (StringOrSymbol *name, const Value &v, Value *receiver=nullptr)
bool put (uint idx, const Value &v, Value *receiver=nullptr)
QT_DEPRECATED bool putIndexed (uint idx, const Value &v)
bool put (PropertyKey id, const Value &v, Value *receiver=nullptr)
bool setIndexed (uint idx, const Value &v, ThrowOnFailure shouldThrow)
bool set (StringOrSymbol *name, const Value &v, ThrowOnFailure shouldThrow)
bool deleteProperty (PropertyKey id)
OwnPropertyKeyIteratorownPropertyKeys (Value *target) const
qint64 getLength () const
ReturnedValue instanceOf (const Value &var) const
bool isConcatSpreadable () const
bool isArray () const
const FunctionObjectspeciesConstructor (Scope &scope, const FunctionObject *defaultConstructor) const
bool setProtoFromNewTarget (const Value *newTarget)
ReturnedValue resolveLookupGetter (ExecutionEngine *engine, Lookup *lookup) const
bool resolveLookupSetter (ExecutionEngine *engine, Lookup *lookup, const Value &value)
int metacall (QMetaObject::Call call, int index, void **a)
Public Member Functions inherited from QV4::Managed
Heap::InternalClassinternalClass () const
const VTablevtable () const
ExecutionEngineengine () const
bool isV4SequenceType () const
bool isV4QObjectWrapper () const
bool isQmlListPropertyType () const
bool isArrayLike () const
bool isArrayObject () const
bool isStringObject () const
bool isSymbolObject () const
QString className () const
bool isEqualTo (const Managed *other) const
bool inUse () const
bool markBit () const
void mark (MarkStack *markStack)
Q_ALWAYS_INLINE Heap::BaseheapObject () const
template<typename T>
T * cast ()
template<typename T>
const T * cast () const
Public Member Functions inherited from QV4::Value
bool isString () const
bool isStringOrSymbol () const
bool isSymbol () const
bool isObject () const
bool isFunctionObject () const
QML_NEARLY_ALWAYS_INLINE StringstringValue () const
QML_NEARLY_ALWAYS_INLINE StringOrSymbolstringOrSymbolValue () const
QML_NEARLY_ALWAYS_INLINE SymbolsymbolValue () const
QML_NEARLY_ALWAYS_INLINE ObjectobjectValue () const
QML_NEARLY_ALWAYS_INLINE ManagedPtr managed () const
QML_NEARLY_ALWAYS_INLINE Value::HeapBasePtr heapObject () const
int toUInt16 () const
int toInt32 () const
unsigned int toUInt32 () const
qint64 toLength () const
qint64 toIndex () const
bool toBoolean () const
double toInteger () const
ReturnedValue convertedToNumber () const
double toNumber () const
double toNumberImpl () const
QString toQStringNoThrow () const
QString toQString () const
QString toQString (bool *ok) const
Heap::StringtoString (ExecutionEngine *e) const
QV4::PropertyKey toPropertyKey (ExecutionEngine *e) const
Heap::Object * toObject (ExecutionEngine *e) const
bool isPrimitive () const
template<typename T>
const T * as () const
template<typename T>
T * as ()
template<typename T>
T * cast ()
template<typename T>
const T * cast () const
uint asArrayLength (bool *ok) const
bool sameValue (Value other) const
bool sameValueZero (Value other) const
void mark (MarkStack *markStack)
Valueoperator= (const ScopedValue &v)
Valueoperator= (ReturnedValue v)
Valueoperator= (ManagedPtr m)
Valueoperator= (HeapBasePtr o)
template<typename T>
Valueoperator= (const Scoped< T > &t)
template<>
const ArrayObjectas () const
template<>
const FunctionObjectas () const
template<>
const StringOrSymbolas () const
template<>
const Stringas () const
template<>
const DateObjectas () const
template<>
const Managedas () const
template<>
const Objectas () const
template<>
const ErrorObjectas () const
template<>
const UrlObjectas () const
template<>
const UrlSearchParamsObjectas () const
Public Member Functions inherited from QV4::StaticValue
 StaticValue ()=default
constexpr StaticValue (quint64 val)
StaticValueoperator= (ReturnedValue v)
template<typename Value>
StaticValueoperator= (const Value &)
template<typename Value>
const ValueasValue () const
template<typename Value>
ValueasValue ()
QV4_NEARLY_ALWAYS_INLINE constexpr quint64rawValueRef ()
QV4_NEARLY_ALWAYS_INLINE constexpr quint64 rawValue () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setRawValue (quint64 raw)
QV4_NEARLY_ALWAYS_INLINE constexpr void setTagValue (quint32 tag, quint32 value)
QV4_NEARLY_ALWAYS_INLINE constexpr quint32 value () const
QV4_NEARLY_ALWAYS_INLINE constexpr quint32 tag () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setTag (quint32 tag)
QV4_NEARLY_ALWAYS_INLINE constexpr int int_32 () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setInt_32 (int i)
QV4_NEARLY_ALWAYS_INLINE uint uint_32 () const
QV4_NEARLY_ALWAYS_INLINE constexpr void setEmpty ()
Type type () const
quint64 quickType () const
bool isEmpty () const
bool isNull () const
bool isBoolean () const
bool isInteger () const
bool isNullOrUndefined () const
bool isUndefined () const
bool isDouble () const
bool isNumber () const
bool isManagedOrUndefined () const
bool isManaged () const
bool isIntOrBool () const
bool integerCompatible () const
bool isNaN () const
bool isPositiveInt () const
QV4_NEARLY_ALWAYS_INLINE double doubleValue () const
QV4_NEARLY_ALWAYS_INLINE void setDouble (double d)
bool isInt32 ()
double asDouble () const
bool booleanValue () const
int integerValue () const
bool tryIntegerConversion ()
bool toBoolean () const
int toInt32 () const
ReturnedValuedata_ptr ()
constexpr ReturnedValue asReturnedValue () const
template<>
StaticValueoperator= (const Value &value)
template<typename Managed>
StaticValueoperator= (const Managed &m)
template<>
ValueasValue ()
template<>
const ValueasValue () const

Static Public Member Functions

static ReturnedValue getValue (const Value *thisObject, const Value &v, PropertyAttributes attrs)
static ReturnedValue getValueAccessor (const Value *thisObject, const Value &v, PropertyAttributes attrs)
static ReturnedValue checkedInstanceOf (ExecutionEngine *engine, const FunctionObject *typeObject, const Value &var)
Static Public Member Functions inherited from QV4::Managed
static QString typeToString (Type)
Static Public Member Functions inherited from QV4::Value
static constexpr Value fromStaticValue (StaticValue staticValue)
static constexpr Value undefined ()
static Value fromHeapObject (HeapBasePtr m)
static bool toBooleanImpl (Value val)
static double toNumberImpl (Value v)
static Heap::StringtoString (ExecutionEngine *e, Value val)
static Heap::Object * toObject (ExecutionEngine *e, Value val)
static constexpr Value fromReturnedValue (ReturnedValue val)
static double toInteger (double d)
static int toInt32 (double d)
static unsigned int toUInt32 (double d)
static constexpr Value emptyValue ()
static constexpr Value fromBoolean (bool b)
static constexpr Value fromInt32 (int i)
static constexpr Value undefinedValue ()
static constexpr Value nullValue ()
static Value fromDouble (double d)
static Value fromUInt32 (uint i)
Static Public Member Functions inherited from QV4::StaticValue
static int valueOffset ()
static int tagOffset ()
static constexpr quint64 tagValue (quint32 tag, quint32 value)
static constexpr quint64 tagBitMask (TagBit bit)
static bool integerCompatible (StaticValue a, StaticValue b)
static bool bothDouble (StaticValue a, StaticValue b)
static QV4_NEARLY_ALWAYS_INLINE bool isInt32 (double d)
static constexpr StaticValue fromReturnedValue (ReturnedValue val)
static constexpr StaticValue emptyValue ()
static constexpr StaticValue fromBoolean (bool b)
static constexpr StaticValue fromInt32 (int i)
static constexpr StaticValue undefinedValue ()
static constexpr StaticValue nullValue ()
static StaticValue fromDouble (double d)
static StaticValue fromUInt32 (uint i)
static double toInteger (double d)
static int toInt32 (double d)
static unsigned int toUInt32 (double d)

Static Protected Member Functions

static ReturnedValue virtualGet (const Managed *m, PropertyKey id, const Value *receiver, bool *hasProperty)
static bool virtualPut (Managed *m, PropertyKey id, const Value &value, Value *receiver)
static bool virtualDeleteProperty (Managed *m, PropertyKey id)
static bool virtualHasProperty (const Managed *m, PropertyKey id)
static PropertyAttributes virtualGetOwnProperty (const Managed *m, PropertyKey id, Property *p)
static bool virtualDefineOwnProperty (Managed *m, PropertyKey id, const Property *p, PropertyAttributes attrs)
static bool virtualIsExtensible (const Managed *m)
static bool virtualPreventExtensions (Managed *)
static Heap::Object * virtualGetPrototypeOf (const Managed *)
static bool virtualSetPrototypeOf (Managed *, const Object *)
static OwnPropertyKeyIteratorvirtualOwnPropertyKeys (const Object *m, Value *target)
static qint64 virtualGetLength (const Managed *m)
static ReturnedValue virtualInstanceOf (const Object *typeObject, const Value &var)
static ReturnedValue virtualResolveLookupGetter (const Object *object, ExecutionEngine *engine, Lookup *lookup)
static bool virtualResolveLookupSetter (Object *object, ExecutionEngine *engine, Lookup *lookup, const Value &value)
static int virtualMetacall (Object *object, QMetaObject::Call call, int index, void **a)
Static Protected Member Functions inherited from QV4::Managed
static bool virtualIsEqualTo (Managed *m, Managed *other)

Friends

struct ObjectIterator
struct ObjectPrototype

Additional Inherited Members

Public Attributes inherited from QV4::StaticValue
quint64 _val
Static Public Attributes inherited from QV4::StaticValue
static constexpr quint64 ExponentMask = 0b0111111111110000ull << 48
static constexpr quint64 Top1Mask = 0b1000000000000000ull << 48
static constexpr quint64 Upper3Mask = 0b0000000000001110ull << 48
static constexpr quint64 Lower5Mask = 0b0000000000011111ull
static constexpr quint64 ManagedMask = ExponentMask | quint64(TagBit::Unmanaged) << Tag_Shift
static constexpr quint64 DoubleMask = ManagedMask | quint64(TagBit::Special) << Tag_Shift
static constexpr quint64 NumberMask = ManagedMask | quint64(TagBit::Number) << Tag_Shift
static constexpr quint64 IntOrBoolMask = ManagedMask | quint64(TagBit::IntOrBool) << Tag_Shift
static constexpr quint64 IntCompatMask = ManagedMask | quint64(TagBit::IntCompat) << Tag_Shift
static constexpr quint64 EncodeMask = DoubleMask | NumberMask
static constexpr quint64 DoubleDiscriminator = ((quint64(TagBit::Unmanaged) | quint64(TagBit::Special)) << Tag_Shift)
static constexpr quint64 NumberDiscriminator = ((quint64(TagBit::Unmanaged) | quint64(TagBit::Number)) << Tag_Shift)
Static Protected Attributes inherited from QV4::VTableBase
static constexpr VTable::Destroy virtualDestroy = nullptr
static constexpr VTable::IsEqualTo virtualIsEqualTo = nullptr
static constexpr VTable::Get virtualGet = nullptr
static constexpr VTable::Put virtualPut = nullptr
static constexpr VTable::DeleteProperty virtualDeleteProperty = nullptr
static constexpr VTable::HasProperty virtualHasProperty = nullptr
static constexpr VTable::GetOwnProperty virtualGetOwnProperty = nullptr
static constexpr VTable::DefineOwnProperty virtualDefineOwnProperty = nullptr
static constexpr VTable::IsExtensible virtualIsExtensible = nullptr
static constexpr VTable::PreventExtensions virtualPreventExtensions = nullptr
static constexpr VTable::GetPrototypeOf virtualGetPrototypeOf = nullptr
static constexpr VTable::SetPrototypeOf virtualSetPrototypeOf = nullptr
static constexpr VTable::GetLength virtualGetLength = nullptr
static constexpr VTable::OwnPropertyKeys virtualOwnPropertyKeys = nullptr
static constexpr VTable::InstanceOf virtualInstanceOf = nullptr
static constexpr VTable::Call virtualCall = nullptr
static constexpr VTable::CallAsConstructor virtualCallAsConstructor = nullptr
static constexpr VTable::CallWithMetaTypes virtualCallWithMetaTypes = nullptr
static constexpr VTable::CallWithMetaTypes virtualConvertAndCall = nullptr
static constexpr VTable::ResolveLookupGetter virtualResolveLookupGetter = nullptr
static constexpr VTable::ResolveLookupSetter virtualResolveLookupSetter = nullptr
static constexpr VTable::Metacall virtualMetacall = nullptr

Detailed Description

Definition at line 105 of file qv4object_p.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NInlineProperties 

Definition at line 111 of file qv4object_p.h.

◆ anonymous enum

anonymous enum
Enumerator
IsObject 
GetterOffset 
SetterOffset 

Definition at line 113 of file qv4object_p.h.

◆ ThrowOnFailure

Enumerator
DoThrowOnRejection 
DoNotThrow 

Definition at line 290 of file qv4object_p.h.

Member Function Documentation

◆ addSymbolSpecies()

void Object::addSymbolSpecies ( )

Definition at line 234 of file qv4object.cpp.

◆ arrayCreate()

void QV4::Object::arrayCreate ( )
inline

Definition at line 248 of file qv4object_p.h.

◆ arrayData()

Heap::ArrayData * QV4::Object::arrayData ( ) const
inline

Definition at line 123 of file qv4object_p.h.

◆ arrayPut() [1/2]

bool QV4::Object::arrayPut ( uint index,
const Value & value )
inline

Definition at line 217 of file qv4object_p.h.

◆ arrayPut() [2/2]

bool QV4::Object::arrayPut ( uint index,
const Value * values,
uint n )
inline

Definition at line 220 of file qv4object_p.h.

◆ arrayReserve()

void QV4::Object::arrayReserve ( uint n)
inline

Definition at line 244 of file qv4object_p.h.

◆ arraySet() [1/2]

void Object::arraySet ( uint index,
const Property * p,
PropertyAttributes attributes = Attr_Data )
inline

Definition at line 486 of file qv4object_p.h.

◆ arraySet() [2/2]

void Object::arraySet ( uint index,
const Value & value )
inline

Definition at line 502 of file qv4object_p.h.

◆ arrayType()

ArrayData::Type QV4::Object::arrayType ( ) const
inline

Definition at line 234 of file qv4object_p.h.

◆ checkedInstanceOf()

ReturnedValue Object::checkedInstanceOf ( ExecutionEngine * engine,
const FunctionObject * typeObject,
const Value & var )
static

Definition at line 872 of file qv4object.cpp.

◆ copyArrayData()

void Object::copyArrayData ( Object * other)

Definition at line 691 of file qv4object.cpp.

◆ defineAccessorProperty() [1/2]

void Object::defineAccessorProperty ( const QString & name,
VTable::Call getter,
VTable::Call setter )

Definition at line 175 of file qv4object.cpp.

◆ defineAccessorProperty() [2/2]

void Object::defineAccessorProperty ( StringOrSymbol * name,
VTable::Call getter,
VTable::Call setter )

Definition at line 183 of file qv4object.cpp.

◆ defineDefaultProperty() [1/4]

void Object::defineDefaultProperty ( const QString & name,
const Value & value,
PropertyAttributes attributes = Attr_Data|Attr_NotEnumerable )

Definition at line 148 of file qv4object.cpp.

◆ defineDefaultProperty() [2/4]

void Object::defineDefaultProperty ( const QString & name,
VTable::Call code,
int argumentCount = 0,
PropertyAttributes attributes = Attr_Data|Attr_NotEnumerable )

Definition at line 156 of file qv4object.cpp.

◆ defineDefaultProperty() [3/4]

void QV4::Object::defineDefaultProperty ( StringOrSymbol * name,
const Value & value,
PropertyAttributes attributes = Attr_Data|Attr_NotEnumerable )
inline

Definition at line 172 of file qv4object_p.h.

◆ defineDefaultProperty() [4/4]

void QV4::Object::defineDefaultProperty ( StringOrSymbol * name,
VTable::Call code,
int argumentCount = 0,
PropertyAttributes attributes = Attr_Data|Attr_NotEnumerable )

◆ defineOwnProperty()

bool QV4::Object::defineOwnProperty ( PropertyKey id,
const Property * p,
PropertyAttributes attrs )
inline

Definition at line 145 of file qv4object_p.h.

◆ defineReadonlyConfigurableProperty() [1/2]

void Object::defineReadonlyConfigurableProperty ( const QString & name,
const Value & value )

Definition at line 221 of file qv4object.cpp.

◆ defineReadonlyConfigurableProperty() [2/2]

void Object::defineReadonlyConfigurableProperty ( StringOrSymbol * name,
const Value & value )

Definition at line 229 of file qv4object.cpp.

◆ defineReadonlyProperty() [1/2]

void Object::defineReadonlyProperty ( const QString & name,
const Value & value )

Definition at line 208 of file qv4object.cpp.

◆ defineReadonlyProperty() [2/2]

void Object::defineReadonlyProperty ( String * name,
const Value & value )

Definition at line 216 of file qv4object.cpp.

◆ deleteProperty()

bool QV4::Object::deleteProperty ( PropertyKey id)
inline

Definition at line 328 of file qv4object_p.h.

◆ get() [1/3]

ReturnedValue QV4::Object::get ( PropertyKey id,
const Value * receiver = nullptr,
bool * hasProperty = nullptr ) const
inline

Definition at line 277 of file qv4object_p.h.

◆ get() [2/3]

ReturnedValue QV4::Object::get ( StringOrSymbol * name,
bool * hasProperty = nullptr,
const Value * receiver = nullptr ) const
inline

Definition at line 271 of file qv4object_p.h.

◆ get() [3/3]

ReturnedValue QV4::Object::get ( uint idx,
bool * hasProperty = nullptr,
const Value * receiver = nullptr ) const
inline

Definition at line 273 of file qv4object_p.h.

◆ getIndexed()

QT_DEPRECATED ReturnedValue QV4::Object::getIndexed ( uint idx,
bool * hasProperty = nullptr ) const
inline

Definition at line 275 of file qv4object_p.h.

◆ getLength()

qint64 QV4::Object::getLength ( ) const
inline

Definition at line 332 of file qv4object_p.h.

◆ getOwnProperty()

PropertyAttributes QV4::Object::getOwnProperty ( PropertyKey id,
Property * p = nullptr ) const
inline

Definition at line 135 of file qv4object_p.h.

◆ getProperty()

void Object::getProperty ( const InternalClassEntry & entry,
Property * p ) const

Definition at line 87 of file qv4object.cpp.

◆ getPrototypeOf()

Heap::Object * QV4::Object::getPrototypeOf ( ) const
inline

Definition at line 202 of file qv4object_p.h.

◆ getValue() [1/2]

ReturnedValue QV4::Object::getValue ( const Value & v,
PropertyAttributes attrs ) const
inline

Definition at line 157 of file qv4object_p.h.

◆ getValue() [2/2]

ReturnedValue QV4::Object::getValue ( const Value * thisObject,
const Value & v,
PropertyAttributes attrs )
inlinestatic

Definition at line 152 of file qv4object_p.h.

◆ getValueAccessor()

ReturnedValue Object::getValueAccessor ( const Value * thisObject,
const Value & v,
PropertyAttributes attrs )
static

Definition at line 106 of file qv4object.cpp.

◆ getValueByIndex()

ReturnedValue QV4::Object::getValueByIndex ( uint propertyIndex) const
inline

Definition at line 160 of file qv4object_p.h.

◆ getValueOrSetter()

PropertyIndex Object::getValueOrSetter ( PropertyKey id,
PropertyAttributes * attrs )

Definition at line 277 of file qv4object.cpp.

◆ hasProperty()

bool QV4::Object::hasProperty ( PropertyKey id) const
inline

Definition at line 141 of file qv4object_p.h.

◆ initSparseArray()

void Object::initSparseArray ( )

Definition at line 1088 of file qv4object.cpp.

◆ insertMember() [1/2]

void Object::insertMember ( StringOrSymbol * s,
const Property * p,
PropertyAttributes attributes )

Definition at line 260 of file qv4object.cpp.

◆ insertMember() [2/2]

void QV4::Object::insertMember ( StringOrSymbol * s,
const Value & v,
PropertyAttributes attributes = Attr_Data )
inline

Definition at line 192 of file qv4object_p.h.

◆ instanceOf()

ReturnedValue QV4::Object::instanceOf ( const Value & var) const
inline

Definition at line 333 of file qv4object_p.h.

◆ isArray()

bool Object::isArray ( ) const

Definition at line 1105 of file qv4object.cpp.

◆ isConcatSpreadable()

bool Object::isConcatSpreadable ( ) const

Definition at line 1096 of file qv4object.cpp.

◆ isExtensible()

bool QV4::Object::isExtensible ( ) const
inline

Definition at line 200 of file qv4object_p.h.

◆ metacall()

int QV4::Object::metacall ( QMetaObject::Call call,
int index,
void ** a )
inline

Definition at line 347 of file qv4object_p.h.

◆ ownPropertyKeys()

OwnPropertyKeyIterator * QV4::Object::ownPropertyKeys ( Value * target) const
inline

Definition at line 330 of file qv4object_p.h.

◆ preventExtensions()

bool QV4::Object::preventExtensions ( )
inline

Definition at line 201 of file qv4object_p.h.

◆ propertyData()

const Value * QV4::Object::propertyData ( uint index) const
inline

Definition at line 121 of file qv4object_p.h.

◆ protoHasArray()

bool QV4::Object::protoHasArray ( )
inline

Definition at line 260 of file qv4object_p.h.

◆ push_back()

void Object::push_back ( const Value & v)
inline

Definition at line 471 of file qv4object_p.h.

◆ put() [1/3]

bool QV4::Object::put ( PropertyKey id,
const Value & v,
Value * receiver = nullptr )
inline

Definition at line 287 of file qv4object_p.h.

◆ put() [2/3]

bool QV4::Object::put ( StringOrSymbol * name,
const Value & v,
Value * receiver = nullptr )
inline

Definition at line 281 of file qv4object_p.h.

◆ put() [3/3]

bool QV4::Object::put ( uint idx,
const Value & v,
Value * receiver = nullptr )
inline

Definition at line 283 of file qv4object_p.h.

◆ putIndexed()

QT_DEPRECATED bool QV4::Object::putIndexed ( uint idx,
const Value & v )
inline

Definition at line 285 of file qv4object_p.h.

◆ putValue()

bool Object::putValue ( uint memberIndex,
PropertyAttributes attrs,
const Value & value )

Definition at line 121 of file qv4object.cpp.

◆ resolveLookupGetter()

ReturnedValue QV4::Object::resolveLookupGetter ( ExecutionEngine * engine,
Lookup * lookup ) const
inline

Definition at line 342 of file qv4object_p.h.

◆ resolveLookupSetter()

bool QV4::Object::resolveLookupSetter ( ExecutionEngine * engine,
Lookup * lookup,
const Value & value )
inline

Definition at line 344 of file qv4object_p.h.

◆ set()

bool QV4::Object::set ( StringOrSymbol * name,
const Value & v,
ThrowOnFailure shouldThrow )
inline

Definition at line 313 of file qv4object_p.h.

◆ setArrayAttributes()

void QV4::Object::setArrayAttributes ( uint i,
PropertyAttributes a )
inline

Definition at line 223 of file qv4object_p.h.

◆ setArrayData()

void QV4::Object::setArrayData ( ArrayData * a)
inline

Definition at line 124 of file qv4object_p.h.

◆ setArrayLength()

bool Object::setArrayLength ( uint newLen)

Definition at line 1064 of file qv4object.cpp.

◆ setArrayLengthUnchecked()

void Object::setArrayLengthUnchecked ( uint l)
inline

Definition at line 465 of file qv4object_p.h.

◆ setArrayType()

void QV4::Object::setArrayType ( ArrayData::Type t)
inline

Definition at line 238 of file qv4object_p.h.

◆ setIndexed()

bool QV4::Object::setIndexed ( uint idx,
const Value & v,
ThrowOnFailure shouldThrow )
inline

Definition at line 297 of file qv4object_p.h.

◆ setInternalClass()

void Object::setInternalClass ( Heap::InternalClass * ic)

Definition at line 30 of file qv4object.cpp.

◆ setProperty() [1/5]

void Object::setProperty ( const InternalClassEntry & entry,
const Property * p )

Definition at line 94 of file qv4object.cpp.

◆ setProperty() [2/5]

void QV4::Object::setProperty ( ExecutionEngine * engine,
uint index,
Heap::Base * b ) const
inline

Definition at line 131 of file qv4object_p.h.

◆ setProperty() [3/5]

void QV4::Object::setProperty ( ExecutionEngine * engine,
uint index,
Value v ) const
inline

Definition at line 130 of file qv4object_p.h.

◆ setProperty() [4/5]

void QV4::Object::setProperty ( uint index,
Heap::Base * b ) const
inline

Definition at line 129 of file qv4object_p.h.

◆ setProperty() [5/5]

void QV4::Object::setProperty ( uint index,
Value v ) const
inline

Definition at line 128 of file qv4object_p.h.

◆ setProtoFromNewTarget()

bool Object::setProtoFromNewTarget ( const Value * newTarget)

Definition at line 1144 of file qv4object.cpp.

◆ setPrototypeOf()

bool QV4::Object::setPrototypeOf ( const Object * p)
inline

Definition at line 203 of file qv4object_p.h.

◆ setPrototypeUnchecked()

void Object::setPrototypeUnchecked ( const Object * p)

Definition at line 271 of file qv4object.cpp.

◆ sparseBegin()

SparseArrayNode * QV4::Object::sparseBegin ( ) const
inline

Definition at line 257 of file qv4object_p.h.

◆ sparseEnd()

SparseArrayNode * QV4::Object::sparseEnd ( ) const
inline

Definition at line 258 of file qv4object_p.h.

◆ speciesConstructor()

const FunctionObject * Object::speciesConstructor ( Scope & scope,
const FunctionObject * defaultConstructor ) const

Definition at line 1122 of file qv4object.cpp.

◆ virtualDefineOwnProperty()

bool Object::virtualDefineOwnProperty ( Managed * m,
PropertyKey id,
const Property * p,
PropertyAttributes attrs )
staticprotected

Definition at line 954 of file qv4object.cpp.

◆ virtualDeleteProperty()

bool Object::virtualDeleteProperty ( Managed * m,
PropertyKey id )
staticprotected

Definition at line 326 of file qv4object.cpp.

◆ virtualGet()

ReturnedValue Object::virtualGet ( const Managed * m,
PropertyKey id,
const Value * receiver,
bool * hasProperty )
staticprotected

Definition at line 316 of file qv4object.cpp.

◆ virtualGetLength()

qint64 Object::virtualGetLength ( const Managed * m)
staticprotected

Definition at line 726 of file qv4object.cpp.

◆ virtualGetOwnProperty()

PropertyAttributes Object::virtualGetOwnProperty ( const Managed * m,
PropertyKey id,
Property * p )
staticprotected

Definition at line 926 of file qv4object.cpp.

◆ virtualGetPrototypeOf()

Heap::Object * Object::virtualGetPrototypeOf ( const Managed * m)
staticprotected

Definition at line 1036 of file qv4object.cpp.

◆ virtualHasProperty()

bool Object::virtualHasProperty ( const Managed * m,
PropertyKey id )
staticprotected

Definition at line 910 of file qv4object.cpp.

◆ virtualInstanceOf()

ReturnedValue Object::virtualInstanceOf ( const Object * typeObject,
const Value & var )
staticprotected

Definition at line 734 of file qv4object.cpp.

◆ virtualIsExtensible()

bool Object::virtualIsExtensible ( const Managed * m)
staticprotected

Definition at line 1023 of file qv4object.cpp.

◆ virtualMetacall()

int Object::virtualMetacall ( Object * object,
QMetaObject::Call call,
int index,
void ** a )
staticprotected

This method is modeled after \l{QMetaObject::metacall}. It takes a JavaScript object and performs call on it, using index as identifier for the property/method/etc to be used and a as arguments. Like \l{QMetaObject::metacall} this method is overly generic in order to reduce the API surface. On a plain Object it does nothing and returns 0. Specific objects can override it and do some meaningful work. If the metacall succeeds they should return a non-0 value. Otherwise they should return 0.

Most prominently, \l QMetaObject::ReadProperty and \l QMetaObject::WriteProperty calls can be used to manipulate properties of QObjects and Q_GADGETs wrapped by QV4::QObjectWrapper, QV4::QQmlTypeWrapper and QV4::QQmlValueTypeWrapper. They can also be used to manipulate elements in QV4::Sequence.

Definition at line 863 of file qv4object.cpp.

◆ virtualOwnPropertyKeys()

OwnPropertyKeyIterator * Object::virtualOwnPropertyKeys ( const Object * m,
Value * target )
staticprotected

Definition at line 409 of file qv4object.cpp.

◆ virtualPreventExtensions()

bool Object::virtualPreventExtensions ( Managed * m)
staticprotected

Definition at line 1028 of file qv4object.cpp.

◆ virtualPut()

bool Object::virtualPut ( Managed * m,
PropertyKey id,
const Value & value,
Value * receiver )
staticprotected

Definition at line 321 of file qv4object.cpp.

◆ virtualResolveLookupGetter()

ReturnedValue Object::virtualResolveLookupGetter ( const Object * object,
ExecutionEngine * engine,
Lookup * lookup )
staticprotected

Definition at line 746 of file qv4object.cpp.

◆ virtualResolveLookupSetter()

bool Object::virtualResolveLookupSetter ( Object * object,
ExecutionEngine * engine,
Lookup * lookup,
const Value & value )
staticprotected

Definition at line 790 of file qv4object.cpp.

◆ virtualSetPrototypeOf()

bool Object::virtualSetPrototypeOf ( Managed * m,
const Object * proto )
staticprotected

Definition at line 1041 of file qv4object.cpp.

◆ vtable()

const VTable * QV4::Object::vtable ( ) const
inline

Definition at line 133 of file qv4object_p.h.

◆ ObjectIterator

friend struct ObjectIterator
friend

Definition at line 377 of file qv4object_p.h.

◆ ObjectPrototype

friend struct ObjectPrototype
friend

Definition at line 378 of file qv4object_p.h.


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