![]() |
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 <qqmljscodegenerator_p.h>
Classes | |
struct | AccumulatorConverter |
struct | CodegenState |
Public Member Functions | |
QQmlJSCodeGenerator (const QV4::Compiler::Context *compilerContext, const QV4::Compiler::JSUnitGenerator *unitGenerator, const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger, BasicBlocks basicBlocks, InstructionAnnotations annotations) | |
~QQmlJSCodeGenerator ()=default | |
QQmlJSAotFunction | run (const Function *function, QQmlJS::DiagnosticMessage *error, bool basicBlocksValidationFailed) |
![]() | |
QQmlJSCompilePass (const QV4::Compiler::JSUnitGenerator *jsUnitGenerator, const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger, BasicBlocks basicBlocks={}, InstructionAnnotations annotations={}) | |
![]() | |
ByteCodeHandler ()=default | |
virtual | ~ByteCodeHandler () |
void | decode (const char *code, uint len) |
void | reset () |
int | currentInstructionOffset () const |
int | nextInstructionOffset () const |
int | absoluteOffset (int relativeOffset) const |
Protected Attributes | |
QString | m_body |
CodegenState | m_state |
![]() | |
const QV4::Compiler::JSUnitGenerator * | m_jsUnitGenerator = nullptr |
const QQmlJSTypeResolver * | m_typeResolver = nullptr |
QQmlJSLogger * | m_logger = nullptr |
const Function * | m_function = nullptr |
BasicBlocks | m_basicBlocks |
InstructionAnnotations | m_annotations |
QQmlJS::DiagnosticMessage * | m_error = nullptr |
Additional Inherited Members | |
![]() | |
enum | RegisterShortcuts { InvalidRegister = -1 , Accumulator = QV4::CallData::Accumulator , This = QV4::CallData::This , FirstArgument = QV4::CallData::OffsetCount } |
using | SourceLocationTable = QV4::Compiler::Context::SourceLocationTable |
using | VirtualRegisters = QFlatMap<int, VirtualRegister> |
using | BasicBlocks = QFlatMap<int, BasicBlock> |
using | InstructionAnnotations = QFlatMap<int, InstructionAnnotation> |
![]() | |
enum | Verdict { ProcessInstruction , SkipInstruction } |
![]() | |
static bool | instructionManipulatesContext (QV4::Moth::Instr::Type type) |
This is a final compile pass that generates C++ code from a function and the annotations produced by previous passes. Such annotations are produced by QQmlJSTypePropagator, and possibly amended by other passes.
Definition at line 30 of file qqmljscodegenerator_p.h.
QQmlJSCodeGenerator::QQmlJSCodeGenerator | ( | const QV4::Compiler::Context * | compilerContext, |
const QV4::Compiler::JSUnitGenerator * | unitGenerator, | ||
const QQmlJSTypeResolver * | typeResolver, | ||
QQmlJSLogger * | logger, | ||
BasicBlocks | basicBlocks, | ||
InstructionAnnotations | annotations ) |
Definition at line 55 of file qqmljscodegenerator.cpp.
|
default |
Definition at line 206 of file qqmljscodegenerator_p.h.
References QString::isEmpty(), and Q_ASSERT.
Referenced by convertStored(), generate_Construct(), generate_GetIterator(), and generate_StoreElement().
|
protected |
Definition at line 3839 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::changedRegister(), QQmlJSCompilePass::State::changedRegisterIndex(), QQmlJSScope::internalName(), QDeferredSharedPointer< T >::isNull(), m_state, QQmlJSRegisterContent::resultLookupIndex(), QQmlJSRegisterContent::storedType(), and QHash< Key, T >::value().
Referenced by generate_ConvertThisToObject(), generate_IteratorNext(), generate_MoveConst(), generate_MoveReg(), generate_StoreReg(), and startInstruction().
Definition at line 76 of file qqmljscodegenerator.cpp.
Referenced by metaType().
Definition at line 84 of file qqmljscodegenerator.cpp.
Referenced by metaObject(), and metaType().
|
protected |
Definition at line 3832 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::Accumulator, QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, m_state, and shouldMoveRegister().
Referenced by generate_Exp(), generate_GetIterator(), generate_Mod(), generate_Ret(), generate_SetLookup(), and generate_StoreReg().
|
protected |
Definition at line 3824 of file qqmljscodegenerator.cpp.
References registerVariable(), shouldMoveRegister(), and var.
Referenced by generate_Construct(), generate_DefineObjectLiteral(), generate_Exp(), generate_LoadReg(), generate_Mod(), and generate_MoveReg().
|
protected |
Definition at line 2919 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSRegisterContent::containedType(), QQmlJSRegisterContent::descriptiveName(), QQmlSA::EnumScope, QQmlJSScope::isListProperty(), QQmlJSTypeResolver::isNumeric(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::registerContains(), reject(), QQmlJSScope::scopeType(), QQmlJSRegisterContent::storedType(), var, and QQmlJSTypeResolver::varType().
Referenced by convertContained(), generate_DefineObjectLiteral(), generate_LoadQmlContextPropertyLookup(), generate_Ret(), generate_SetLookup(), and generate_StoreNameSloppy().
|
protected |
Definition at line 2945 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSRegisterContent::containedType(), QQmlJSRegisterContent::descriptiveName(), QQmlSA::EnumScope, QQmlJSTypeResolver::equals(), QQmlJSScope::isListProperty(), QQmlJSTypeResolver::isNumeric(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSCompilePass::m_typeResolver, metaType(), metaTypeFromType(), QQmlJSScope::nonCompositeBaseType(), reject(), QQmlJSRegisterContent::storedType(), var, and QQmlJSTypeResolver::varType().
Referenced by generate_LoadQmlContextPropertyLookup(), generate_Ret(), generate_SetLookup(), and generate_StoreNameSloppy().
|
protected |
Definition at line 3878 of file qqmljscodegenerator.cpp.
References QString::arg(), QQmlJSTypeResolver::boolType(), QQmlJSRegisterContent::containedType(), conversion(), convertContained(), convertStored(), QQmlJSTypeResolver::equals(), QQmlJSScope::internalName(), QString::isEmpty(), QQmlJSTypeResolver::isIntegral(), QQmlJSTypeResolver::isNumeric(), QQmlJSTypeResolver::isPrimitive(), QQmlJSScope::isReferenceType(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::registerContains(), reject(), QQmlJSRegisterContent::storedType(), and QQmlJSTypeResolver::stringType().
Referenced by conversion(), convertContained(), generate_As(), generate_Construct(), generate_ConvertThisToObject(), generate_DefineObjectLiteral(), generate_Exp(), generate_IteratorNext(), generate_LoadConst(), generate_LoadElement(), generate_LoadFalse(), generate_LoadInt(), generate_LoadNull(), generate_LoadQmlContextPropertyLookup(), generate_LoadReg(), generate_LoadRuntimeString(), generate_LoadTrue(), generate_LoadUndefined(), generate_LoadZero(), generate_Mod(), generate_MoveConst(), generate_MoveReg(), generate_Ret(), generate_SetLookup(), generate_StoreElement(), generate_StoreReg(), generate_ThrowException(), and run().
|
inlineprotected |
Definition at line 216 of file qqmljscodegenerator_p.h.
References QQmlJSRegisterContent::containedType(), QQmlJSScope::isReferenceType(), and QQmlJSRegisterContent::storedType().
|
protected |
Definition at line 4222 of file qqmljscodegenerator.cpp.
References arg, argument, QQmlJSCompilePass::argumentType(), QQmlJSTypeResolver::canHold(), QQmlJSTypeResolver::canPopulate(), QQmlJSRegisterContent::containedType(), contentPointer(), conversion(), QQmlJSRegisterContent::descriptiveName(), QQmlJSTypeResolver::equals(), global, QQmlJSTypeResolver::isIntegral(), QQmlJSTypeResolver::isPrimitive(), QQmlJSScope::isReferenceType(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSCompilePass::m_typeResolver, metaObject(), metaType(), QString::number(), Q_ASSERT, reject(), QQmlJSTypeResolver::selectConstructor(), QQmlJSRegisterContent::storedIn(), QQmlJSRegisterContent::storedType(), QQmlJSRegisterContent::type(), and QQmlJSTypeResolver::varType().
Referenced by conversion().
|
protected |
Definition at line 3926 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), addInclude(), QQmlJSTypeResolver::areEquivalentLists(), base, QQmlJSTypeResolver::boolType(), QQmlJSTypeResolver::byteArrayType(), QQmlJSTypeResolver::canPopulate(), convertStored(), QQmlJSTypeResolver::dateTimeType(), QQmlJSTypeResolver::dateType(), QQmlSA::EnumScope, QQmlJSTypeResolver::equals(), QQmlJSScope::extensionType(), QQmlJSTypeResolver::floatType(), QQmlJSTypeResolver::int16Type(), QQmlJSTypeResolver::int32Type(), QQmlJSTypeResolver::int64Type(), QQmlJSTypeResolver::int8Type(), QQmlJSScope::internalName(), QQmlJSScope::isComposite(), QString::isEmpty(), QQmlJSTypeResolver::isIntegral(), QQmlJSScope::isListProperty(), QQmlJSTypeResolver::isNumeric(), QQmlJSScope::isReferenceType(), QQmlJSTypeResolver::isSignedInteger(), QQmlJSTypeResolver::isUnsignedInteger(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSTypeResolver::jsValueType(), QQmlJSTypeResolver::listPropertyType(), QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::nullType(), Q_ASSERT, QQmlJSTypeResolver::realType(), reject(), QQmlJSScope::AnnotatedScope::scope, QQmlJSTypeResolver::selectConstructor(), QQmlJSTypeResolver::stringType(), QQmlJSTypeResolver::timeType(), QQmlJSUtils::toLiteral(), QQmlJSTypeResolver::uint16Type(), QQmlJSTypeResolver::uint64Type(), QQmlJSTypeResolver::uint8Type(), QQmlJSTypeResolver::urlType(), QQmlJSScope::valueType(), QQmlJSTypeResolver::varType(), QQmlJSTypeResolver::voidType(), and zero.
Referenced by conversion(), convertStored(), generate_As(), generate_Construct(), generate_DefineObjectLiteral(), generate_JumpFalse(), generate_JumpTrue(), generate_LoadElement(), generate_Mod(), and run().
|
overrideprotectedvirtual |
Implements QV4::Moth::ByteCodeHandler.
Definition at line 3357 of file qqmljscodegenerator.cpp.
|
overrideprotected |
Definition at line 3153 of file qqmljscodegenerator.cpp.
References generate_Add(), and INJECT_TRACE_INFO.
Referenced by generate_Add().
|
overrideprotected |
Definition at line 3047 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, conversion(), convertStored(), QQmlJSTypeResolver::equals(), QQmlJSTypeResolver::extractNonVoidFromOptionalType(), generate_As(), QQmlJSTypeResolver::genericType(), global, QQmlJSTypeResolver::inherits(), INJECT_TRACE_INFO, QQmlJSScope::isReferenceType(), QQmlJSTypeResolver::jsPrimitiveType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, metaObject(), QQmlJSTypeResolver::metaObjectType(), metaType(), QQmlJSTypeResolver::originalContainedType(), QQmlJSCompilePass::State::readRegister(), registerVariable(), reject(), QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::varType(), and QQmlJSTypeResolver::voidType().
Referenced by generate_As().
|
overrideprotected |
Definition at line 3159 of file qqmljscodegenerator.cpp.
References generate_BitAnd(), and INJECT_TRACE_INFO.
Referenced by generate_BitAnd().
|
overrideprotected |
Definition at line 3195 of file qqmljscodegenerator.cpp.
References generate_BitAndConst(), and INJECT_TRACE_INFO.
Referenced by generate_BitAndConst().
|
overrideprotected |
Definition at line 3165 of file qqmljscodegenerator.cpp.
References generate_BitOr(), and INJECT_TRACE_INFO.
Referenced by generate_BitOr().
|
overrideprotected |
Definition at line 3201 of file qqmljscodegenerator.cpp.
References generate_BitOrConst(), and INJECT_TRACE_INFO.
Referenced by generate_BitOrConst().
|
overrideprotected |
Definition at line 3171 of file qqmljscodegenerator.cpp.
References generate_BitXor(), and INJECT_TRACE_INFO.
Referenced by generate_BitXor().
|
overrideprotected |
Definition at line 3207 of file qqmljscodegenerator.cpp.
References generate_BitXorConst(), and INJECT_TRACE_INFO.
Referenced by generate_BitXorConst().
|
overrideprotected |
Definition at line 2286 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2271 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2279 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1772 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2217 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorOut(), base, QQmlJSTypeResolver::consoleObject(), QQmlJSRegisterContent::descriptiveName(), QQmlJSTypeResolver::equals(), generate_CallPropertyLookup(), generateLookup(), INJECT_TRACE_INFO, QQmlJSScope::isReferenceType(), QQmlJSRegisterContent::JavaScriptReturnValue, QV4::Compiler::JSUnitGenerator::lookupName(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::mathObject(), QString::number(), registerType(), registerVariable(), reject(), QQmlJSRegisterContent::scopeType(), QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::stringType(), and QQmlJSRegisterContent::variant().
Referenced by generate_CallPropertyLookup().
|
overrideprotected |
Definition at line 2294 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSTypeResolver::equals(), generate_CallQmlContextPropertyLookup(), generateLookup(), INJECT_TRACE_INFO, QQmlJSRegisterContent::JavaScriptReturnValue, QQmlJSTypeResolver::jsGlobalObject(), QV4::Compiler::JSUnitGenerator::lookupNameIndex(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QString::number(), reject(), QQmlJSRegisterContent::scopeType(), QV4::Compiler::JSUnitGenerator::stringForIndex(), and QQmlJSRegisterContent::variant().
Referenced by generate_CallQmlContextPropertyLookup().
|
overrideprotected |
Definition at line 1755 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1763 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2326 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2886 of file qqmljscodegenerator.cpp.
References generate_CheckException(), and INJECT_TRACE_INFO.
Referenced by generate_CheckException().
|
overrideprotected |
Definition at line 2508 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2987 of file qqmljscodegenerator.cpp.
References generate_CmpEq(), INJECT_TRACE_INFO, registerType(), and registerVariable().
Referenced by generate_CmpEq().
|
overrideprotected |
Definition at line 2971 of file qqmljscodegenerator.cpp.
References generate_CmpEqInt(), global, INJECT_TRACE_INFO, QQmlJSTypeResolver::int32Type(), QQmlJSCompilePass::m_typeResolver, and QString::number().
Referenced by generate_CmpEqInt().
|
overrideprotected |
Definition at line 2893 of file qqmljscodegenerator.cpp.
References generate_CmpEqNull(), global, INJECT_TRACE_INFO, QQmlJSCompilePass::m_typeResolver, and QQmlJSTypeResolver::nullType().
Referenced by generate_CmpEqNull().
|
overrideprotected |
Definition at line 3005 of file qqmljscodegenerator.cpp.
References generate_CmpGe(), and INJECT_TRACE_INFO.
Referenced by generate_CmpGe().
|
overrideprotected |
Definition at line 2999 of file qqmljscodegenerator.cpp.
References generate_CmpGt(), and INJECT_TRACE_INFO.
Referenced by generate_CmpGt().
|
overrideprotected |
Definition at line 3035 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 3041 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 3017 of file qqmljscodegenerator.cpp.
References generate_CmpLe(), and INJECT_TRACE_INFO.
Referenced by generate_CmpLe().
|
overrideprotected |
Definition at line 3011 of file qqmljscodegenerator.cpp.
References generate_CmpLt(), and INJECT_TRACE_INFO.
Referenced by generate_CmpLt().
|
overrideprotected |
Definition at line 2993 of file qqmljscodegenerator.cpp.
References generate_CmpNe(), INJECT_TRACE_INFO, registerType(), and registerVariable().
Referenced by generate_CmpNe().
|
overrideprotected |
Definition at line 2979 of file qqmljscodegenerator.cpp.
References generate_CmpNeInt(), global, INJECT_TRACE_INFO, QQmlJSTypeResolver::int32Type(), QQmlJSCompilePass::m_typeResolver, and QString::number().
Referenced by generate_CmpNeInt().
|
overrideprotected |
Definition at line 2899 of file qqmljscodegenerator.cpp.
References global, INJECT_TRACE_INFO, QQmlJSCompilePass::m_typeResolver, and QQmlJSTypeResolver::nullType().
|
overrideprotected |
Definition at line 3023 of file qqmljscodegenerator.cpp.
References generate_CmpStrictEqual(), INJECT_TRACE_INFO, registerType(), and registerVariable().
Referenced by generate_CmpStrictEqual().
|
overrideprotected |
Definition at line 3029 of file qqmljscodegenerator.cpp.
References generate_CmpStrictNotEqual(), INJECT_TRACE_INFO, registerType(), and registerVariable().
Referenced by generate_CmpStrictNotEqual().
|
overrideprotected |
Definition at line 2344 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, addInclude(), consumedRegisterVariable(), QQmlJSRegisterContent::containedType(), conversion(), convertStored(), QQmlJSTypeResolver::dateTimeType(), error, generate_Construct(), generateReturnError(), i, INJECT_TRACE_INFO, QQmlJSScope::internalName(), QQmlJSTypeResolver::isNativeArrayIndex(), QQmlJSTypeResolver::isUnsignedInteger(), QQmlJS::DiagnosticMessage::isValid(), m_body, QQmlJSCompilePass::m_error, m_state, QQmlJSCompilePass::m_typeResolver, Q_UNUSED, QQmlJSCompilePass::State::readRegister(), QQmlJSTypeResolver::realType(), QQmlJSTypeResolver::registerContains(), registerType(), registerVariable(), reject(), QQmlJSTypeResolver::sizeType(), QQmlJSRegisterContent::storedType(), and QQmlJSTypeResolver::variantListType().
Referenced by generate_Construct().
|
overrideprotected |
Definition at line 2426 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2821 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::changedRegister(), changedRegisterVariable(), conversion(), generate_ConvertThisToObject(), INJECT_TRACE_INFO, m_body, m_state, QQmlJSCompilePass::m_typeResolver, and QQmlJSTypeResolver::qObjectType().
Referenced by generate_ConvertThisToObject().
|
overrideprotected |
Definition at line 2483 of file qqmljscodegenerator.cpp.
References generate_CreateCallContext(), INJECT_TRACE_INFO, and m_body.
Referenced by generate_CreateCallContext().
|
overrideprotected |
Definition at line 2797 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2805 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2815 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2810 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2452 of file qqmljscodegenerator.cpp.
References generate_DeadTemporalZoneCheck(), INJECT_TRACE_INFO, and Q_UNUSED.
Referenced by generate_DeadTemporalZoneCheck().
|
overrideprotected |
Definition at line 390 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2654 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 3147 of file qqmljscodegenerator.cpp.
References generate_Decrement(), and INJECT_TRACE_INFO.
Referenced by generate_Decrement().
|
overrideprotected |
Definition at line 2661 of file qqmljscodegenerator.cpp.
References args, generate_DefineArray(), INJECT_TRACE_INFO, QQmlJS::DiagnosticMessage::isValid(), and QQmlJSCompilePass::m_error.
Referenced by generate_DefineArray().
|
overrideprotected |
Definition at line 2670 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, arg, args, argument, QQmlJSScope::augmentedInternalName(), QQmlJSTypeResolver::canPopulate(), consumedRegisterVariable(), QQmlJSRegisterContent::containedType(), contentPointer(), conversion(), convertStored(), QQmlJSTypeResolver::equals(), QQmlJSScope::extensionType(), generate_DefineObjectLiteral(), global, i, INJECT_TRACE_INFO, QQmlJSScope::internalName(), QV4::Compiler::JSUnitGenerator::jsClassMember(), QV4::Compiler::JSUnitGenerator::jsClassSize(), QQmlJSTypeResolver::jsPrimitiveType(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, metaObject(), metaType(), QString::number(), QQmlJSScope::property(), Q_ASSERT, QQmlJSCompilePass::State::readRegister(), QQmlJSTypeResolver::registerContains(), registerType(), registerVariable(), reject(), QQmlJSScope::AnnotatedScope::scope, QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::stringType(), QQmlJSUtils::toLiteral(), QQmlJSTypeResolver::variantMapType(), and QQmlJSTypeResolver::varType().
Referenced by generate_DefineObjectLiteral().
|
overrideprotected |
Definition at line 2637 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2630 of file qqmljscodegenerator.cpp.
References base, BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2625 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 3258 of file qqmljscodegenerator.cpp.
References generate_Div(), and INJECT_TRACE_INFO.
Referenced by generate_Div().
|
overrideprotected |
Definition at line 3231 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, consumedAccumulatorVariableIn(), consumedRegisterVariable(), conversion(), generate_Exp(), INJECT_TRACE_INFO, QQmlJS::DiagnosticMessage::isValid(), m_body, QQmlJSCompilePass::m_error, m_state, Q_ASSERT, QQmlJSCompilePass::State::readAccumulator(), QQmlJSCompilePass::State::readRegister(), and registerType().
Referenced by generate_Exp().
|
overrideprotected |
Definition at line 2473 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2532 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, addInclude(), consumedAccumulatorVariableIn(), QQmlJSTypeResolver::equals(), QQmlJSTypeResolver::forInIteratorPtr(), QQmlJSTypeResolver::forOfIteratorPtr(), generate_GetIterator(), QQmlJS::AST::In, INJECT_TRACE_INFO, QQmlJSRegisterContent::isList(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, QString::number(), QQmlJS::AST::Of, and reject().
Referenced by generate_GetIterator().
|
overrideprotected |
Definition at line 1327 of file qqmljscodegenerator.cpp.
References generate_GetLookup(), and INJECT_TRACE_INFO.
Referenced by generate_GetLookup().
|
overrideprotected |
Definition at line 1506 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::Accumulator, QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QV4::Moth::ByteCodeHandler::currentInstructionOffset(), QQmlJSTypeResolver::equals(), generate_GetOptionalLookup(), INJECT_TRACE_INFO, QQmlJSScope::isReferenceType(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSTypeResolver::jsValueType(), QQmlJSCompilePass::m_annotations, m_body, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSRegisterContent::ObjectEnum, QQmlJSRegisterContent::storedType(), and QQmlJSTypeResolver::varType().
Referenced by generate_GetOptionalLookup().
|
overrideprotected |
Definition at line 3302 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 3141 of file qqmljscodegenerator.cpp.
References generate_Increment(), and INJECT_TRACE_INFO.
Referenced by generate_Increment().
|
overrideprotected |
Definition at line 3290 of file qqmljscodegenerator.cpp.
References Q_UNUSED.
|
overrideprotected |
Definition at line 2620 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2572 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSCompilePass::State::changedRegister(), QQmlJSCompilePass::State::changedRegisterIndex(), changedRegisterVariable(), conversion(), QQmlJSTypeResolver::equals(), QQmlJSTypeResolver::forInIteratorPtr(), QQmlJSTypeResolver::forOfIteratorPtr(), generate_IteratorNext(), INJECT_TRACE_INFO, m_body, m_state, QQmlJSCompilePass::m_typeResolver, QString::number(), Q_ASSERT, reject(), QQmlJSRegisterContent::storedIn(), QQmlJSTypeResolver::valueType(), and QQmlJSTypeResolver::voidType().
Referenced by generate_IteratorNext().
|
overrideprotected |
Definition at line 2612 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2841 of file qqmljscodegenerator.cpp.
References generate_Jump(), INJECT_TRACE_INFO, and resetState().
Referenced by generate_Jump().
|
overrideprotected |
Definition at line 2861 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSTypeResolver::boolType(), convertStored(), generate_JumpFalse(), INJECT_TRACE_INFO, m_body, m_state, QQmlJSCompilePass::m_typeResolver, and QQmlJSRegisterContent::storedType().
Referenced by generate_JumpFalse().
|
overrideprotected |
Definition at line 2872 of file qqmljscodegenerator.cpp.
References generate_JumpNoException(), INJECT_TRACE_INFO, and m_body.
Referenced by generate_JumpNoException().
|
overrideprotected |
Definition at line 2880 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2850 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSTypeResolver::boolType(), convertStored(), generate_JumpTrue(), INJECT_TRACE_INFO, m_body, m_state, QQmlJSCompilePass::m_typeResolver, and QQmlJSRegisterContent::storedType().
Referenced by generate_JumpTrue().
|
overrideprotected |
Definition at line 650 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 419 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSTypeResolver::boolType(), QV4::Compiler::JSUnitGenerator::constant(), conversion(), QV4::StaticValue::fromReturnedValue(), generate_LoadConst(), INJECT_TRACE_INFO, QQmlJSTypeResolver::int32Type(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::nullType(), QString::number(), QQmlJSTypeResolver::realType(), reject(), toNumericString(), QQmlJSTypeResolver::typeForConst(), and QQmlJSTypeResolver::voidType().
Referenced by generate_LoadConst().
|
overrideprotected |
Definition at line 766 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, base, QQmlJSRegisterContent::containedType(), conversion(), convertStored(), QQmlJSRegisterContent::descriptiveName(), QQmlJSTypeResolver::extractNonVoidFromOptionalType(), generate_LoadElement(), global, INJECT_TRACE_INFO, QQmlJSRegisterContent::isConversion(), QQmlJSRegisterContent::isList(), QQmlJSTypeResolver::isNativeArrayIndex(), QQmlJSTypeResolver::isNumeric(), QQmlJSCompilePass::State::isRegisterAffectedBySideEffects(), QQmlJSTypeResolver::isUnsignedInteger(), QQmlJSTypeResolver::listPropertyType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::qObjectType(), registerType(), registerVariable(), reject(), QQmlJSRegisterContent::storedIn(), QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::storedType(), QQmlJSTypeResolver::stringType(), QQmlJSTypeResolver::valueType(), and QQmlJSTypeResolver::voidType().
Referenced by generate_LoadElement().
|
overrideprotected |
Definition at line 479 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSTypeResolver::boolType(), conversion(), generate_LoadFalse(), INJECT_TRACE_INFO, m_body, m_state, and QQmlJSCompilePass::m_typeResolver.
Referenced by generate_LoadFalse().
|
overrideprotected |
Definition at line 662 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, generate_LoadGlobalLookup(), generateLookup(), INJECT_TRACE_INFO, m_state, metaTypeFromType(), QString::number(), and QQmlJSRegisterContent::storedType().
Referenced by generate_LoadGlobalLookup().
|
overrideprotected |
Definition at line 600 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 509 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, conversion(), generate_LoadInt(), INJECT_TRACE_INFO, QQmlJSTypeResolver::int32Type(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, and QString::number().
Referenced by generate_LoadInt().
|
overrideprotected |
Definition at line 606 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 656 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 489 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, conversion(), generate_LoadNull(), INJECT_TRACE_INFO, m_body, m_state, QQmlJSCompilePass::m_typeResolver, and QQmlJSTypeResolver::nullType().
Referenced by generate_LoadNull().
|
overrideprotected |
Definition at line 913 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 907 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 676 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, contentPointer(), contentType(), conversion(), QQmlJSRegisterContent::descriptiveName(), generate_LoadQmlContextPropertyLookup(), generateLookup(), getLookupPreparation(), INJECT_TRACE_INFO, QQmlJSRegisterContent::isImportNamespace(), QQmlJSRegisterContent::isProperty(), QQmlJSRegisterContent::isType(), QQmlJSRegisterContent::JavaScriptGlobal, QQmlJSTypeResolver::jsValueType(), QV4::Compiler::JSUnitGenerator::lookupNameIndex(), lookupType(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QString::number(), QQmlJSRegisterContent::ObjectById, reject(), QQmlJSRegisterContent::scopeType(), QQmlJSRegisterContent::storedType(), QV4::Compiler::JSUnitGenerator::stringForIndex(), and QQmlJSRegisterContent::variant().
Referenced by generate_LoadQmlContextPropertyLookup().
|
overrideprotected |
Definition at line 558 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, consumedRegisterVariable(), conversion(), generate_LoadReg(), INJECT_TRACE_INFO, m_body, m_state, and registerType().
Referenced by generate_LoadReg().
|
overrideprotected |
Definition at line 632 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, conversion(), generate_LoadRuntimeString(), INJECT_TRACE_INFO, m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QV4::Compiler::JSUnitGenerator::stringForIndex(), QQmlJSTypeResolver::stringType(), and QQmlJSUtils::toLiteral().
Referenced by generate_LoadRuntimeString().
|
overrideprotected |
Definition at line 618 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2831 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1682 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, property, and Q_UNUSED.
|
overrideprotected |
Definition at line 469 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSTypeResolver::boolType(), conversion(), generate_LoadTrue(), INJECT_TRACE_INFO, m_body, m_state, and QQmlJSCompilePass::m_typeResolver.
Referenced by generate_LoadTrue().
|
overrideprotected |
Definition at line 499 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, conversion(), generate_LoadUndefined(), INJECT_TRACE_INFO, m_body, m_state, QQmlJSCompilePass::m_typeResolver, and QQmlJSTypeResolver::voidType().
Referenced by generate_LoadUndefined().
|
overrideprotected |
Definition at line 459 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, conversion(), generate_LoadZero(), INJECT_TRACE_INFO, QQmlJSTypeResolver::int32Type(), m_body, m_state, and QQmlJSCompilePass::m_typeResolver.
Referenced by generate_LoadZero().
|
overrideprotected |
Definition at line 3264 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, consumedAccumulatorVariableIn(), consumedRegisterVariable(), conversion(), convertStored(), generate_Mod(), INJECT_TRACE_INFO, QQmlJS::DiagnosticMessage::isValid(), QQmlJSTypeResolver::jsPrimitiveType(), m_body, QQmlJSCompilePass::m_error, m_state, QQmlJSCompilePass::m_typeResolver, Q_ASSERT, registerType(), and QQmlJSRegisterContent::storedType().
Referenced by generate_Mod().
|
overrideprotected |
Definition at line 520 of file qqmljscodegenerator.cpp.
References QQmlJSTypeResolver::boolType(), QQmlJSCompilePass::State::changedRegister(), QQmlJSCompilePass::State::changedRegisterIndex(), changedRegisterVariable(), QV4::Compiler::JSUnitGenerator::constant(), conversion(), QV4::StaticValue::fromReturnedValue(), generate_MoveConst(), INJECT_TRACE_INFO, QQmlJSTypeResolver::int32Type(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::nullType(), QString::number(), Q_ASSERT, QQmlJSTypeResolver::realType(), reject(), toNumericString(), var, and QQmlJSTypeResolver::voidType().
Referenced by generate_MoveConst().
|
overrideprotected |
Definition at line 585 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::changedRegister(), QQmlJSCompilePass::State::changedRegisterIndex(), changedRegisterVariable(), consumedRegisterVariable(), conversion(), generate_MoveReg(), INJECT_TRACE_INFO, m_body, m_state, Q_ASSERT, and registerType().
Referenced by generate_MoveReg().
|
overrideprotected |
Definition at line 643 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 3252 of file qqmljscodegenerator.cpp.
References generate_Mul(), and INJECT_TRACE_INFO.
Referenced by generate_Mul().
|
overrideprotected |
Definition at line 2524 of file qqmljscodegenerator.cpp.
References generate_PopContext(), INJECT_TRACE_INFO, and m_body.
Referenced by generate_PopContext().
|
overrideprotected |
Definition at line 2519 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2502 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2490 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2513 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2497 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1704 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 310 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, consumedAccumulatorVariableIn(), QQmlJSRegisterContent::containedType(), contentPointer(), contentType(), conversion(), QQmlJSTypeResolver::equals(), generate_Ret(), INJECT_TRACE_INFO, QQmlJSTypeResolver::isTriviallyCopyable(), QQmlJSRegisterContent::isValid(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSTypeResolver::jsValueType(), m_body, QQmlJSCompilePass::m_function, m_state, QQmlJSCompilePass::m_typeResolver, qScopeGuard(), QQmlJSTypeResolver::registerContains(), resetState(), QQmlJSCompilePass::Function::returnType, QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::varType(), and QQmlJSTypeResolver::voidType().
Referenced by generate_Ret().
|
overrideprotected |
Definition at line 2478 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1561 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, base, consumedAccumulatorVariableIn(), contentPointer(), contentType(), conversion(), QQmlJSTypeResolver::equals(), generate_SetLookup(), generateLookup(), INJECT_TRACE_INFO, QQmlJSTypeResolver::isPrimitive(), QQmlJSTypeResolver::jsPrimitiveType(), QV4::Compiler::JSUnitGenerator::lookupName(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::merge(), metaObject(), QString::number(), QQmlJSTypeResolver::originalType(), property, Q_ASSERT, QQmlJSCompilePass::State::readAccumulator(), QQmlJSTypeResolver::registerContains(), registerType(), registerVariable(), reject(), setLookupPreparation(), QQmlJSRegisterContent::storedIn(), and QQmlJSRegisterContent::storedType().
Referenced by generate_SetLookup().
|
overrideprotected |
Definition at line 2434 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 3189 of file qqmljscodegenerator.cpp.
References generate_Shl(), and INJECT_TRACE_INFO.
Referenced by generate_Shl().
|
overrideprotected |
Definition at line 3225 of file qqmljscodegenerator.cpp.
References generate_ShlConst(), and INJECT_TRACE_INFO.
Referenced by generate_ShlConst().
|
overrideprotected |
Definition at line 3183 of file qqmljscodegenerator.cpp.
References generate_Shr(), and INJECT_TRACE_INFO.
Referenced by generate_Shr().
|
overrideprotected |
Definition at line 3219 of file qqmljscodegenerator.cpp.
References generate_ShrConst(), and INJECT_TRACE_INFO.
Referenced by generate_ShrConst().
|
overrideprotected |
Definition at line 850 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, addInclude(), base, QQmlJSRegisterContent::containedType(), conversion(), generate_StoreElement(), QQmlJSTypeResolver::genericType(), global, INJECT_TRACE_INFO, QQmlJSRegisterContent::isList(), QQmlJSTypeResolver::isNativeArrayIndex(), QQmlJSTypeResolver::isNumeric(), QQmlJSCompilePass::State::isRegisterAffectedBySideEffects(), QQmlJSTypeResolver::isUnsignedInteger(), QQmlJSTypeResolver::listPropertyType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, registerType(), registerVariable(), reject(), QQmlJSRegisterContent::storedType(), and QQmlJSTypeResolver::valueType().
Referenced by generate_StoreElement().
|
overrideprotected |
Definition at line 612 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 730 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, contentPointer(), contentType(), QQmlJSRegisterContent::ExtensionScopeMethod, QQmlJSRegisterContent::ExtensionScopeProperty, generate_StoreNameSloppy(), INJECT_TRACE_INFO, m_body, QQmlJSCompilePass::m_function, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QString::number(), Q_ASSERT, QQmlJSCompilePass::Function::qmlScope, reject(), QQmlJSTypeResolver::scopedType(), QQmlJSRegisterContent::ScopeMethod, QQmlJSRegisterContent::ScopeProperty, and QV4::Compiler::JSUnitGenerator::stringForIndex().
Referenced by generate_StoreNameSloppy().
|
overrideprotected |
Definition at line 760 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1538 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 569 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::changedRegister(), QQmlJSCompilePass::State::changedRegisterIndex(), changedRegisterVariable(), consumedAccumulatorVariableIn(), conversion(), generate_StoreReg(), INJECT_TRACE_INFO, QQmlJSRegisterContent::isValid(), m_body, m_state, Q_ASSERT, and var.
Referenced by generate_StoreReg().
|
overrideprotected |
Definition at line 625 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1688 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, property, and Q_UNUSED.
|
overrideprotected |
Definition at line 3284 of file qqmljscodegenerator.cpp.
References generate_Sub(), and INJECT_TRACE_INFO.
Referenced by generate_Sub().
|
overrideprotected |
Definition at line 2335 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2460 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, conversion(), generate_ThrowException(), generateReturnError(), generateSetInstructionPointer(), global, INJECT_TRACE_INFO, QQmlJSTypeResolver::jsValueType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, and resetState().
Referenced by generate_ThrowException().
|
overrideprotected |
Definition at line 3297 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2836 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2643 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2649 of file qqmljscodegenerator.cpp.
References reject().
|
overrideprotected |
Definition at line 3135 of file qqmljscodegenerator.cpp.
References generate_UCompl(), and INJECT_TRACE_INFO.
Referenced by generate_UCompl().
|
overrideprotected |
Definition at line 3129 of file qqmljscodegenerator.cpp.
References generate_UMinus(), and INJECT_TRACE_INFO.
Referenced by generate_UMinus().
|
overrideprotected |
Definition at line 3117 of file qqmljscodegenerator.cpp.
References generate_UNot(), and INJECT_TRACE_INFO.
Referenced by generate_UNot().
|
overrideprotected |
Definition at line 2440 of file qqmljscodegenerator.cpp.
References reject().
|
overrideprotected |
Definition at line 2445 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 3123 of file qqmljscodegenerator.cpp.
References generate_UPlus(), and INJECT_TRACE_INFO.
Referenced by generate_UPlus().
|
overrideprotected |
Definition at line 3177 of file qqmljscodegenerator.cpp.
References INJECT_TRACE_INFO.
|
overrideprotected |
Definition at line 3213 of file qqmljscodegenerator.cpp.
References generate_UShrConst(), and INJECT_TRACE_INFO.
Referenced by generate_UShrConst().
|
overrideprotected |
Definition at line 1694 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1699 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
protected |
Definition at line 920 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSRegisterContent::enumeration(), QQmlJSRegisterContent::enumMember(), generateLookup(), QQmlJSScope::internalName(), QQmlJSScope::isComposite(), QString::isEmpty(), m_body, m_state, metaObject(), QString::number(), Q_ASSERT, reject(), and QQmlJSRegisterContent::scopeType().
|
protected |
Definition at line 3714 of file qqmljscodegenerator.cpp.
References generateSetInstructionPointer(), and m_body.
Referenced by generate_CallPropertyLookup(), generate_CallQmlContextPropertyLookup(), generate_LoadGlobalLookup(), generate_LoadQmlContextPropertyLookup(), generate_SetLookup(), and generateEnumLookup().
|
protected |
Definition at line 280 of file qqmljscodegenerator.cpp.
References QQmlJSTypeResolver::equals(), m_body, QQmlJSCompilePass::m_function, QQmlJSCompilePass::m_typeResolver, metaType(), qScopeGuard(), QQmlJSTypeResolver::registerContains(), ret, QQmlJSCompilePass::Function::returnType, and QQmlJSTypeResolver::voidType().
Referenced by generate_Construct(), and generate_ThrowException().
|
protected |
Definition at line 3363 of file qqmljscodegenerator.cpp.
References m_body, QV4::Moth::ByteCodeHandler::nextInstructionOffset(), and QString::number().
Referenced by generate_ThrowException(), and generateLookup().
|
protected |
Definition at line 2905 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::m_typeResolver, QString::number(), QQmlJSTypeResolver::registerContains(), QQmlJSRegisterContent::storedType(), var, and QQmlJSTypeResolver::varType().
Referenced by generate_LoadQmlContextPropertyLookup().
|
protected |
Definition at line 3863 of file qqmljscodegenerator.cpp.
References QFlatMap< Key, T, Compare, KeyContainer, MappedContainer >::end(), QFlatMap< Key, T, Compare, KeyContainer, MappedContainer >::find(), it, QQmlJSCompilePass::State::lookups, and m_state.
Referenced by generate_LoadQmlContextPropertyLookup().
|
protected |
Definition at line 3815 of file qqmljscodegenerator.cpp.
References QHash< Key, T >::constBegin(), QHash< Key, T >::constEnd(), and it.
|
protectedvirtual |
Definition at line 92 of file qqmljscodegenerator.cpp.
References compositeMetaType(), QQmlJSScope::internalName(), QQmlJSScope::isComposite(), QQmlJSCompilePass::m_typeResolver, metaTypeFromName(), QQmlJSTypeResolver::nameForType(), and reject().
|
protectedvirtual |
Definition at line 110 of file qqmljscodegenerator.cpp.
References compositeListMetaType(), compositeMetaType(), QQmlJSTypeResolver::equals(), QQmlJSTypeResolver::genericType(), QQmlJSCompilePass::m_typeResolver, metaTypeFromName(), metaTypeFromType(), and QQmlJSTypeResolver::nameForType().
Referenced by contentType(), convertContained(), generate_As(), generate_DefineObjectLiteral(), generateReturnError(), and run().
|
protected |
Definition at line 69 of file qqmljscodegenerator.cpp.
References QString::fromUtf8(), and QMetaObject::normalizedType().
Referenced by metaObject(), and metaType().
|
protected |
Definition at line 64 of file qqmljscodegenerator.cpp.
Referenced by contentType(), generate_LoadGlobalLookup(), and metaType().
|
protected |
Definition at line 3854 of file qqmljscodegenerator.cpp.
References QFlatMap< Key, T, Compare, KeyContainer, MappedContainer >::end(), QFlatMap< Key, T, Compare, KeyContainer, MappedContainer >::find(), it, m_state, and QQmlJSCompilePass::State::registers.
Referenced by generate_CallPropertyLookup(), generate_CmpEq(), generate_CmpNe(), generate_CmpStrictEqual(), generate_CmpStrictNotEqual(), generate_Construct(), generate_DefineObjectLiteral(), generate_Exp(), generate_LoadElement(), generate_LoadReg(), generate_Mod(), generate_MoveReg(), generate_SetLookup(), generate_StoreElement(), and registerVariable().
|
protected |
Definition at line 3801 of file qqmljscodegenerator.cpp.
References QHash< Key, T >::constEnd(), QHash< Key, T >::constFind(), internalName(), it, registerType(), QQmlJSRegisterContent::resultLookupIndex(), and QQmlJSRegisterContent::storedType().
Referenced by consumedRegisterVariable(), generate_As(), generate_CallPropertyLookup(), generate_CmpEq(), generate_CmpNe(), generate_CmpStrictEqual(), generate_CmpStrictNotEqual(), generate_Construct(), generate_DefineObjectLiteral(), generate_LoadElement(), generate_SetLookup(), and generate_StoreElement().
Definition at line 4291 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::setError().
Referenced by contentPointer(), contentType(), conversion(), convertContained(), convertStored(), generate_As(), generate_CallGlobalLookup(), generate_CallName(), generate_CallProperty(), generate_CallPropertyLookup(), generate_CallQmlContextPropertyLookup(), generate_CmpIn(), generate_Construct(), generate_DefineObjectLiteral(), generate_GetIterator(), generate_IteratorNext(), generate_LoadClosure(), generate_LoadConst(), generate_LoadElement(), generate_LoadLocal(), generate_LoadName(), generate_LoadProperty(), generate_LoadQmlContextPropertyLookup(), generate_MoveConst(), generate_PushCatchContext(), generate_SetLookup(), generate_SetUnwindHandler(), generate_StoreElement(), generate_StoreNameSloppy(), generate_StoreProperty(), generate_TypeofName(), generate_TypeofValue(), generate_UnwindDispatch(), generateEnumLookup(), and metaObject().
|
inlineprotected |
Definition at line 280 of file qqmljscodegenerator_p.h.
Referenced by generate_Jump(), generate_Ret(), and generate_ThrowException().
QQmlJSAotFunction QQmlJSCodeGenerator::run | ( | const Function * | function, |
QQmlJS::DiagnosticMessage * | error, | ||
bool | basicBlocksValidationFailed ) |
Definition at line 129 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::Accumulator, argument, QQmlJSCompilePass::argumentType(), QQmlJSCompilePass::Function::argumentTypes, QSet< T >::begin(), QHash< Key, T >::cbegin(), QHash< Key, T >::cend(), QV4::Compiler::Context::column, QByteArray::constData(), conversion(), convertStored(), decode, error, QQmlJSCompilePass::FirstArgument, QQmlJSCompilePass::firstRegisterIndex(), function, i, QQmlJSCompilePass::initialState(), QHash< Key, T >::insert(), QQmlJSCompilePass::InvalidRegister, QQmlJSCompilePass::isArgument(), isTypeStorable(), it, QV4::Compiler::Context::labelInfo, QV4::Compiler::Context::line, QQmlJSCompilePass::m_annotations, m_body, QQmlJSCompilePass::m_error, QQmlJSCompilePass::m_function, m_state, QQmlJSCompilePass::m_typeResolver, metaType(), QV4::Compiler::Context::name, QString::number(), QQmlJSTypeResolver::originalContainedType(), originalValue, QT_WARNING_DISABLE_CLANG, QT_WARNING_POP, QT_WARNING_PUSH, QQmlJSTypeResolver::registerContains(), QByteArray::size(), QHash< Key, T >::size(), QQmlJSCompilePass::This, and QQmlJSTypeResolver::voidType().
|
protected |
Definition at line 1545 of file qqmljscodegenerator.cpp.
References arg, QQmlJSCompilePass::m_typeResolver, QString::number(), QQmlJSTypeResolver::registerContains(), QQmlJSRegisterContent::storedType(), and QQmlJSTypeResolver::varType().
Referenced by generate_SetLookup().
|
protected |
Definition at line 3872 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::canMoveReadRegister(), QQmlJSTypeResolver::isTriviallyCopyable(), m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSCompilePass::State::readRegister(), and QQmlJSRegisterContent::storedType().
Referenced by consumedAccumulatorVariableIn(), and consumedRegisterVariable().
|
overrideprotectedvirtual |
Implements QV4::Moth::ByteCodeHandler.
Definition at line 3308 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::Accumulator, QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSCompilePass::State::changedRegister(), QQmlJSCompilePass::State::changedRegisterIndex(), changedRegisterVariable(), QString::clear(), QHash< Key, T >::constEnd(), QHash< Key, T >::constFind(), QV4::Moth::ByteCodeHandler::currentInstructionOffset(), QFlatMap< Key, T, Compare, KeyContainer, MappedContainer >::end(), QFlatMap< Key, T, Compare, KeyContainer, MappedContainer >::find(), QQmlJSCompilePass::State::hasSideEffects(), QQmlJSCompilePass::instructionManipulatesContext(), QQmlJSScope::internalName(), QString::isEmpty(), isTypeStorable(), QQmlJSCompilePass::m_annotations, m_body, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSCompilePass::nextStateFromAnnotations(), QV4::Moth::ByteCodeHandler::ProcessInstruction, Q_ASSERT, QQmlJSCompilePass::State::registers, QQmlJSRegisterContent::resultLookupIndex(), QV4::Moth::ByteCodeHandler::SkipInstruction, QQmlJSRegisterContent::storedType(), and QHash< Key, T >::value().
|
protected |
Definition at line 277 of file qqmljscodegenerator_p.h.
Referenced by generate_As(), generate_CallPropertyLookup(), generate_CallQmlContextPropertyLookup(), generate_Construct(), generate_ConvertThisToObject(), generate_CreateCallContext(), generate_DefineObjectLiteral(), generate_Exp(), generate_GetIterator(), generate_GetOptionalLookup(), generate_IteratorNext(), generate_JumpFalse(), generate_JumpNoException(), generate_JumpTrue(), generate_LoadConst(), generate_LoadElement(), generate_LoadFalse(), generate_LoadInt(), generate_LoadNull(), generate_LoadQmlContextPropertyLookup(), generate_LoadReg(), generate_LoadRuntimeString(), generate_LoadTrue(), generate_LoadUndefined(), generate_LoadZero(), generate_Mod(), generate_MoveConst(), generate_MoveReg(), generate_PopContext(), generate_Ret(), generate_SetLookup(), generate_StoreElement(), generate_StoreNameSloppy(), generate_StoreReg(), generate_ThrowException(), generateEnumLookup(), generateLookup(), generateReturnError(), generateSetInstructionPointer(), run(), and startInstruction().
|
protected |
Definition at line 278 of file qqmljscodegenerator_p.h.
Referenced by changedRegisterVariable(), consumedAccumulatorVariableIn(), generate_As(), generate_CallPropertyLookup(), generate_CallQmlContextPropertyLookup(), generate_Construct(), generate_ConvertThisToObject(), generate_DefineObjectLiteral(), generate_Exp(), generate_GetIterator(), generate_GetOptionalLookup(), generate_IteratorNext(), generate_JumpFalse(), generate_JumpTrue(), generate_LoadConst(), generate_LoadElement(), generate_LoadFalse(), generate_LoadGlobalLookup(), generate_LoadInt(), generate_LoadNull(), generate_LoadQmlContextPropertyLookup(), generate_LoadReg(), generate_LoadRuntimeString(), generate_LoadTrue(), generate_LoadUndefined(), generate_LoadZero(), generate_Mod(), generate_MoveConst(), generate_MoveReg(), generate_Ret(), generate_SetLookup(), generate_StoreElement(), generate_StoreNameSloppy(), generate_StoreReg(), generate_ThrowException(), generateEnumLookup(), lookupType(), registerType(), run(), shouldMoveRegister(), and startInstruction().