3#ifndef QV4COMPILERCONTROLFLOW_P_H
4#define QV4COMPILERCONTROLFLOW_P_H
17#include <private/qv4codegen_p.h>
18#include <private/qqmljsast_p.h>
19#include <private/qv4bytecodegenerator_p.h>
145 Instruction::UnwindDispatch dispatch;
220 Instruction::PushWithContext pushScope;
230 Instruction::PopContext pop;
364 int returnValueTemp = -1;
367 Instruction::MoveReg move;
369 move.destReg = returnValueTemp;
373 Instruction::GetException instr;
382 Instruction::MoveReg move;
383 move.srcReg = returnValueTemp;
388 Instruction::SetException setException;
StatementList * statements
PatternElement * patternElement
QStringView bindingIdentifier
constexpr bool isEmpty() const noexcept
Returns whether this string view is empty - that is, whether {size() == 0}.
QString toString() const
Returns a deep copy of this string view's data as a QString.
\macro QT_RESTRICTED_CAST_FROM_ASCII
QQmlJS::AST::LabelledStatement * _labelledStatement
BytecodeGenerator * bytecodeGenerator
void initializeAndDestructureBindingElement(QQmlJS::AST::PatternElement *e, const Reference &baseRef=Reference(), bool isDefinition=false)
BytecodeGenerator::Label returnLabel()
void statement(QQmlJS::AST::Statement *ast)
Context * enterBlock(QQmlJS::AST::Node *node)
ControlFlow * controlFlow
void statementList(QQmlJS::AST::StatementList *ast)
ExceptionHandler newExceptionHandler()
void addInstruction(const InstrData< InstrT > &data)
void setUnwindHandler(ExceptionHandler *handler)
Q_REQUIRED_RESULT Jump jumpNoException()
Combined button and popup list for selecting options.
\qmltype Particle \inqmlmodule QtQuick.Particles
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
GLenum GLuint GLint level
GLuint GLsizei const GLchar * label
[43]
#define QStringLiteral(str)
static Reference fromName(Codegen *cg, const QString &name)
Reference storeConsumeAccumulator() const
static Reference fromStackSlot(Codegen *cg, int tempIndex=-1, bool isLocal=false)
void loadInAccumulator() const
void emitBlockFooter(Compiler::Codegen *codegen)
void emitBlockHeader(Compiler::Codegen *codegen)
bool requiresExecutionContext
virtual ~ControlFlowBlock()
virtual bool requiresUnwind() override
ControlFlowBlock(Codegen *cg, QQmlJS::AST::Node *ast)
BytecodeGenerator::ExceptionHandler exceptionLabel
virtual bool requiresUnwind() override
ControlFlowCatch(Codegen *cg, QQmlJS::AST::Catch *catchExpression)
QQmlJS::AST::Catch * catchExpression
BytecodeGenerator::ExceptionHandler * unwindHandler() override
QQmlJS::AST::Finally * finally
BytecodeGenerator::ExceptionHandler * unwindHandler() override
virtual bool requiresUnwind() override
ControlFlowFinally(Codegen *cg, QQmlJS::AST::Finally *finally)
QString label() const override
ControlFlowLoop(Codegen *cg, BytecodeGenerator::Label *breakLabel, BytecodeGenerator::Label *continueLabel=nullptr, std::function< void()> cleanup=nullptr)
BytecodeGenerator::Label * continueLabel
BytecodeGenerator::Label getUnwindTarget(UnwindType type, const QString &label) override
BytecodeGenerator::Label * breakLabel
ControlFlowUnwindCleanup(Codegen *cg, std::function< void()> cleanup, Type type=Block)
~ControlFlowUnwindCleanup()
std::function< void()> cleanup
bool requiresUnwind() override
ControlFlowUnwind(Codegen *cg, Type type)
BytecodeGenerator::ExceptionHandler unwindLabel
void setupUnwindHandler()
virtual BytecodeGenerator::ExceptionHandler * unwindHandler() override
bool requiresUnwind() override
ControlFlowWith(Codegen *cg)
BytecodeGenerator::Label linkLabel
ControlFlow(Codegen *cg, Type type)
UnwindTarget unwindTarget(UnwindType type, const QString &label=QString())
virtual BytecodeGenerator::ExceptionHandler * unwindHandler()
virtual QString label() const
BytecodeGenerator * generator() const
virtual bool requiresUnwind()
BytecodeGenerator::ExceptionHandler * parentUnwindHandler()
virtual BytecodeGenerator::Label getUnwindTarget(UnwindType, const QString &=QString())
QString loopLabel() const