Qt
6.x
The Qt SDK
Loading...
Searching...
No Matches
qv4argumentsobject_p.h
Go to the documentation of this file.
1
// Copyright (C) 2016 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 QV4ARGUMENTSOBJECTS_H
4
#define QV4ARGUMENTSOBJECTS_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
19
QT_BEGIN_NAMESPACE
20
21
namespace
QV4
{
22
23
namespace
Heap {
24
25
#define ArgumentsObjectMembers(class, Member) \
26
Member(class, Pointer, CallContext *, context) \
27
Member(class, NoMark, bool, fullyCreated) \
28
Member(class, NoMark, uint, argCount) \
29
Member(class, NoMark, quint64, mapped)
30
31
DECLARE_HEAP_OBJECT
(
ArgumentsObject
,
Object
) {
32
DECLARE_MARKOBJECTS
(
ArgumentsObject
)
33
enum
{
34
LengthPropertyIndex = 0,
35
SymbolIteratorPropertyIndex = 1,
36
CalleePropertyIndex = 2
37
};
38
void
init
(
CppStackFrame
*
frame
);
39
};
40
41
#define StrictArgumentsObjectMembers(class, Member)
42
43
DECLARE_HEAP_OBJECT
(
StrictArgumentsObject
,
Object
) {
44
enum
{
45
LengthPropertyIndex = 0,
46
SymbolIteratorPropertyIndex = 1,
47
CalleePropertyIndex = 2,
48
CalleeSetterPropertyIndex = 3
49
};
50
void
init
(
JSTypesStackFrame
*
frame
);
51
};
52
53
}
54
55
struct
ArgumentsObject
:
Object
{
56
V4_OBJECT2
(
ArgumentsObject
,
Object
)
57
Q_MANAGED_TYPE
(
ArgumentsObject
)
58
59
Heap::
CallContext
*
context
()
const
{
return
d
()->context; }
60
bool
fullyCreated
()
const
{
return
d
()->fullyCreated; }
61
62
static
bool
isNonStrictArgumentsObject
(
Managed
*
m
) {
63
return
m
->vtable() == staticVTable();
64
}
65
66
static
bool
virtualDefineOwnProperty
(
Managed
*
m
,
PropertyKey
id
,
const
Property
*
desc
,
PropertyAttributes
attrs
);
67
static
ReturnedValue
virtualGet
(
const
Managed
*
m
,
PropertyKey
id
,
const
Value
*receiver,
bool
*
hasProperty
);
68
static
bool
virtualPut
(
Managed
*
m
,
PropertyKey
id
,
const
Value
&
value
,
Value
*receiver);
69
static
bool
virtualDeleteProperty
(
Managed
*
m
,
PropertyKey
id
);
70
static
PropertyAttributes
virtualGetOwnProperty
(
const
Managed
*
m
,
PropertyKey
id
,
Property
*
p
);
71
static
qint64
virtualGetLength
(
const
Managed
*
m
);
72
static
OwnPropertyKeyIterator
*
virtualOwnPropertyKeys
(
const
Object
*
m
,
Value
*
target
);
73
74
void
fullyCreate
();
75
76
// There's a slight hack here, as this limits the amount of mapped arguments to 64, but that should be
77
// more than enough for all practical uses of arguments
78
bool
isMapped
(
uint
arg
)
const
{
79
return
arg
< 64 && (
d
()->mapped & (1ull <<
arg
));
80
}
81
82
void
removeMapping
(
uint
arg
) {
83
if
(
arg
< 64)
84
(
d
()->mapped &= ~(1ull <<
arg
));
85
}
86
87
};
88
89
struct
StrictArgumentsObject
:
Object
{
90
V4_OBJECT2
(
StrictArgumentsObject
,
Object
)
91
Q_MANAGED_TYPE
(
ArgumentsObject
)
92
};
93
94
}
95
96
QT_END_NAMESPACE
97
98
#endif
99
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
QT_END_NAMESPACE
Definition
qsharedpointer.cpp:1545
QV4
\qmltype Particle \inqmlmodule QtQuick.Particles
Definition
qquickv4particledata.cpp:234
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
target
GLenum target
Definition
qopengles2ext.h:751
p
GLfloat GLfloat p
[1]
Definition
qopenglext.h:12698
arg
SSL_CTX int(*) void arg)
Definition
qsslsocket_openssl_symbols.cpp:404
init
static QT_BEGIN_NAMESPACE void init(QTextBoundaryFinder::BoundaryType type, QStringView str, QCharAttributes *attributes)
Definition
qtextboundaryfinder.cpp:10
desc
@ desc
uint
unsigned int uint
Definition
qtypes.h:29
qint64
long long qint64
Definition
qtypes.h:55
Q_MANAGED_TYPE
#define Q_MANAGED_TYPE(type)
Definition
qv4managed_p.h:64
DECLARE_HEAP_OBJECT
#define DECLARE_HEAP_OBJECT(name, base)
Definition
qv4mmdefs_p.h:313
DECLARE_MARKOBJECTS
#define DECLARE_MARKOBJECTS(class)
Definition
qv4mmdefs_p.h:320
qv4object_p.h
V4_OBJECT2
#define V4_OBJECT2(DataClass, superClass)
Definition
qv4vtable_p.h:237
d
double d
Definition
src_corelib_text_qlocale.cpp:9
frame
QFrame frame
[0]
Definition
src_gui_painting_qdrawutil.cpp:6
QV4::ArgumentsObject
Definition
qv4argumentsobject_p.h:55
QV4::ArgumentsObject::context
Heap::CallContext * context() const
Definition
qv4argumentsobject_p.h:59
QV4::ArgumentsObject::fullyCreate
void fullyCreate()
Definition
qv4argumentsobject.cpp:67
QV4::ArgumentsObject::isNonStrictArgumentsObject
static bool isNonStrictArgumentsObject(Managed *m)
Definition
qv4argumentsobject_p.h:62
QV4::ArgumentsObject::fullyCreated
bool fullyCreated() const
Definition
qv4argumentsobject_p.h:60
QV4::ArgumentsObject::removeMapping
void removeMapping(uint arg)
Definition
qv4argumentsobject_p.h:82
QV4::ArgumentsObject::isMapped
bool isMapped(uint arg) const
Definition
qv4argumentsobject_p.h:78
QV4::CallContext
Definition
qv4context_p.h:148
QV4::CppStackFrame
Definition
qv4stackframe_p.h:66
QV4::JSTypesStackFrame
Definition
qv4stackframe_p.h:159
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:193
QV4::PropertyKey
Definition
qv4propertykey_p.h:28
QV4::Property
Definition
qv4property_p.h:26
QV4::StrictArgumentsObject
Definition
qv4argumentsobject_p.h:89
QV4::VTableBase::virtualDefineOwnProperty
static constexpr VTable::DefineOwnProperty virtualDefineOwnProperty
Definition
qv4vtable_p.h:165
QV4::VTableBase::virtualOwnPropertyKeys
static constexpr VTable::OwnPropertyKeys virtualOwnPropertyKeys
Definition
qv4vtable_p.h:171
QV4::VTableBase::virtualGetOwnProperty
static constexpr VTable::GetOwnProperty virtualGetOwnProperty
Definition
qv4vtable_p.h:164
QV4::VTableBase::virtualDeleteProperty
static constexpr VTable::DeleteProperty virtualDeleteProperty
Definition
qv4vtable_p.h:162
QV4::VTableBase::virtualGet
static constexpr VTable::Get virtualGet
Definition
qv4vtable_p.h:160
QV4::VTableBase::virtualGetLength
static constexpr VTable::GetLength virtualGetLength
Definition
qv4vtable_p.h:170
QV4::VTableBase::virtualPut
static constexpr VTable::Put virtualPut
Definition
qv4vtable_p.h:161
QV4::Value
Definition
qv4value_p.h:38
qtdeclarative
src
qml
jsruntime
qv4argumentsobject_p.h
Generated by
1.9.7