Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qv4proxy_p.h
Go to the documentation of this file.
1
// Copyright (C) 2018 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
#ifndef QV4PROXY_P_H
4
#define QV4PROXY_P_H
5
6
//
7
// W A R N I N G
8
// -------------
9
//
10
// This file is not part of the Qt API. It exists purely as an
11
// implementation detail. This header file may change from version to
12
// version without notice, or even be removed.
13
//
14
// We mean it.
15
//
16
17
#include "
qv4object_p.h
"
18
#include "
qv4functionobject_p.h
"
19
20
QT_BEGIN_NAMESPACE
21
22
namespace
QV4
{
23
24
namespace
Heap {
25
26
#define ProxyObjectMembers(class, Member) \
27
Member(class, Pointer, Object *, target) \
28
Member(class, Pointer, Object *, handler)
29
30
DECLARE_HEAP_OBJECT
(
ProxyObject
,
FunctionObject
) {
31
DECLARE_MARKOBJECTS
(
ProxyObject
)
32
33
void
init
(
const
QV4::Object
*
target
,
const
QV4::Object
*handler);
34
};
35
36
struct
ProxyFunctionObject
:
ProxyObject
{
37
void
init
(
const
QV4::FunctionObject
*
target
,
const
QV4::Object
*handler);
38
};
39
40
struct
ProxyConstructorObject
:
ProxyFunctionObject
{};
41
42
#define ProxyMembers(class, Member) \
43
Member(class, Pointer, Symbol *, revokableProxySymbol) \
44
45
DECLARE_HEAP_OBJECT
(
Proxy
,
FunctionObject
) {
46
DECLARE_MARKOBJECTS
(
Proxy
)
47
48
void
init
(
ExecutionEngine
*
engine
);
49
};
50
51
}
52
53
/*
54
* The inheritance from FunctionObject is a hack. Regular proxy objects are no function objects.
55
* But this helps implement the proxy for function objects, where we need this and thus gives us
56
* all the virtual methods from ProxyObject without having to duplicate them.
57
*
58
* But it does require a few hacks to make sure we don't recognize regular proxy objects as function
59
* objects in the runtime.
60
*/
61
struct
ProxyObject
:
FunctionObject
{
62
V4_OBJECT2
(
ProxyObject
,
Object
)
63
Q_MANAGED_TYPE
(
ProxyObject
)
64
V4_INTERNALCLASS
(
ProxyObject
)
65
66
static
ReturnedValue
virtualGet
(
const
Managed
*
m
,
PropertyKey
id
,
const
Value
*receiver,
bool
*
hasProperty
);
67
static
bool
virtualPut
(
Managed
*
m
,
PropertyKey
id
,
const
Value
&
value
,
Value
*receiver);
68
static
bool
virtualDeleteProperty
(
Managed
*
m
,
PropertyKey
id
);
69
static
bool
virtualHasProperty
(
const
Managed
*
m
,
PropertyKey
id
);
70
static
PropertyAttributes
virtualGetOwnProperty
(
const
Managed
*
m
,
PropertyKey
id
,
Property
*
p
);
71
static
bool
virtualDefineOwnProperty
(
Managed
*
m
,
PropertyKey
id
,
const
Property
*
p
,
PropertyAttributes
attrs
);
72
static
bool
virtualIsExtensible
(
const
Managed
*
m
);
73
static
bool
virtualPreventExtensions
(
Managed
*);
74
static
Heap::Object *
virtualGetPrototypeOf
(
const
Managed
*);
75
static
bool
virtualSetPrototypeOf
(
Managed
*,
const
Object
*);
76
static
OwnPropertyKeyIterator
*
virtualOwnPropertyKeys
(
const
Object
*
m
,
Value
*iteratorTarget);
77
};
78
79
struct
ProxyFunctionObject
:
ProxyObject
{
80
V4_OBJECT2
(
ProxyFunctionObject
,
FunctionObject
)
81
Q_MANAGED_TYPE
(
ProxyObject
)
82
V4_INTERNALCLASS
(
ProxyFunctionObject
)
83
84
static
ReturnedValue
virtualCall
(
const
FunctionObject
*
f
,
const
Value
*thisObject,
const
Value
*argv,
int
argc);
85
};
86
87
struct
ProxyConstructorObject
:
ProxyFunctionObject
{
88
V4_OBJECT2
(
ProxyConstructorObject
,
ProxyFunctionObject
)
89
90
static
ReturnedValue
virtualCallAsConstructor
(
const
FunctionObject
*
f
,
const
Value
*argv,
int
argc,
const
Value
*);
91
};
92
93
struct
Proxy
:
FunctionObject
94
{
95
V4_OBJECT2
(
Proxy
,
FunctionObject
)
96
97
static
ReturnedValue
virtualCallAsConstructor
(
const
FunctionObject
*
f
,
const
Value
*argv,
int
argc,
const
Value
*);
98
static
ReturnedValue
virtualCall
(
const
FunctionObject
*,
const
Value
*thisObject,
const
Value
*argv,
int
argc);
99
100
static
ReturnedValue
method_revocable
(
const
FunctionObject
*,
const
Value
*thisObject,
const
Value
*argv,
int
argc);
101
102
static
ReturnedValue
method_revoke
(
const
FunctionObject
*,
const
Value
*thisObject,
const
Value
*argv,
int
argc);
103
};
104
105
}
106
107
QT_END_NAMESPACE
108
109
#endif
// QV4ECMAOBJECTS_P_H
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
QT_END_NAMESPACE
Definition
qsharedpointer.cpp:1590
QV4
Definition
qv4debugservice.h:28
QV4::ReturnedValue
quint64 ReturnedValue
Definition
qv4staticvalue_p.h:38
attrs
static struct AttrInfo attrs[]
Definition
qeglconvenience.cpp:394
value
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
Definition
qeglstreamconvenience_p.h:46
m
const GLfloat * m
Definition
qopengles2ext.h:3203
f
GLfloat GLfloat f
Definition
qopengles2ext.h:795
target
GLenum target
Definition
qopengles2ext.h:751
p
GLfloat GLfloat p
[1]
Definition
qopenglext.h:12698
init
static QT_BEGIN_NAMESPACE void init(QTextBoundaryFinder::BoundaryType type, QStringView str, QCharAttributes *attributes)
Definition
qtextboundaryfinder.cpp:10
qv4functionobject_p.h
Q_MANAGED_TYPE
#define Q_MANAGED_TYPE(type)
Definition
qv4managed_p.h:64
V4_INTERNALCLASS
#define V4_INTERNALCLASS(c)
Definition
qv4managed_p.h:68
DECLARE_HEAP_OBJECT
#define DECLARE_HEAP_OBJECT(name, base)
Definition
qv4mmdefs_p.h:326
DECLARE_MARKOBJECTS
#define DECLARE_MARKOBJECTS(class)
Definition
qv4mmdefs_p.h:333
qv4object_p.h
V4_OBJECT2
#define V4_OBJECT2(DataClass, superClass)
Definition
qv4vtable_p.h:262
engine
QJSEngine engine
[0]
Definition
src_script_qjsvalue.cpp:14
QV4::ExecutionEngine
Definition
qv4engine_p.h:136
QV4::FunctionObject
Definition
qv4functionobject_p.h:160
QV4::Heap::ProxyConstructorObject
Definition
qv4proxy_p.h:40
QV4::Heap::ProxyFunctionObject
Definition
qv4proxy_p.h:36
QV4::Heap::ProxyFunctionObject::init
void init(const QV4::FunctionObject *target, const QV4::Object *handler)
Definition
qv4proxy.cpp:26
QV4::Managed
Definition
qv4managed_p.h:73
QV4::Object
Definition
qv4object_p.h:104
QV4::Object::hasProperty
bool hasProperty(PropertyKey id) const
Definition
qv4object_p.h:140
QV4::OwnPropertyKeyIterator
Definition
qv4vtable_p.h:27
QV4::PropertyAttributes
Definition
qv4global_p.h:194
QV4::PropertyKey
Definition
qv4propertykey_p.h:29
QV4::Property
Definition
qv4property_p.h:26
QV4::ProxyConstructorObject
Definition
qv4proxy_p.h:87
QV4::ProxyFunctionObject
Definition
qv4proxy_p.h:79
QV4::ProxyObject
Definition
qv4proxy_p.h:61
QV4::Proxy
Definition
qv4proxy_p.h:94
QV4::Proxy::method_revocable
static ReturnedValue method_revocable(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
Definition
qv4proxy.cpp:753
QV4::Proxy::method_revoke
static ReturnedValue method_revoke(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
Definition
qv4proxy.cpp:776
QV4::VTableBase::virtualSetPrototypeOf
static constexpr VTable::SetPrototypeOf virtualSetPrototypeOf
Definition
qv4vtable_p.h:193
QV4::VTableBase::virtualDefineOwnProperty
static constexpr VTable::DefineOwnProperty virtualDefineOwnProperty
Definition
qv4vtable_p.h:189
QV4::VTableBase::virtualOwnPropertyKeys
static constexpr VTable::OwnPropertyKeys virtualOwnPropertyKeys
Definition
qv4vtable_p.h:195
QV4::VTableBase::virtualGetOwnProperty
static constexpr VTable::GetOwnProperty virtualGetOwnProperty
Definition
qv4vtable_p.h:188
QV4::VTableBase::virtualCallAsConstructor
static constexpr VTable::CallAsConstructor virtualCallAsConstructor
Definition
qv4vtable_p.h:199
QV4::VTableBase::virtualCall
static constexpr VTable::Call virtualCall
Definition
qv4vtable_p.h:198
QV4::VTableBase::virtualPreventExtensions
static constexpr VTable::PreventExtensions virtualPreventExtensions
Definition
qv4vtable_p.h:191
QV4::VTableBase::virtualGetPrototypeOf
static constexpr VTable::GetPrototypeOf virtualGetPrototypeOf
Definition
qv4vtable_p.h:192
QV4::VTableBase::virtualDeleteProperty
static constexpr VTable::DeleteProperty virtualDeleteProperty
Definition
qv4vtable_p.h:186
QV4::VTableBase::virtualGet
static constexpr VTable::Get virtualGet
Definition
qv4vtable_p.h:184
QV4::VTableBase::virtualHasProperty
static constexpr VTable::HasProperty virtualHasProperty
Definition
qv4vtable_p.h:187
QV4::VTableBase::virtualPut
static constexpr VTable::Put virtualPut
Definition
qv4vtable_p.h:185
QV4::VTableBase::virtualIsExtensible
static constexpr VTable::IsExtensible virtualIsExtensible
Definition
qv4vtable_p.h:190
QV4::Value
Definition
qv4value_p.h:38
qtdeclarative
src
qml
jsruntime
qv4proxy_p.h
Generated by
1.10.0