![]() |
Qt 6.x
The Qt SDK
|
#include <qv4codegen_p.h>
Public Types | |
enum | Type { Invalid , Accumulator , Super , SuperProperty , StackSlot , ScopedLocal , Name , Member , Subscript , Import , LastLValue = Import , Const } |
Public Attributes | ||
enum QV4::Compiler::Codegen::Reference::Type | type = Invalid | |
union { | ||
Moth::StackSlot theStackSlot | ||
QV4::ReturnedValue constant | ||
struct { | ||
int index | ||
int scope | ||
} | ||
struct { | ||
RValue propertyBase | ||
int propertyNameIndex | ||
} | ||
struct { | ||
Moth::StackSlot elementBase | ||
union { | ||
RValue elementSubscript | ||
Moth::StackSlot element | ||
} | ||
} | ||
Moth::StackSlot property | ||
}; | ||
QString | name | |
Codegen * | codegen = nullptr | |
quint32 | isArgOrEval:1 | |
quint32 | isReadonly:1 | |
quint32 | isReferenceToConst:1 | |
quint32 | requiresTDZCheck:1 | |
quint32 | subscriptRequiresTDZCheck:1 | |
quint32 | stackSlotIsLocalOrArgument:1 | |
quint32 | isVolatile:1 | |
quint32 | global:1 | |
quint32 | qmlGlobal:1 | |
quint32 | throwsReferenceError:1 | |
quint32 | subscriptLoadedForCall:1 | |
QQmlJS::SourceLocation | sourceLocation = QQmlJS::SourceLocation() | |
QSharedPointer< Moth::BytecodeGenerator::Label > | optionalChainJumpLabel | |
QSharedPointer< Moth::BytecodeGenerator::Label > | optionalChainTargetLabel | |
Definition at line 156 of file qv4codegen_p.h.
Enumerator | |
---|---|
Invalid | |
Accumulator | |
Super | |
SuperProperty | |
StackSlot | |
ScopedLocal | |
Name | |
Member | |
Subscript | |
Import | |
LastLValue | |
Const |
Definition at line 157 of file qv4codegen_p.h.
Definition at line 174 of file qv4codegen_p.h.
Definition at line 180 of file qv4codegen_p.h.
|
default |
|
default |
Codegen::Reference Codegen::Reference::asLValue | ( | ) | const |
Definition at line 4367 of file qv4codegen.cpp.
References elementSubscript, Invalid, propertyBase, QStringLiteral, and QV4::Compiler::Codegen::RValue::storeOnStack().
Referenced by QV4::Compiler::Codegen::referenceForPropertyName(), QV4::Compiler::Codegen::targetForPatternElement(), QV4::Compiler::Codegen::unop(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
Codegen::RValue Codegen::Reference::asRValue | ( | ) | const |
Definition at line 4350 of file qv4codegen.cpp.
References QQmlJS::AST::Const, constant(), QV4::Compiler::Codegen::RValue::fromAccumulator(), QV4::Compiler::Codegen::RValue::fromConst(), QV4::Compiler::Codegen::RValue::fromStackSlot(), and Invalid.
Referenced by fromMember(), and fromSubscript().
Codegen::Reference Codegen::Reference::baseObject | ( | ) | const |
Definition at line 4401 of file qv4codegen.cpp.
References QV4::Compiler::Codegen::RValue::constantValue(), fromAccumulator(), fromConst(), fromStackSlot(), QV4::Compiler::Codegen::RValue::isAccumulator(), QV4::Compiler::Codegen::RValue::isConst(), QV4::Compiler::Codegen::RValue::isStackSlot(), QV4::Compiler::Codegen::RValue::isValid(), Member, QV4::Compiler::Codegen::RValue::stackSlot(), Subscript, SuperProperty, QV4::CallData::This, and QV4::Encode::undefined().
Definition at line 226 of file qv4codegen_p.h.
Referenced by baseObject(), QV4::Compiler::Codegen::binopHelper(), QV4::Compiler::Codegen::destructureElementList(), QV4::Compiler::Codegen::handleCall(), QV4::Compiler::Codegen::handleTaggedTemplate(), QV4::Compiler::Codegen::RValue::storeOnStack(), QV4::Compiler::Codegen::unop(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 289 of file qv4codegen_p.h.
References constant().
Referenced by baseObject(), QV4::Compiler::Codegen::binopHelper(), QV4::Compiler::Codegen::defineFunction(), QV4::Compiler::Codegen::destructureElementList(), QV4::Compiler::Codegen::loadClosure(), QV4::Compiler::Codegen::RValue::loadInAccumulator(), loadInAccumulator(), QV4::Compiler::Codegen::pushArgs(), QV4::Compiler::Codegen::statementList(), QV4::Compiler::Codegen::unop(), QV4::Compiler::Codegen::variableDeclaration(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 246 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::referenceForName().
|
inlinestatic |
Definition at line 257 of file qv4codegen_p.h.
References asRValue(), codegen, isValid(), Q_ASSERT, QV4::Compiler::Codegen::registerString(), and requiresTDZCheck.
Referenced by QV4::Compiler::Codegen::referenceForPropertyName(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 251 of file qv4codegen_p.h.
Referenced by QV4::Compiler::ControlFlowCatch::~ControlFlowCatch(), and QV4::Compiler::Codegen::referenceForName().
|
inlinestatic |
Definition at line 240 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::referenceForName(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 232 of file qv4codegen_p.h.
References QV4::Compiler::Codegen::bytecodeGenerator, and QV4::Moth::BytecodeGenerator::newRegister().
Referenced by QV4::Compiler::ControlFlowFinally::~ControlFlowFinally(), baseObject(), QV4::Compiler::Codegen::destructureElementList(), QV4::Compiler::Codegen::handleCall(), QV4::Compiler::Codegen::RValue::loadInAccumulator(), QV4::Compiler::Codegen::referenceForName(), storeRetainAccumulator(), QV4::Compiler::Codegen::targetForPatternElement(), QV4::Compiler::Codegen::unop(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 279 of file qv4codegen_p.h.
References asRValue(), codegen, isStackSlot(), Q_ASSERT, requiresTDZCheck, and stackSlot().
Referenced by QV4::Compiler::Codegen::referenceForPropertyName(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
Definition at line 229 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 272 of file qv4codegen_p.h.
References property, and Q_ASSERT.
Referenced by QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
Definition at line 295 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
|
inline |
Definition at line 218 of file qv4codegen_p.h.
|
inline |
Definition at line 217 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::unop().
|
inline |
Definition at line 172 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::targetForPatternElement(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inline |
Definition at line 222 of file qv4codegen_p.h.
|
inline |
Definition at line 221 of file qv4codegen_p.h.
Referenced by fromSubscript(), QV4::Compiler::Codegen::handleCall(), QV4::Compiler::Codegen::initializeAndDestructureBindingElement(), and QV4::Compiler::Codegen::visit().
|
inline |
Definition at line 219 of file qv4codegen_p.h.
|
inline |
Definition at line 220 of file qv4codegen_p.h.
|
inline |
Definition at line 205 of file qv4codegen_p.h.
References Invalid.
Referenced by fromMember(), and QV4::Compiler::Codegen::initializeAndDestructureBindingElement().
void Codegen::Reference::loadInAccumulator | ( | ) | const |
Definition at line 4596 of file qv4codegen.cpp.
References QQmlJS::AST::Const, constant(), d, fromConst(), QV4::StaticValue::fromReturnedValue(), global, i, Invalid, jump(), load(), loadInAccumulator(), QV4::Compiler::JSUnitGenerator::LookupForStorage, QV4::Encode::null(), property, qInf(), qQNaN(), QStringLiteral, QT_WARNING_DISABLE_GCC, QT_WARNING_POP, QT_WARNING_PUSH, QV4::StaticValue::toInt32(), and QV4::Encode::undefined().
Referenced by QV4::Compiler::ControlFlowFinally::~ControlFlowFinally(), QV4::Compiler::Codegen::defineFunction(), QV4::Compiler::Codegen::emitReturn(), QV4::Compiler::Codegen::initializeAndDestructureBindingElement(), QV4::Compiler::Codegen::loadClosure(), QV4::Compiler::Codegen::RValue::loadInAccumulator(), loadInAccumulator(), QV4::Compiler::Codegen::unop(), QV4::Compiler::Codegen::variableDeclaration(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inline |
Definition at line 206 of file qv4codegen_p.h.
|
inline |
Definition at line 323 of file qv4codegen_p.h.
References Q_ASSERT.
Referenced by QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inline |
Definition at line 202 of file qv4codegen_p.h.
References other().
bool Codegen::Reference::operator== | ( | const Reference & | other | ) | const |
Definition at line 4318 of file qv4codegen.cpp.
References QQmlJS::AST::Const, constant(), Invalid, and other().
|
inline |
Definition at line 328 of file qv4codegen_p.h.
References Q_UNLIKELY.
Referenced by QV4::Compiler::Codegen::destructureElementList(), fromSubscript(), QV4::Compiler::Codegen::handleCall(), QV4::Compiler::Codegen::handleTaggedTemplate(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 307 of file qv4codegen_p.h.
References constant(), and storeOnStack().
Referenced by QV4::Compiler::Codegen::destructureElementList(), QV4::Compiler::Codegen::RValue::storeOnStack(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 310 of file qv4codegen_p.h.
References constant().
Codegen::Reference Codegen::Reference::storeConsumeAccumulator | ( | ) | const |
Definition at line 4395 of file qv4codegen.cpp.
Referenced by QV4::Compiler::ControlFlowFinally::~ControlFlowFinally(), QV4::Compiler::Context::emitBlockHeader(), QV4::Compiler::Codegen::initializeAndDestructureBindingElement(), QV4::Compiler::Codegen::variableDeclaration(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
Codegen::Reference Codegen::Reference::storeOnStack | ( | ) | const |
Definition at line 4423 of file qv4codegen.cpp.
Referenced by QV4::Compiler::Codegen::destructureElementList(), QV4::Compiler::Codegen::emitReturn(), QV4::Compiler::Codegen::handleCall(), QV4::Compiler::Codegen::handleTaggedTemplate(), QV4::Compiler::Codegen::initializeAndDestructureBindingElement(), QV4::Compiler::Codegen::pushArgs(), QV4::Compiler::Codegen::referenceForPropertyName(), QV4::Compiler::Codegen::statementList(), storeConstOnStack(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
void Codegen::Reference::storeOnStack | ( | int | tempIndex | ) | const |
Definition at line 4426 of file qv4codegen.cpp.
Codegen::Reference Codegen::Reference::storeRetainAccumulator | ( | ) | const |
Definition at line 4480 of file qv4codegen.cpp.
References fromStackSlot().
Referenced by QV4::Compiler::Codegen::unop(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
bool Codegen::Reference::storeWipesAccumulator | ( | ) | const |
Definition at line 4495 of file qv4codegen.cpp.
References QQmlJS::AST::Const, and Invalid.
|
inline |
Definition at line 334 of file qv4codegen_p.h.
union { ... } QV4::Compiler::Codegen::Reference |
Definition at line 363 of file qv4codegen_p.h.
Referenced by fromMember(), and fromSubscript().
QV4::ReturnedValue QV4::Compiler::Codegen::Reference::constant |
Definition at line 344 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::unop().
Moth::StackSlot QV4::Compiler::Codegen::Reference::element |
Definition at line 357 of file qv4codegen_p.h.
Moth::StackSlot QV4::Compiler::Codegen::Reference::elementBase |
Definition at line 354 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
RValue QV4::Compiler::Codegen::Reference::elementSubscript |
Definition at line 356 of file qv4codegen_p.h.
Referenced by asLValue(), and QV4::Compiler::Codegen::visit().
quint32 QV4::Compiler::Codegen::Reference::global |
Definition at line 372 of file qv4codegen_p.h.
int QV4::Compiler::Codegen::Reference::index |
Definition at line 346 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::isArgOrEval |
Definition at line 365 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::isReadonly |
Definition at line 366 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::isReferenceToConst |
Definition at line 367 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::initializeAndDestructureBindingElement(), and QV4::Compiler::Codegen::visit().
quint32 QV4::Compiler::Codegen::Reference::isVolatile |
Definition at line 371 of file qv4codegen_p.h.
QString QV4::Compiler::Codegen::Reference::name |
Definition at line 362 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::Result::clearResultName(), and QV4::Compiler::Codegen::defineFunction().
QSharedPointer<Moth::BytecodeGenerator::Label> QV4::Compiler::Codegen::Reference::optionalChainJumpLabel |
Definition at line 377 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
QSharedPointer<Moth::BytecodeGenerator::Label> QV4::Compiler::Codegen::Reference::optionalChainTargetLabel |
Definition at line 378 of file qv4codegen_p.h.
Moth::StackSlot QV4::Compiler::Codegen::Reference::property |
Definition at line 360 of file qv4codegen_p.h.
RValue QV4::Compiler::Codegen::Reference::propertyBase |
Definition at line 350 of file qv4codegen_p.h.
Referenced by asLValue(), and QV4::Compiler::Codegen::visit().
int QV4::Compiler::Codegen::Reference::propertyNameIndex |
Definition at line 351 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
quint32 QV4::Compiler::Codegen::Reference::qmlGlobal |
Definition at line 373 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::requiresTDZCheck |
Definition at line 368 of file qv4codegen_p.h.
Referenced by fromMember(), and fromSubscript().
int QV4::Compiler::Codegen::Reference::scope |
Definition at line 347 of file qv4codegen_p.h.
QQmlJS::SourceLocation QV4::Compiler::Codegen::Reference::sourceLocation = QQmlJS::SourceLocation() |
Definition at line 376 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::stackSlotIsLocalOrArgument |
Definition at line 370 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
quint32 QV4::Compiler::Codegen::Reference::subscriptLoadedForCall |
Definition at line 375 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::subscriptRequiresTDZCheck |
Definition at line 369 of file qv4codegen_p.h.
Moth::StackSlot QV4::Compiler::Codegen::Reference::theStackSlot |
Definition at line 343 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::throwsReferenceError |
Definition at line 374 of file qv4codegen_p.h.
enum QV4::Compiler::Codegen::Reference::Type QV4::Compiler::Codegen::Reference::type = Invalid |
Referenced by QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().