6#include <private/qqmlengine_p.h> 
    7#include <private/qqmlcontext_p.h> 
    8#include <private/qqmlmetaobject_p.h> 
    9#include <private/qqmltypedata_p.h> 
   10#include <private/qqmlvaluetypewrapper_p.h> 
   12#include <private/qjsvalue_p.h> 
   13#include <private/qv4functionobject_p.h> 
   14#include <private/qv4objectproto_p.h> 
   15#include <private/qv4qobjectwrapper_p.h> 
   16#include <private/qv4identifiertable_p.h> 
   17#include <private/qv4lookup_p.h> 
   36    typePrivate = 
nullptr;
 
   38        typeNamespace->release();
 
   50    return d()->type().isSingleton();
 
   59    if (
type.isSingleton())
 
   60        return type.metaObject();
 
   72    if (
type.isSingleton())
 
   86    return e->singletonInstance<
QObject*>(
d()->type());
 
   96                d()->
object, 
type.attachedPropertiesFunction(
e)));
 
   99    if (
type.isQJSValueSingleton())
 
  100        return QVariant::fromValue<QJSValue>(
e->singletonInstance<
QJSValue>(
type));
 
  102    return QVariant::fromValue<QObject*>(
e->singletonInstance<
QObject*>(
type));
 
  114    w->d()->mode = 
mode; 
w->d()->object = 
o;
 
  115    w->d()->typePrivate = 
t.priv();
 
  117    return w.asReturnedValue();
 
  132    return w.asReturnedValue();
 
  146    for (
int ii = 
metaObject->enumeratorCount() - 1; ii >= 0; --ii) {
 
  178    if (
type.isValid()) {
 
  181        if (
type.isSingleton()) {
 
  184            if (
type.isQObjectSingleton() || 
type.isCompositeSingleton()) {
 
  188                    if (includeEnums && 
name->startsWithUpper()) {
 
  197                            enumWrapper->d()->typePrivate = 
type.priv();
 
  199                            enumWrapper->d()->scopeEnumIndex = 
value;
 
  214            } 
else if (
type.isQJSValueSingleton()) {
 
  228            if (
name->startsWithUpper()) {
 
  237                    enumWrapper->d()->typePrivate = 
type.priv();
 
  239                    enumWrapper->d()->scopeEnumIndex = 
value;
 
  245            } 
else if (
w->d()->object) {
 
  262    } 
else if (
w->d()->typeNamespace) {
 
  267            if (
r.type.isValid()) {
 
  269            } 
else if (
r.scriptIndex != -1) {
 
  271                return scripts->get(
r.scriptIndex);
 
  272            } 
else if (
r.importNamespace) {
 
  311    if (
type.isValid() && !
type.isSingleton() && 
w->d()->object) {
 
  320    } 
else if (
type.isSingleton()) {
 
  322        if (
type.isQObjectSingleton() || 
type.isCompositeSingleton()) {
 
  365        return qmlTypeWrapperA->
toVariant() == qmlTypeWrapperB->toVariant();
 
  378        return engine->throwTypeError();
 
  380    const QMetaType myTypeId = typeWrapper->d()->
type().typeId();
 
  403    const QMetaObject *theirType = wrapperObject->metaObject();
 
  420                                                          valueTypeMetaObject));
 
  446    if (
type.isValid()) {
 
  448        if (
type.isSingleton()) {
 
  450            if (
type.isQObjectSingleton() || 
type.isCompositeSingleton()) {
 
  453                    if (!includeEnums || !
name->startsWithUpper()) {
 
  461                                                lookup, ddata, 
property, 
val->objectValue(), 
nullptr);
 
  465                                                lookup, ddata, 
property, 
val->objectValue(), This);
 
  481        if (
name->startsWithUpper()) {
 
  496                enumWrapper->d()->typePrivate = 
type.priv();
 
  498                enumWrapper->d()->scopeEnumIndex = 
value;
 
  502                        = 
static_cast<Heap::Object*
>(enumWrapper->heapObject());
 
  523    if (
QObject *
object = typeWrapper->object()) {
 
  553    Heap::Object *
o = 
static_cast<Heap::Object *
>(
object.heapObject());
 
  565        return revertLookup();
 
  571        return revertLookup();
 
  573    if (!
type.isQObjectSingleton() && !
type.isCompositeSingleton())
 
  574        return revertLookup();
 
  600        return revertLookup();
 
  604        return revertLookup();
 
  606    if (!
type.isQObjectSingleton() && !
type.isCompositeSingleton())
 
  607        return revertLookup();
 
  622    auto *
o = 
static_cast<Heap::Object *
>(
base.heapObject());
 
  637    auto *
o = 
static_cast<Heap::Object *
>(
base.heapObject());
 
  651    typePrivate = 
nullptr;
 
  672    int index = resource->d()->scopeEnumIndex;
 
const char * constData() const noexcept
Returns a pointer to the const data stored in the byte array.
static QV4::ReturnedValue asReturnedValue(const QJSValue *jsval)
The QJSValue class acts as a container for Qt/JavaScript data types.
bool isUndefined() const
Returns true if this QJSValue is of the primitive type Undefined or if the managed value has been cle...
QQmlRefPointer< QV4::ExecutableCompilationUnit > compilationUnit
QQmlPropertyCache::ConstPtr propertyCache
static QQmlData * get(QObjectPrivate *priv, bool create)
QQmlTypeLoader typeLoader
static QQmlEnginePrivate * get(QQmlEngine *e)
The QQmlEngine class provides an environment for instantiating QML components.
T singletonInstance(int qmlTypeId)
\qmlproperty string Qt::uiLanguage
QQmlRefPointer< QQmlTypeData > getType(const QUrl &unNormalizedUrl, Mode mode=PreferSynchronous)
Returns a QQmlTypeData for the specified url.
static void refHandle(const QQmlTypePrivate *priv)
static void derefHandle(const QQmlTypePrivate *priv)
\macro QT_RESTRICTED_CAST_FROM_ASCII
ObjectType::Data * allocate(Args &&... args)
static auto fromValue(T &&value) noexcept(std::is_nothrow_copy_constructible_v< T > &&Private::CanUseInternalSpace< T >) -> std::enable_if_t< std::conjunction_v< std::is_copy_constructible< T >, std::is_destructible< T > >, QVariant >
Combined button and popup list for selecting options.
\qmltype Particle \inqmlmodule QtQuick.Particles
void setupQObjectLookup(Lookup *lookup, const QQmlData *ddata, const QQmlPropertyData *propertyData)
void setupQObjectMethodLookup(Lookup *lookup, const QQmlData *ddata, const QQmlPropertyData *propertyData, const Object *self, Heap::QObjectMethod *method)
bool qualifiesForMethodLookup(const QQmlPropertyData *propertyData)
DBusConnection const char DBusError * error
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLboolean GLboolean GLboolean b
GLfloat GLfloat GLfloat w
[0]
GLboolean GLboolean GLboolean GLboolean a
[7]
QQmlEngine * qmlEngine(const QObject *obj)
QQmlContext * qmlContext(const QObject *obj)
QObject * qmlAttachedPropertiesObject(QObject *object, QQmlAttachedPropertiesFunc func, bool create)
static ReturnedValue instanceOfQObject(const QV4::QQmlTypeWrapper *typeWrapper, const QObjectWrapper *objectWrapper)
static int enumForSingleton(QV4::ExecutionEngine *v4, String *name, QObject *qobjectSingleton, const QQmlType &type, bool *ok)
QLatin1StringView QLatin1String
#define DEFINE_OBJECT_VTABLE(classname)
obj metaObject() -> className()
\inmodule QtCore \reentrant
Heap::String ** runtimeStrings
static constexpr ReturnedValue undefined()
IdentifierTable * identifierTable
MemoryManager * memoryManager
CppStackFrame * currentStackFrame
QQmlRefPointer< QQmlContextData > callingQmlContext() const
ReturnedValue throwError(const Value &value)
QQmlEngine * qmlEngine() const
CompiledData::CompilationUnitBase * compilationUnit
const QQmlImportRef * importNamespace
QV4QPointer< QObject > object
PropertyKey asPropertyKey(const Heap::String *str)
struct QV4::Lookup::@576::@611 qmlEnumValueLookup
struct QV4::Lookup::@576::@601 qobjectLookup
ReturnedValue encodedEnumValue
ReturnedValue(* getter)(Lookup *l, ExecutionEngine *engine, const Value &object)
static ReturnedValue getterGeneric(Lookup *l, ExecutionEngine *engine, const Value &object)
Heap::InternalClass * qmlTypeIc
struct QV4::Lookup::@576::@602 qobjectMethodLookup
const QQmlPropertyCache * propertyCache
Heap::Object * qmlScopedEnumWrapper
struct QV4::Lookup::@576::@612 qmlScopedEnumWrapperLookup
Heap::InternalClass * internalClass() const
ExecutionEngine * engine() const
bool hasProperty(PropertyKey id) const
ReturnedValue get(StringOrSymbol *name, bool *hasProperty=nullptr, const Value *receiver=nullptr) const
static bool setQmlProperty(ExecutionEngine *engine, const QQmlRefPointer< QQmlContextData > &qmlContext, QObject *object, String *name, Flags flags, const Value &value)
ReturnedValue getQmlProperty(const QQmlRefPointer< QQmlContextData > &qmlContext, String *name, Flags flags, bool *hasProperty=nullptr) const
static ReturnedValue lookupPropertyGetterImpl(Lookup *l, ExecutionEngine *engine, const Value &object, Flags flags, ReversalFunctor revert)
static ReturnedValue wrap(ExecutionEngine *engine, QObject *object)
static ReturnedValue lookupMethodGetterImpl(Lookup *l, ExecutionEngine *engine, const Value &object, Flags flags, ReversalFunctor revert)
static ReturnedValue lookupScopedEnum(Lookup *l, ExecutionEngine *engine, const Value &base)
static ReturnedValue lookupSingletonMethod(Lookup *l, ExecutionEngine *engine, const Value &base)
static ReturnedValue create(ExecutionEngine *, QObject *, const QQmlType &, Heap::QQmlTypeWrapper::TypeNameMode=Heap::QQmlTypeWrapper::IncludeEnums)
V4_NEEDS_DESTROY bool isSingleton() const
QObject * singletonObject() const
const QMetaObject * metaObject() const
QVariant toVariant() const
static ReturnedValue lookupEnumValue(Lookup *l, ExecutionEngine *engine, const Value &base)
static ReturnedValue lookupSingletonProperty(Lookup *l, ExecutionEngine *engine, const Value &base)
bool hasException() const
QML_NEARLY_ALWAYS_INLINE ReturnedValue asReturnedValue() const
constexpr ReturnedValue asReturnedValue() const
QV4_NEARLY_ALWAYS_INLINE constexpr quint32 value() const
static constexpr VTable::OwnPropertyKeys virtualOwnPropertyKeys
static constexpr VTable::GetOwnProperty virtualGetOwnProperty
static constexpr VTable::Get virtualGet
static constexpr VTable::Metacall virtualMetacall
static constexpr VTable::InstanceOf virtualInstanceOf
static constexpr VTable::Put virtualPut
static constexpr VTable::IsEqualTo virtualIsEqualTo
static constexpr VTable::ResolveLookupGetter virtualResolveLookupGetter
static constexpr VTable::ResolveLookupSetter virtualResolveLookupSetter
static constexpr Value fromInt32(int i)
static constexpr Value fromReturnedValue(ReturnedValue val)