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>.
|
#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 | |
quint32 | isOptional: 1 | |
quint32 | hasSavedCallBaseSlot: 1 | |
QQmlJS::SourceLocation | sourceLocation = QQmlJS::SourceLocation() | |
std::vector< Moth::BytecodeGenerator::Jump > * | optionalChainJumpsToPatch = nullptr | |
int | savedCallBaseSlot = -1 | |
int | savedCallPropertyNameIndex = -1 | |
Definition at line 157 of file qv4codegen_p.h.
Enumerator | |
---|---|
Invalid | |
Accumulator | |
Super | |
SuperProperty | |
StackSlot | |
ScopedLocal | |
Name | |
Member | |
Subscript | |
Import | |
LastLValue | |
Const |
Definition at line 158 of file qv4codegen_p.h.
Definition at line 175 of file qv4codegen_p.h.
Definition at line 181 of file qv4codegen_p.h.
|
default |
|
default |
Codegen::Reference Codegen::Reference::asLValue | ( | ) | const |
Definition at line 4397 of file qv4codegen.cpp.
References elementSubscript, QV4::Invalid, propertyBase, QStringLiteral, and QV4::Compiler::Codegen::RValue::storeOnStack().
Referenced by 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 4380 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 QV4::Invalid.
Codegen::Reference Codegen::Reference::baseObject | ( | ) | const |
Definition at line 4431 of file qv4codegen.cpp.
References fromAccumulator(), fromConst(), fromStackSlot(), Member, Subscript, SuperProperty, QV4::CallData::This, and QV4::Encode::undefined().
Definition at line 229 of file qv4codegen_p.h.
Referenced by baseObject(), QV4::Compiler::Codegen::binopHelper(), QV4::Compiler::Codegen::destructureElementList(), 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(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 291 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(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 249 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::referenceForName().
|
inlinestatic |
Definition at line 260 of file qv4codegen_p.h.
References Q_ASSERT.
Referenced by QV4::Compiler::Codegen::referenceForPropertyName(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 254 of file qv4codegen_p.h.
Referenced by QV4::Compiler::ControlFlowCatch::~ControlFlowCatch(), and QV4::Compiler::Codegen::referenceForName().
|
inlinestatic |
Definition at line 243 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::referenceForName(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 235 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 282 of file qv4codegen_p.h.
References Q_ASSERT.
Referenced by QV4::Compiler::Codegen::referenceForPropertyName(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
Definition at line 232 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 275 of file qv4codegen_p.h.
References property, and Q_ASSERT.
Referenced by QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
Definition at line 297 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
|
inline |
Definition at line 221 of file qv4codegen_p.h.
|
inline |
Definition at line 220 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::unop().
|
inline |
Definition at line 173 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 225 of file qv4codegen_p.h.
|
inline |
Definition at line 224 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::handleCall(), QV4::Compiler::Codegen::pushArgs(), and QV4::Compiler::Codegen::visit().
|
inline |
Definition at line 222 of file qv4codegen_p.h.
|
inline |
Definition at line 223 of file qv4codegen_p.h.
|
inline |
Definition at line 208 of file qv4codegen_p.h.
References Invalid.
void Codegen::Reference::loadInAccumulator | ( | ) | const |
Definition at line 4626 of file qv4codegen.cpp.
References QQmlJS::AST::Const, constant(), d, fromConst(), QV4::StaticValue::fromReturnedValue(), global, i, QV4::Invalid, jump(), load(), QV4::Compiler::JSUnitGenerator::LookupForStorage, QV4::Encode::null(), property, qInf(), qQNaN(), QStringLiteral, QT_WARNING_DISABLE_GCC, QT_WARNING_POP, QT_WARNING_PUSH, and QV4::Encode::undefined().
Referenced by QV4::Compiler::Codegen::destructureElementList(), QV4::Compiler::Codegen::emitReturn(), QV4::Compiler::Codegen::initializeAndDestructureBindingElement(), 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(), and QV4::Compiler::Codegen::visit().
|
inline |
Definition at line 209 of file qv4codegen_p.h.
|
inline |
Definition at line 325 of file qv4codegen_p.h.
References Q_ASSERT.
Referenced by QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inline |
Definition at line 205 of file qv4codegen_p.h.
References other().
bool Codegen::Reference::operator== | ( | const Reference & | other | ) | const |
Definition at line 4348 of file qv4codegen.cpp.
References QQmlJS::AST::Const, constant(), QV4::Invalid, and other().
|
inline |
Definition at line 330 of file qv4codegen_p.h.
References Q_UNLIKELY.
Referenced by QV4::Compiler::Codegen::handleCall(), QV4::Compiler::Codegen::handleTaggedTemplate(), QV4::Compiler::Codegen::pushArgs(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 309 of file qv4codegen_p.h.
References constant().
Referenced by QV4::Compiler::Codegen::destructureElementList(), QV4::Compiler::Codegen::RValue::storeOnStack(), and QV4::Compiler::Codegen::visit().
|
inlinestatic |
Definition at line 312 of file qv4codegen_p.h.
References constant().
Codegen::Reference Codegen::Reference::storeConsumeAccumulator | ( | ) | const |
Definition at line 4425 of file qv4codegen.cpp.
Referenced by QV4::Compiler::Context::emitBlockHeader(), QV4::Compiler::Codegen::unop(), QV4::Compiler::Codegen::visit(), QV4::Compiler::Codegen::visit(), and QV4::Compiler::Codegen::visit().
Codegen::Reference Codegen::Reference::storeOnStack | ( | ) | const |
Definition at line 4453 of file qv4codegen.cpp.
Referenced by QV4::Compiler::Codegen::emitReturn(), QV4::Compiler::Codegen::handleCall(), QV4::Compiler::Codegen::handleTaggedTemplate(), QV4::Compiler::Codegen::pushArgs(), QV4::Compiler::Codegen::pushTemplateArgs(), 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 4456 of file qv4codegen.cpp.
Codegen::Reference Codegen::Reference::storeRetainAccumulator | ( | ) | const |
Definition at line 4510 of file qv4codegen.cpp.
References fromStackSlot().
Referenced by QV4::Compiler::Codegen::unop().
bool Codegen::Reference::storeWipesAccumulator | ( | ) | const |
Definition at line 4525 of file qv4codegen.cpp.
References QQmlJS::AST::Const, and QV4::Invalid.
|
inline |
Definition at line 336 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::pushArgs().
union { ... } QV4::Compiler::Codegen::Reference |
Definition at line 365 of file qv4codegen_p.h.
QV4::ReturnedValue QV4::Compiler::Codegen::Reference::constant |
Definition at line 346 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::unop().
Moth::StackSlot QV4::Compiler::Codegen::Reference::element |
Definition at line 359 of file qv4codegen_p.h.
Moth::StackSlot QV4::Compiler::Codegen::Reference::elementBase |
Definition at line 356 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
RValue QV4::Compiler::Codegen::Reference::elementSubscript |
Definition at line 358 of file qv4codegen_p.h.
Referenced by asLValue(), and QV4::Compiler::Codegen::visit().
quint32 QV4::Compiler::Codegen::Reference::global |
Definition at line 374 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::hasSavedCallBaseSlot |
Definition at line 379 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
int QV4::Compiler::Codegen::Reference::index |
Definition at line 348 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::isArgOrEval |
Definition at line 367 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::isOptional |
Definition at line 378 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::isReadonly |
Definition at line 368 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::isReferenceToConst |
Definition at line 369 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::isVolatile |
Definition at line 373 of file qv4codegen_p.h.
QString QV4::Compiler::Codegen::Reference::name |
Definition at line 364 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::Result::clearResultName(), and QV4::Compiler::Codegen::defineFunction().
std::vector<Moth::BytecodeGenerator::Jump>* QV4::Compiler::Codegen::Reference::optionalChainJumpsToPatch = nullptr |
Definition at line 381 of file qv4codegen_p.h.
Moth::StackSlot QV4::Compiler::Codegen::Reference::property |
Definition at line 362 of file qv4codegen_p.h.
RValue QV4::Compiler::Codegen::Reference::propertyBase |
Definition at line 352 of file qv4codegen_p.h.
Referenced by asLValue(), and QV4::Compiler::Codegen::visit().
int QV4::Compiler::Codegen::Reference::propertyNameIndex |
Definition at line 353 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
quint32 QV4::Compiler::Codegen::Reference::qmlGlobal |
Definition at line 375 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::requiresTDZCheck |
Definition at line 370 of file qv4codegen_p.h.
int QV4::Compiler::Codegen::Reference::savedCallBaseSlot = -1 |
Definition at line 382 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
int QV4::Compiler::Codegen::Reference::savedCallPropertyNameIndex = -1 |
Definition at line 383 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
int QV4::Compiler::Codegen::Reference::scope |
Definition at line 349 of file qv4codegen_p.h.
QQmlJS::SourceLocation QV4::Compiler::Codegen::Reference::sourceLocation = QQmlJS::SourceLocation() |
Definition at line 380 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::stackSlotIsLocalOrArgument |
Definition at line 372 of file qv4codegen_p.h.
Referenced by QV4::Compiler::Codegen::visit().
quint32 QV4::Compiler::Codegen::Reference::subscriptLoadedForCall |
Definition at line 377 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::subscriptRequiresTDZCheck |
Definition at line 371 of file qv4codegen_p.h.
Moth::StackSlot QV4::Compiler::Codegen::Reference::theStackSlot |
Definition at line 345 of file qv4codegen_p.h.
quint32 QV4::Compiler::Codegen::Reference::throwsReferenceError |
Definition at line 376 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().