Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qv4generatorobject_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
// Qt-Security score:significant
4
5
#
ifndef
QV4GENERATOROBJECT_P_H
6
#
define
QV4GENERATOROBJECT_P_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#
include
"qv4functionobject_p.h"
20
#
include
"qv4stackframe_p.h"
21
22
QT_BEGIN_NAMESPACE
23
24
namespace
QV4
{
25
26
enum
class
GeneratorState
{
27
Undefined
,
28
SuspendedStart
,
29
SuspendedYield
,
30
Executing
,
31
Completed
32
};
33
34
namespace
Heap
{
35
36
struct
GeneratorFunctionCtor
:
FunctionObject
{
37
void
init
(ExecutionEngine *engine);
38
};
39
40
struct
GeneratorFunction
:
ArrowFunction
{
41
void
init
(
QV4
::ExecutionContext *scope, Function *function,
QV4
::String *name =
nullptr
) {
42
ArrowFunction
::
init
(scope, function, name);
43
}
44
};
45
46
struct
MemberGeneratorFunction
:
MemberFunction
{
47
};
48
49
struct
GeneratorPrototype
:
FunctionObject
{
50
void
init
();
51
};
52
53
#
define
GeneratorObjectMembers
(
class
,
Member
)
54
Member
(
class
,
Pointer
,
ExecutionContext
*
,
context
)
55
Member
(
class
,
NoMark
,
GeneratorState
,
state
)
56
Member
(
class
,
NoMark
,
JSTypesStackFrame
,
cppFrame
)
57
Member
(
class
,
Pointer
,
ArrayObject
*
,
values
)
58
Member
(
class
,
Pointer
,
ArrayObject
*
,
jsFrame
)
59
60
DECLARE_HEAP_OBJECT
(
GeneratorObject
, Object) {
61
DECLARE_MARKOBJECTS(GeneratorObject)
62
};
63
64
}
65
66
struct
GeneratorFunctionCtor
:
FunctionCtor
67
{
68
V4_OBJECT2(
GeneratorFunctionCtor
,
FunctionCtor
)
69
70
static
ReturnedValue
virtualCallAsConstructor
(
const
FunctionObject *f,
const
Value *argv,
int
argc,
const
Value *);
71
static
ReturnedValue
virtualCall
(
const
FunctionObject *f,
const
Value *thisObject,
const
Value *argv,
int
argc);
72
};
73
74
struct
GeneratorFunction
:
ArrowFunction
75
{
76
V4_OBJECT2(
GeneratorFunction
,
ArrowFunction
)
77
V4_INTERNALCLASS
(GeneratorFunction)
78
79
static
inline
constexpr
quint8
IsTailCallable
=
false
;
80
81
static
Q_QML_EXPORT
Heap
::FunctionObject *
create
(
ExecutionContext
*
scope
,
Function
*
function
);
82
static
ReturnedValue
virtualCall
(
const
FunctionObject *f,
const
Value *thisObject,
const
Value *argv,
int
argc);
83
};
84
85
struct
MemberGeneratorFunction
:
MemberFunction
86
{
87
V4_OBJECT2(
MemberGeneratorFunction
,
MemberFunction
)
88
V4_INTERNALCLASS
(MemberGeneratorFunction)
89
90
static
inline
constexpr
quint8
IsTailCallable
=
false
;
91
92
static
Heap
::FunctionObject *
create
(ExecutionContext *scope, Function *function, Object *homeObject, String *name);
93
static
ReturnedValue
virtualCall
(
const
FunctionObject *f,
const
Value *thisObject,
const
Value *argv,
int
argc);
94
};
95
96
struct
GeneratorPrototype
:
Object
97
{
98
void
init
(ExecutionEngine *engine, Object *ctor);
99
100
static
ReturnedValue
method_next
(
const
FunctionObject *,
const
Value *thisObject,
const
Value *argv,
int
argc);
101
static
ReturnedValue
method_return
(
const
FunctionObject *,
const
Value *thisObject,
const
Value *argv,
int
argc);
102
static
ReturnedValue
method_throw
(
const
FunctionObject *,
const
Value *thisObject,
const
Value *argv,
int
argc);
103
};
104
105
106
struct
GeneratorObject
:
Object
{
107
V4_OBJECT2(
GeneratorObject
, Object)
108
Q_MANAGED_TYPE
(
GeneratorObject
)
109
V4_INTERNALCLASS
(GeneratorObject)
110
V4_PROTOTYPE(generatorPrototype)
111
112
ReturnedValue
resume
(
ExecutionEngine
*
engine
,
const
Value
&
arg
,
std
::
optional
<
Value
>)
const
;
113
};
114
115
}
116
117
QT_END_NAMESPACE
118
119
#
endif
// QV4GENERATORFUNCTION_P_H
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QV4::Heap
Definition
qv4compileddata_p.h:76
QV4::Heap::DECLARE_HEAP_OBJECT
DECLARE_HEAP_OBJECT(StrictArgumentsObject, Object)
Definition
qv4argumentsobject_p.h:44
QV4
Definition
qjsvalue.h:24
QV4::GeneratorState
GeneratorState
Definition
qv4generatorobject_p.h:26
QV4::GeneratorState::Completed
@ Completed
Definition
qv4generatorobject_p.h:31
QV4::GeneratorState::SuspendedStart
@ SuspendedStart
Definition
qv4generatorobject_p.h:28
QV4::GeneratorState::Executing
@ Executing
Definition
qv4generatorobject_p.h:30
QV4::GeneratorState::SuspendedYield
@ SuspendedYield
Definition
qv4generatorobject_p.h:29
QV4::GeneratorState::Undefined
@ Undefined
Definition
qv4generatorobject_p.h:27
CHECK_STACK_LIMITS
#define CHECK_STACK_LIMITS(v4)
Definition
qv4engine_p.h:907
DEFINE_OBJECT_VTABLE
DEFINE_OBJECT_VTABLE(MemberGeneratorFunction)
markSuspendedFrame
static void markSuspendedFrame(ExecutionEngine *engine, const JSTypesStackFrame *frame)
Definition
qv4generatorobject.cpp:62
DEFINE_OBJECT_VTABLE
DEFINE_OBJECT_VTABLE(GeneratorObject)
DEFINE_OBJECT_VTABLE
DEFINE_OBJECT_VTABLE(GeneratorFunctionCtor)
DEFINE_OBJECT_VTABLE
DEFINE_OBJECT_VTABLE(GeneratorFunction)
Q_MANAGED_TYPE
#define Q_MANAGED_TYPE(type)
Definition
qv4managed_p.h:61
V4_INTERNALCLASS
#define V4_INTERNALCLASS(c)
Definition
qv4managed_p.h:65
QV4::ArrowFunction
Definition
qv4functionobject_p.h:304
QV4::FunctionCtor
Definition
qv4functionobject_p.h:262
QV4::GeneratorFunctionCtor
Definition
qv4generatorobject_p.h:67
QV4::GeneratorFunctionCtor::virtualCall
static ReturnedValue virtualCall(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc)
Definition
qv4generatorobject.cpp:43
QV4::GeneratorFunctionCtor::virtualCallAsConstructor
static ReturnedValue virtualCallAsConstructor(const FunctionObject *f, const Value *argv, int argc, const Value *)
Definition
qv4generatorobject.cpp:22
QV4::GeneratorFunction
Definition
qv4generatorobject_p.h:75
QV4::GeneratorFunction::IsTailCallable
static constexpr quint8 IsTailCallable
Definition
qv4generatorobject_p.h:79
QV4::GeneratorFunction::virtualCall
static ReturnedValue virtualCall(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc)
Definition
qv4generatorobject.cpp:68
QV4::GeneratorObject
Definition
qv4generatorobject_p.h:106
QV4::GeneratorPrototype
Definition
qv4generatorobject_p.h:97
QV4::GeneratorPrototype::method_next
static ReturnedValue method_next(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
Definition
qv4generatorobject.cpp:138
QV4::GeneratorPrototype::method_return
static ReturnedValue method_return(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
Definition
qv4generatorobject.cpp:152
QV4::GeneratorPrototype::init
void init(ExecutionEngine *engine, Object *ctor)
Definition
qv4generatorobject.cpp:114
QV4::GeneratorPrototype::method_throw
static ReturnedValue method_throw(const FunctionObject *, const Value *thisObject, const Value *argv, int argc)
Definition
qv4generatorobject.cpp:170
QV4::Heap::ArrowFunction
Definition
qv4functionobject_p.h:100
QV4::Heap::ArrowFunction::init
void init(QV4::ExecutionContext *scope, Function *function, QV4::String *name=nullptr)
Definition
qv4functionobject.cpp:565
QV4::Heap::GeneratorFunctionCtor
Definition
qv4generatorobject_p.h:36
QV4::Heap::GeneratorFunctionCtor::init
void init(ExecutionEngine *engine)
Definition
qv4generatorobject.cpp:17
QV4::Heap::GeneratorFunction
Definition
qv4generatorobject_p.h:40
QV4::Heap::GeneratorFunction::init
void init(QV4::ExecutionContext *scope, Function *function, QV4::String *name=nullptr)
Definition
qv4generatorobject_p.h:41
QV4::Heap::GeneratorPrototype
Definition
qv4generatorobject_p.h:49
QV4::Heap::GeneratorPrototype::init
void init()
Definition
qv4generatorobject.cpp:108
QV4::Heap::MemberGeneratorFunction
Definition
qv4generatorobject_p.h:46
QV4::MemberFunction
Definition
qv4functionobject_p.h:327
QV4::MemberGeneratorFunction
Definition
qv4generatorobject_p.h:86
QV4::MemberGeneratorFunction::create
static Heap::FunctionObject * create(ExecutionContext *scope, Function *function, Object *homeObject, String *name)
Definition
qv4generatorobject.cpp:231
QV4::MemberGeneratorFunction::virtualCall
static ReturnedValue virtualCall(const FunctionObject *f, const Value *thisObject, const Value *argv, int argc)
Definition
qv4generatorobject.cpp:243
QV4::MemberGeneratorFunction::IsTailCallable
static constexpr quint8 IsTailCallable
Definition
qv4generatorobject_p.h:90
qtdeclarative
src
qml
jsruntime
qv4generatorobject_p.h
Generated on
for Qt by
1.18.0