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) |
Public Member Functions inherited from QQmlJSCompilePass | |
QQmlJSCompilePass (const QV4::Compiler::JSUnitGenerator *jsUnitGenerator, const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger, BasicBlocks basicBlocks={}, InstructionAnnotations annotations={}) | |
Public Member Functions inherited from QV4::Moth::ByteCodeHandler | |
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 |
Protected Attributes inherited from QQmlJSCompilePass | |
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 | |
Public Types inherited from QQmlJSCompilePass | |
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> |
Protected Types inherited from QV4::Moth::ByteCodeHandler | |
enum | Verdict { ProcessInstruction , SkipInstruction } |
Static Protected Member Functions inherited from QQmlJSCompilePass | |
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 3836 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 3829 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 3821 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 2917 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSTypeResolver::containedType(), QQmlJSRegisterContent::descriptiveName(), QQmlSA::EnumScope, QQmlJSScope::isListProperty(), QQmlJSTypeResolver::isNumeric(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::registerContains(), QQmlJSTypeResolver::registerIsStoredIn(), 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 2943 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSTypeResolver::containedType(), QQmlJSRegisterContent::descriptiveName(), QQmlSA::EnumScope, QQmlJSTypeResolver::equals(), QQmlJSScope::isListProperty(), QQmlJSTypeResolver::isNumeric(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSCompilePass::m_typeResolver, metaType(), metaTypeFromType(), QQmlJSScope::nonCompositeBaseType(), QQmlJSTypeResolver::registerIsStoredIn(), reject(), QQmlJSRegisterContent::storedType(), var, and QQmlJSTypeResolver::varType().
Referenced by generate_LoadQmlContextPropertyLookup(), generate_Ret(), generate_SetLookup(), and generate_StoreNameSloppy().
|
protected |
Definition at line 3875 of file qqmljscodegenerator.cpp.
References QString::arg(), QQmlJSTypeResolver::boolType(), QQmlJSTypeResolver::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(), QQmlJSTypeResolver::registerIsStoredIn(), 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 QQmlJSScope::isReferenceType(), and QQmlJSRegisterContent::storedType().
|
protected |
Definition at line 4219 of file qqmljscodegenerator.cpp.
References arg, argument, QQmlJSCompilePass::argumentType(), QQmlJSTypeResolver::canHold(), QQmlJSTypeResolver::canPopulate(), QQmlJSTypeResolver::containedType(), contentPointer(), conversion(), QQmlJSRegisterContent::descriptiveName(), QQmlJSTypeResolver::equals(), QQmlJSTypeResolver::genericType(), QQmlJSTypeResolver::globalType(), QQmlJSTypeResolver::isIntegral(), QQmlJSTypeResolver::isPrimitive(), QQmlJSScope::isReferenceType(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSCompilePass::m_typeResolver, metaObject(), metaType(), QString::number(), QQmlJSTypeResolver::original(), Q_ASSERT, QQmlJSTypeResolver::registerIsStoredIn(), reject(), QQmlJSTypeResolver::selectConstructor(), QQmlJSRegisterContent::storedIn(), QQmlJSRegisterContent::storedType(), QQmlJSRegisterContent::type(), and QQmlJSTypeResolver::varType().
Referenced by conversion().
|
protected |
Definition at line 3923 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::globalType(), 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 3358 of file qqmljscodegenerator.cpp.
|
overrideprotected |
Definition at line 3154 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, QQmlJSTypeResolver::containedType(), conversion(), convertStored(), QQmlJSTypeResolver::equals(), QQmlJSTypeResolver::extractNonVoidFromOptionalType(), generate_As(), QQmlJSTypeResolver::genericType(), QQmlJSTypeResolver::globalType(), QQmlJSTypeResolver::inherits(), INJECT_TRACE_INFO, QQmlJSScope::isReferenceType(), QQmlJSTypeResolver::jsPrimitiveType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, metaObject(), QQmlJSTypeResolver::metaObjectType(), metaType(), QQmlJSTypeResolver::original(), QQmlJSTypeResolver::originalContainedType(), QQmlJSCompilePass::State::readRegister(), QQmlJSTypeResolver::registerIsStoredIn(), registerVariable(), reject(), QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::varType(), and QQmlJSTypeResolver::voidType().
Referenced by generate_As().
|
overrideprotected |
Definition at line 3160 of file qqmljscodegenerator.cpp.
References generate_BitAnd(), and INJECT_TRACE_INFO.
Referenced by generate_BitAnd().
|
overrideprotected |
Definition at line 3196 of file qqmljscodegenerator.cpp.
References generate_BitAndConst(), and INJECT_TRACE_INFO.
Referenced by generate_BitAndConst().
|
overrideprotected |
Definition at line 3166 of file qqmljscodegenerator.cpp.
References generate_BitOr(), and INJECT_TRACE_INFO.
Referenced by generate_BitOr().
|
overrideprotected |
Definition at line 3202 of file qqmljscodegenerator.cpp.
References generate_BitOrConst(), and INJECT_TRACE_INFO.
Referenced by generate_BitOrConst().
|
overrideprotected |
Definition at line 3172 of file qqmljscodegenerator.cpp.
References generate_BitXor(), and INJECT_TRACE_INFO.
Referenced by generate_BitXor().
|
overrideprotected |
Definition at line 3208 of file qqmljscodegenerator.cpp.
References generate_BitXorConst(), and INJECT_TRACE_INFO.
Referenced by generate_BitXorConst().
|
overrideprotected |
Definition at line 2285 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2270 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2278 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1769 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2216 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 2293 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 1752 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1760 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2325 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2882 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 2969 of file qqmljscodegenerator.cpp.
References generate_CmpEqInt(), QQmlJSTypeResolver::globalType(), INJECT_TRACE_INFO, QQmlJSTypeResolver::int32Type(), QQmlJSCompilePass::m_typeResolver, and QString::number().
Referenced by generate_CmpEqInt().
|
overrideprotected |
Definition at line 2889 of file qqmljscodegenerator.cpp.
References generate_CmpEqNull(), QQmlJSTypeResolver::globalType(), 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 2978 of file qqmljscodegenerator.cpp.
References generate_CmpNeInt(), QQmlJSTypeResolver::globalType(), INJECT_TRACE_INFO, QQmlJSTypeResolver::int32Type(), QQmlJSCompilePass::m_typeResolver, and QString::number().
Referenced by generate_CmpNeInt().
|
overrideprotected |
Definition at line 2896 of file qqmljscodegenerator.cpp.
References QQmlJSTypeResolver::globalType(), 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 2343 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, addInclude(), consumedRegisterVariable(), QQmlJSTypeResolver::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, QQmlJSTypeResolver::original(), 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 2425 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2817 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 2793 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2801 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2811 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2806 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2451 of file qqmljscodegenerator.cpp.
References generate_DeadTemporalZoneCheck(), INJECT_TRACE_INFO, and Q_UNUSED.
Referenced by generate_DeadTemporalZoneCheck().
|
overrideprotected |
Definition at line 386 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2650 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 3148 of file qqmljscodegenerator.cpp.
References generate_Decrement(), and INJECT_TRACE_INFO.
Referenced by generate_Decrement().
|
overrideprotected |
Definition at line 2657 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 2666 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, arg, args, argument, QQmlJSScope::augmentedInternalName(), QQmlJSTypeResolver::canPopulate(), consumedRegisterVariable(), QQmlJSTypeResolver::containedType(), contentPointer(), conversion(), convertStored(), QQmlJSTypeResolver::equals(), QQmlJSScope::extensionType(), generate_DefineObjectLiteral(), QQmlJSTypeResolver::globalType(), 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 2633 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2626 of file qqmljscodegenerator.cpp.
References base, BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2621 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 3259 of file qqmljscodegenerator.cpp.
References generate_Div(), and INJECT_TRACE_INFO.
Referenced by generate_Div().
|
overrideprotected |
Definition at line 3232 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, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::original(), 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 1321 of file qqmljscodegenerator.cpp.
References generate_GetLookup(), and INJECT_TRACE_INFO.
Referenced by generate_GetLookup().
|
overrideprotected |
Definition at line 1501 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::Accumulator, QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QString::arg(), 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 3303 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 3142 of file qqmljscodegenerator.cpp.
References generate_Increment(), and INJECT_TRACE_INFO.
Referenced by generate_Increment().
|
overrideprotected |
Definition at line 3291 of file qqmljscodegenerator.cpp.
References Q_UNUSED.
|
overrideprotected |
Definition at line 2616 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(), QQmlJSTypeResolver::valueType(), and QQmlJSTypeResolver::voidType().
Referenced by generate_IteratorNext().
|
overrideprotected |
Definition at line 2608 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2837 of file qqmljscodegenerator.cpp.
References generate_Jump(), INJECT_TRACE_INFO, and resetState().
Referenced by generate_Jump().
|
overrideprotected |
Definition at line 2857 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 2868 of file qqmljscodegenerator.cpp.
References generate_JumpNoException(), INJECT_TRACE_INFO, and m_body.
Referenced by generate_JumpNoException().
|
overrideprotected |
Definition at line 2876 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2846 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 646 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 415 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 760 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, base, QQmlJSTypeResolver::containedType(), conversion(), convertStored(), QQmlJSRegisterContent::descriptiveName(), QQmlJSTypeResolver::extractNonVoidFromOptionalType(), generate_LoadElement(), QQmlJSTypeResolver::globalType(), 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(), QQmlJSTypeResolver::registerIsStoredIn(), registerType(), registerVariable(), reject(), QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::stringType(), QQmlJSTypeResolver::valueType(), and QQmlJSTypeResolver::voidType().
Referenced by generate_LoadElement().
|
overrideprotected |
Definition at line 475 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 658 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 596 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 505 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 602 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 652 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 485 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 905 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 899 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 672 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, QV4::Compiler::JSUnitGenerator::lookupNameIndex(), lookupType(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QString::number(), QQmlJSRegisterContent::ObjectById, QQmlJSTypeResolver::original(), reject(), QQmlJSRegisterContent::scopeType(), QQmlJSRegisterContent::storedType(), QV4::Compiler::JSUnitGenerator::stringForIndex(), and QQmlJSRegisterContent::variant().
Referenced by generate_LoadQmlContextPropertyLookup().
|
overrideprotected |
Definition at line 554 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 628 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 614 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2827 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1677 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, property, and Q_UNUSED.
|
overrideprotected |
Definition at line 465 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 495 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 455 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 3265 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 516 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 581 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 639 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 3253 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 1699 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 311 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, consumedAccumulatorVariableIn(), QQmlJSTypeResolver::containedType(), contentPointer(), contentType(), conversion(), QQmlJSTypeResolver::equals(), generate_Ret(), INJECT_TRACE_INFO, QQmlJSRegisterContent::isValid(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSTypeResolver::jsValueType(), m_body, QQmlJSCompilePass::m_function, m_state, QQmlJSCompilePass::m_typeResolver, qScopeGuard(), QQmlJSTypeResolver::registerContains(), QQmlJSTypeResolver::registerIsStoredIn(), 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 1556 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, base, consumedAccumulatorVariableIn(), QQmlJSTypeResolver::containedType(), 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 2433 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 3190 of file qqmljscodegenerator.cpp.
References generate_Shl(), and INJECT_TRACE_INFO.
Referenced by generate_Shl().
|
overrideprotected |
Definition at line 3226 of file qqmljscodegenerator.cpp.
References generate_ShlConst(), and INJECT_TRACE_INFO.
Referenced by generate_ShlConst().
|
overrideprotected |
Definition at line 3184 of file qqmljscodegenerator.cpp.
References generate_Shr(), and INJECT_TRACE_INFO.
Referenced by generate_Shr().
|
overrideprotected |
Definition at line 3220 of file qqmljscodegenerator.cpp.
References generate_ShrConst(), and INJECT_TRACE_INFO.
Referenced by generate_ShrConst().
|
overrideprotected |
Definition at line 842 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, addInclude(), base, QQmlJSTypeResolver::containedType(), conversion(), generate_StoreElement(), QQmlJSTypeResolver::genericType(), QQmlJSTypeResolver::globalType(), INJECT_TRACE_INFO, QQmlJSRegisterContent::isList(), QQmlJSTypeResolver::isNativeArrayIndex(), QQmlJSTypeResolver::isNumeric(), QQmlJSCompilePass::State::isRegisterAffectedBySideEffects(), QQmlJSTypeResolver::isUnsignedInteger(), QQmlJSTypeResolver::listPropertyType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::registerIsStoredIn(), registerType(), registerVariable(), reject(), QQmlJSRegisterContent::storedType(), and QQmlJSTypeResolver::valueType().
Referenced by generate_StoreElement().
|
overrideprotected |
Definition at line 608 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 724 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 754 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1533 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 565 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 621 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1683 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, property, and Q_UNUSED.
|
overrideprotected |
Definition at line 3285 of file qqmljscodegenerator.cpp.
References generate_Sub(), and INJECT_TRACE_INFO.
Referenced by generate_Sub().
|
overrideprotected |
Definition at line 2334 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2459 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, conversion(), generate_ThrowException(), generateReturnError(), generateSetInstructionPointer(), QQmlJSTypeResolver::globalType(), INJECT_TRACE_INFO, QQmlJSTypeResolver::jsValueType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, and resetState().
Referenced by generate_ThrowException().
|
overrideprotected |
Definition at line 3298 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2832 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2639 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2645 of file qqmljscodegenerator.cpp.
References reject().
|
overrideprotected |
Definition at line 3136 of file qqmljscodegenerator.cpp.
References generate_UCompl(), and INJECT_TRACE_INFO.
Referenced by generate_UCompl().
|
overrideprotected |
Definition at line 3130 of file qqmljscodegenerator.cpp.
References generate_UMinus(), and INJECT_TRACE_INFO.
Referenced by generate_UMinus().
|
overrideprotected |
Definition at line 3118 of file qqmljscodegenerator.cpp.
References generate_UNot(), and INJECT_TRACE_INFO.
Referenced by generate_UNot().
|
overrideprotected |
Definition at line 2439 of file qqmljscodegenerator.cpp.
References reject().
|
overrideprotected |
Definition at line 2444 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 3124 of file qqmljscodegenerator.cpp.
References generate_UPlus(), and INJECT_TRACE_INFO.
Referenced by generate_UPlus().
|
overrideprotected |
Definition at line 3178 of file qqmljscodegenerator.cpp.
References INJECT_TRACE_INFO.
|
overrideprotected |
Definition at line 3214 of file qqmljscodegenerator.cpp.
References generate_UShrConst(), and INJECT_TRACE_INFO.
Referenced by generate_UShrConst().
|
overrideprotected |
Definition at line 1689 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1694 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
protected |
Definition at line 912 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 3711 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 281 of file qqmljscodegenerator.cpp.
References QQmlJSTypeResolver::containedType(), 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 3364 of file qqmljscodegenerator.cpp.
References m_body, QV4::Moth::ByteCodeHandler::nextInstructionOffset(), and QString::number().
Referenced by generate_ThrowException(), and generateLookup().
|
protected |
Definition at line 2903 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::m_typeResolver, QString::number(), QQmlJSTypeResolver::registerContains(), QQmlJSTypeResolver::registerIsStoredIn(), QQmlJSRegisterContent::storedType(), var, and QQmlJSTypeResolver::varType().
Referenced by generate_LoadQmlContextPropertyLookup().
|
protected |
Definition at line 3860 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 3812 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 3851 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 3798 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 4290 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 278 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, QQmlJSTypeResolver::comparableType(), QByteArray::constData(), QQmlJSTypeResolver::containedType(), 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::original(), QQmlJSTypeResolver::originalContainedType(), originalValue, QT_WARNING_DISABLE_CLANG, QT_WARNING_POP, QT_WARNING_PUSH, QQmlJSTypeResolver::registerIsStoredIn(), QByteArray::size(), QHash< Key, T >::size(), QQmlJSRegisterContent::storedType(), QQmlJSCompilePass::This, and QQmlJSTypeResolver::voidType().
|
protected |
Definition at line 1540 of file qqmljscodegenerator.cpp.
References arg, QQmlJSCompilePass::m_typeResolver, QString::number(), QQmlJSTypeResolver::registerContains(), QQmlJSTypeResolver::registerIsStoredIn(), QQmlJSRegisterContent::storedType(), and QQmlJSTypeResolver::varType().
Referenced by generate_SetLookup().
|
protected |
Definition at line 3869 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 3309 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 275 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 276 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().