![]() |
Qt 6.x
The Qt SDK
|
#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) | |
~QQmlJSCodeGenerator ()=default | |
QQmlJSAotFunction | run (const Function *function, const InstructionAnnotations *annotations, QQmlJS::DiagnosticMessage *error) |
![]() | |
QQmlJSCompilePass (const QV4::Compiler::JSUnitGenerator *jsUnitGenerator, const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger) | |
![]() | |
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 |
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 | 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 | ||
) |
Definition at line 55 of file qqmljscodegenerator.cpp.
|
default |
Definition at line 206 of file qqmljscodegenerator_p.h.
References QString::isEmpty(), and Q_ASSERT.
|
protected |
Definition at line 3161 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::changedRegister(), QQmlJSCompilePass::State::changedRegisterIndex(), m_state, and QQmlJSRegisterContent::storedType().
Referenced by generate_ConvertThisToObject(), generate_MoveConst(), generate_MoveReg(), generate_StoreReg(), and startInstruction().
|
protected |
Definition at line 3154 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::Accumulator, QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, m_state, and shouldMoveRegister().
Referenced by generate_CmpEqNull(), generate_CmpNeNull(), generate_Exp(), generate_Mod(), generate_SetLookup(), and generate_StoreReg().
|
protected |
Definition at line 3146 of file qqmljscodegenerator.cpp.
References registerVariable(), shouldMoveRegister(), and var.
Referenced by generate_DefineArray(), generate_DefineObjectLiteral(), generate_Exp(), generate_LoadReg(), generate_Mod(), and generate_MoveReg().
|
protected |
Definition at line 2429 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_GetLookup(), generate_LoadQmlContextPropertyLookup(), generate_SetLookup(), and generate_StoreNameSloppy().
|
protected |
Definition at line 2455 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSScope::baseType(), QQmlJSTypeResolver::containedType(), QQmlJSRegisterContent::descriptiveName(), QQmlSA::EnumScope, QQmlJSTypeResolver::equals(), QQmlJSScope::isListProperty(), QQmlJSTypeResolver::isNumeric(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSTypeResolver::listPropertyType(), QQmlJSCompilePass::m_typeResolver, metaTypeFromName(), metaTypeFromType(), QQmlJSScope::nonCompositeBaseType(), QQmlJSTypeResolver::registerIsStoredIn(), reject(), QQmlJSScope::scopeType(), QQmlJSRegisterContent::storedType(), var, and QQmlJSTypeResolver::varType().
Referenced by generate_GetLookup(), generate_LoadQmlContextPropertyLookup(), generate_SetLookup(), and generate_StoreNameSloppy().
|
protected |
Definition at line 3182 of file qqmljscodegenerator.cpp.
References QString::arg(), QQmlJSTypeResolver::boolType(), QQmlJSTypeResolver::containedType(), conversion(), convertContained(), convertStored(), QQmlJSTypeResolver::equals(), QQmlJSScope::internalName(), QQmlJSTypeResolver::isIntegral(), QQmlJSTypeResolver::isNumeric(), QQmlJSScope::isReferenceType(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::realType(), QQmlJSTypeResolver::registerContains(), QQmlJSTypeResolver::registerIsStoredIn(), reject(), QQmlJSRegisterContent::storedType(), and QQmlJSTypeResolver::stringType().
Referenced by conversion(), convertContained(), generate_As(), generate_CmpEqInt(), generate_CmpEqNull(), generate_CmpNeInt(), generate_CmpNeNull(), generate_ConvertThisToObject(), generate_DefineObjectLiteral(), generate_Exp(), generate_GetLookup(), 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_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 3499 of file qqmljscodegenerator.cpp.
References argument, QQmlJSCompilePass::argumentType(), QQmlJSTypeResolver::canPopulate(), QQmlJSTypeResolver::containedType(), contentPointer(), conversion(), QQmlJSTypeResolver::equals(), QQmlJSScope::extensionType(), QQmlJSTypeResolver::genericType(), QQmlJSTypeResolver::globalType(), QQmlJSScope::internalName(), QQmlJSTypeResolver::isIntegral(), QQmlJSScope::isReferenceType(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSCompilePass::m_typeResolver, metaObject(), metaType(), QString::number(), Q_ASSERT, QQmlJSTypeResolver::registerIsStoredIn(), reject(), QQmlJSScope::AnnotatedScope::scope, QQmlJSTypeResolver::selectConstructor(), QQmlJSRegisterContent::storedIn(), QQmlJSRegisterContent::storedType(), QQmlJSRegisterContent::type(), and QQmlJSTypeResolver::varType().
Referenced by conversion().
|
protected |
Definition at line 3221 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSTypeResolver::areEquivalentLists(), QString::arg(), QQmlJSScope::augmentedInternalName(), base, QQmlJSTypeResolver::boolType(), QQmlJSTypeResolver::byteArrayType(), QQmlJSTypeResolver::canPopulate(), convertStored(), QQmlJSTypeResolver::dateTimeType(), QQmlJSTypeResolver::dateType(), QQmlSA::EnumScope, QQmlJSTypeResolver::equals(), QQmlJSScope::extensionType(), QQmlJSTypeResolver::floatType(), QQmlJSTypeResolver::globalType(), QQmlJSTypeResolver::int32Type(), QQmlJSScope::internalName(), QQmlJSScope::isComposite(), QString::isEmpty(), 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::uint8Type(), QQmlJSTypeResolver::urlType(), QQmlJSScope::valueType(), QQmlJSTypeResolver::varType(), QQmlJSTypeResolver::voidType(), and zero.
Referenced by conversion(), convertStored(), errorReturnValue(), generate_As(), generate_CmpEqNull(), generate_CmpNeNull(), generate_DefineArray(), generate_JumpFalse(), generate_JumpTrue(), generate_Mod(), generate_Ret(), and run().
|
overrideprotectedvirtual |
Implements QV4::Moth::ByteCodeHandler.
Definition at line 2852 of file qqmljscodegenerator.cpp.
|
protected |
Definition at line 243 of file qqmljscodegenerator.cpp.
References convertStored(), QQmlJSCompilePass::m_function, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::nullType(), ret, and QQmlJSCompilePass::Function::returnType.
Referenced by generate_ThrowException().
|
overrideprotected |
Definition at line 2654 of file qqmljscodegenerator.cpp.
References generate_Add(), and INJECT_TRACE_INFO.
Referenced by generate_Add().
|
overrideprotected |
Definition at line 2559 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSTypeResolver::containedType(), conversion(), QQmlJSRegisterContent::conversionOrigins(), convertStored(), QQmlJSTypeResolver::equals(), generate_As(), QQmlJSTypeResolver::genericType(), QQmlJSTypeResolver::globalType(), INJECT_TRACE_INFO, QQmlJSScope::isComposite(), QQmlJSRegisterContent::isConversion(), QQmlJSScope::isReferenceType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, metaObject(), QQmlJSTypeResolver::metaObjectType(), metaType(), QQmlJSTypeResolver::original(), origins, Q_ASSERT, QQmlJSCompilePass::State::readRegister(), registerVariable(), reject(), QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::varType(), and QQmlJSTypeResolver::voidType().
Referenced by generate_As().
|
overrideprotected |
Definition at line 2660 of file qqmljscodegenerator.cpp.
References generate_BitAnd(), and INJECT_TRACE_INFO.
Referenced by generate_BitAnd().
|
overrideprotected |
Definition at line 2696 of file qqmljscodegenerator.cpp.
References generate_BitAndConst(), and INJECT_TRACE_INFO.
Referenced by generate_BitAndConst().
|
overrideprotected |
Definition at line 2666 of file qqmljscodegenerator.cpp.
References generate_BitOr(), and INJECT_TRACE_INFO.
Referenced by generate_BitOr().
|
overrideprotected |
Definition at line 2702 of file qqmljscodegenerator.cpp.
References generate_BitOrConst(), and INJECT_TRACE_INFO.
Referenced by generate_BitOrConst().
|
overrideprotected |
Definition at line 2672 of file qqmljscodegenerator.cpp.
References generate_BitXor(), and INJECT_TRACE_INFO.
Referenced by generate_BitXor().
|
overrideprotected |
Definition at line 2708 of file qqmljscodegenerator.cpp.
References generate_BitXorConst(), and INJECT_TRACE_INFO.
Referenced by generate_BitXorConst().
|
overrideprotected |
Definition at line 1896 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 1881 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 1889 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1394 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 1826 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorOut(), base, QQmlJSRegisterContent::descriptiveName(), QQmlJSTypeResolver::equals(), generate_CallPropertyLookup(), generateLookup(), INJECT_TRACE_INFO, QQmlJSRegisterContent::JavaScriptReturnValue, QV4::Compiler::JSUnitGenerator::lookupNameIndex(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QString::number(), QQmlJSTypeResolver::originalContainedType(), registerType(), registerVariable(), reject(), QQmlJSRegisterContent::storedType(), QV4::Compiler::JSUnitGenerator::stringForIndex(), QQmlJSTypeResolver::stringType(), and QQmlJSRegisterContent::variant().
Referenced by generate_CallPropertyLookup().
|
overrideprotected |
Definition at line 1904 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 1377 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1385 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1936 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2352 of file qqmljscodegenerator.cpp.
References generate_CheckException(), and INJECT_TRACE_INFO.
Referenced by generate_CheckException().
|
overrideprotected |
Definition at line 2044 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2499 of file qqmljscodegenerator.cpp.
References generate_CmpEq(), and INJECT_TRACE_INFO.
Referenced by generate_CmpEq().
|
overrideprotected |
Definition at line 2481 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSTypeResolver::boolType(), conversion(), generate_CmpEqInt(), INJECT_TRACE_INFO, m_body, m_state, and QQmlJSCompilePass::m_typeResolver.
Referenced by generate_CmpEqInt().
|
overrideprotected |
Definition at line 2359 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSTypeResolver::boolType(), consumedAccumulatorVariableIn(), conversion(), convertStored(), INJECT_TRACE_INFO, QQmlJSTypeResolver::jsPrimitiveType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, and QQmlJSRegisterContent::storedType().
|
overrideprotected |
Definition at line 2517 of file qqmljscodegenerator.cpp.
References generate_CmpGe(), and INJECT_TRACE_INFO.
Referenced by generate_CmpGe().
|
overrideprotected |
Definition at line 2511 of file qqmljscodegenerator.cpp.
References generate_CmpGt(), and INJECT_TRACE_INFO.
Referenced by generate_CmpGt().
|
overrideprotected |
Definition at line 2547 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2553 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2529 of file qqmljscodegenerator.cpp.
References generate_CmpLe(), and INJECT_TRACE_INFO.
Referenced by generate_CmpLe().
|
overrideprotected |
Definition at line 2523 of file qqmljscodegenerator.cpp.
References generate_CmpLt(), and INJECT_TRACE_INFO.
Referenced by generate_CmpLt().
|
overrideprotected |
Definition at line 2505 of file qqmljscodegenerator.cpp.
References generate_CmpNe(), and INJECT_TRACE_INFO.
Referenced by generate_CmpNe().
|
overrideprotected |
Definition at line 2490 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSTypeResolver::boolType(), conversion(), generate_CmpNeInt(), INJECT_TRACE_INFO, m_body, m_state, and QQmlJSCompilePass::m_typeResolver.
Referenced by generate_CmpNeInt().
|
overrideprotected |
Definition at line 2373 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSTypeResolver::boolType(), consumedAccumulatorVariableIn(), conversion(), convertStored(), INJECT_TRACE_INFO, QQmlJSTypeResolver::jsPrimitiveType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, and QQmlJSRegisterContent::storedType().
|
overrideprotected |
Definition at line 2535 of file qqmljscodegenerator.cpp.
References generate_CmpStrictEqual(), and INJECT_TRACE_INFO.
Referenced by generate_CmpStrictEqual().
|
overrideprotected |
Definition at line 2541 of file qqmljscodegenerator.cpp.
References generate_CmpStrictNotEqual(), and INJECT_TRACE_INFO.
Referenced by generate_CmpStrictNotEqual().
|
overrideprotected |
Definition at line 1954 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 1962 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2283 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 2019 of file qqmljscodegenerator.cpp.
References generate_CreateCallContext(), INJECT_TRACE_INFO, and m_body.
Referenced by generate_CreateCallContext().
|
overrideprotected |
Definition at line 2259 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2267 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2277 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2272 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1988 of file qqmljscodegenerator.cpp.
References Q_UNUSED.
|
overrideprotected |
Definition at line 294 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2123 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2648 of file qqmljscodegenerator.cpp.
References generate_Decrement(), and INJECT_TRACE_INFO.
Referenced by generate_Decrement().
|
overrideprotected |
Definition at line 2130 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, args, consumedRegisterVariable(), convertStored(), generate_DefineArray(), i, INJECT_TRACE_INFO, QQmlJSScope::internalName(), QQmlJSScope::isListProperty(), m_body, m_state, Q_ASSERT, registerType(), reject(), QQmlJSRegisterContent::storedType(), and QQmlJSScope::valueType().
Referenced by generate_DefineArray().
|
overrideprotected |
Definition at line 2169 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QString::arg(), arg, args, argument, QQmlJSScope::augmentedInternalName(), QQmlJSTypeResolver::canPopulate(), consumedRegisterVariable(), QQmlJSTypeResolver::containedType(), contentPointer(), conversion(), QQmlJSTypeResolver::equals(), QQmlJSScope::extensionType(), generate_DefineObjectLiteral(), 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::variantMapType(), and QQmlJSTypeResolver::varType().
Referenced by generate_DefineObjectLiteral().
|
overrideprotected |
Definition at line 2106 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2099 of file qqmljscodegenerator.cpp.
References base, BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2094 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2759 of file qqmljscodegenerator.cpp.
References generate_Div(), and INJECT_TRACE_INFO.
Referenced by generate_Div().
|
overrideprotected |
Definition at line 2732 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, consumedAccumulatorVariableIn(), consumedRegisterVariable(), conversion(), generate_Exp(), INJECT_TRACE_INFO, QString::isEmpty(), 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 2009 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2068 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1013 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::Accumulator, QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QString::arg(), contentPointer(), contentType(), conversion(), QQmlJSTypeResolver::equals(), generate_GetLookup(), generateEnumLookup(), generateLookup(), getLookupPreparation(), QQmlJSTypeResolver::globalType(), QQmlJSRegisterContent::importNamespace(), INJECT_TRACE_INFO, QQmlJSTypeResolver::int32Type(), QQmlJSRegisterContent::isEnumeration(), QQmlJSRegisterContent::isImportNamespace(), QQmlJSRegisterContent::isList(), QQmlJSScope::isListProperty(), QQmlJSRegisterContent::isMethod(), QQmlJSRegisterContent::isProperty(), QQmlJSScope::isReferenceType(), QQmlJSCompilePass::State::isRegisterAffectedBySideEffects(), QQmlJSTypeResolver::jsValueType(), QV4::Compiler::JSUnitGenerator::lookupName(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, metaObject(), QQmlJSRegisterContent::MetaType, QString::number(), QQmlJSRegisterContent::ObjectAttached, QQmlJSRegisterContent::ObjectModulePrefix, Q_ASSERT, QQmlJSTypeResolver::registerContains(), QQmlJSTypeResolver::registerIsStoredIn(), reject(), QQmlJSRegisterContent::ScopeAttached, QQmlJSRegisterContent::scopeType(), QQmlJSRegisterContent::Singleton, QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::stringType(), QQmlJSUtils::toLiteral(), QQmlJSRegisterContent::variant(), QQmlJSTypeResolver::variantMapType(), and QQmlJSTypeResolver::varType().
Referenced by generate_GetLookup().
|
overrideprotected |
Definition at line 1158 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2803 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2642 of file qqmljscodegenerator.cpp.
References generate_Increment(), and INJECT_TRACE_INFO.
Referenced by generate_Increment().
|
overrideprotected |
Definition at line 2791 of file qqmljscodegenerator.cpp.
References Q_UNUSED.
|
overrideprotected |
Definition at line 2088 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, done, and Q_UNUSED.
|
overrideprotected |
Definition at line 2074 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, done, and Q_UNUSED.
|
overrideprotected |
Definition at line 2081 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2303 of file qqmljscodegenerator.cpp.
References generate_Jump(), INJECT_TRACE_INFO, m_body, and resetState().
Referenced by generate_Jump().
|
overrideprotected |
Definition at line 2325 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 2337 of file qqmljscodegenerator.cpp.
References generate_JumpNoException(), INJECT_TRACE_INFO, and m_body.
Referenced by generate_JumpNoException().
|
overrideprotected |
Definition at line 2346 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2313 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 553 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 323 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 667 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, base, QQmlJSTypeResolver::containedType(), conversion(), generate_LoadElement(), QQmlJSTypeResolver::genericType(), QQmlJSTypeResolver::globalType(), INJECT_TRACE_INFO, QQmlJSTypeResolver::isIntegral(), QQmlJSRegisterContent::isList(), QQmlJSTypeResolver::isNumeric(), QQmlJSCompilePass::State::isRegisterAffectedBySideEffects(), QQmlJSTypeResolver::isUnsignedInteger(), QQmlJSTypeResolver::listPropertyType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::registerIsStoredIn(), registerType(), registerVariable(), reject(), QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::stringType(), QQmlJSTypeResolver::valueType(), and QQmlJSTypeResolver::voidType().
Referenced by generate_LoadElement().
|
overrideprotected |
Definition at line 383 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 565 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 503 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 413 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 509 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 559 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 393 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 781 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 775 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 579 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(), 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 461 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 535 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 521 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2293 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1302 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, property, and Q_UNUSED.
|
overrideprotected |
Definition at line 373 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 403 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 363 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 2765 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 424 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 488 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::changedRegister(), QQmlJSCompilePass::State::changedRegisterIndex(), changedRegisterVariable(), consumedRegisterVariable(), conversion(), generate_MoveReg(), INJECT_TRACE_INFO, QString::isEmpty(), m_body, m_state, Q_ASSERT, and registerType().
Referenced by generate_MoveReg().
|
overrideprotected |
Definition at line 546 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2753 of file qqmljscodegenerator.cpp.
References generate_Mul(), and INJECT_TRACE_INFO.
Referenced by generate_Mul().
|
overrideprotected |
Definition at line 2060 of file qqmljscodegenerator.cpp.
References generate_PopContext(), INJECT_TRACE_INFO, and m_body.
Referenced by generate_PopContext().
|
overrideprotected |
Definition at line 2055 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2038 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2026 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2049 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2033 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1324 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 253 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, convertStored(), QQmlJSTypeResolver::equals(), generate_Ret(), INJECT_TRACE_INFO, QString::isEmpty(), QQmlJSTypeResolver::jsPrimitiveType(), QQmlJSTypeResolver::jsValueType(), m_body, QQmlJSCompilePass::m_function, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::registerIsStoredIn(), resetState(), QQmlJSCompilePass::Function::returnType, QQmlJSRegisterContent::storedType(), QQmlJSTypeResolver::varType(), and QQmlJSTypeResolver::voidType().
Referenced by generate_Ret().
|
overrideprotected |
Definition at line 2014 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1188 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, consumedAccumulatorVariableIn(), QQmlJSTypeResolver::containedType(), contentPointer(), contentType(), conversion(), generate_SetLookup(), generateLookup(), QQmlJSTypeResolver::genericType(), INJECT_TRACE_INFO, QQmlJSScope::internalName(), QString::isEmpty(), QQmlJSScope::isListProperty(), QDeferredSharedPointer< T >::isNull(), QQmlJSRegisterContent::isProperty(), QV4::Compiler::JSUnitGenerator::lookupName(), m_body, QQmlJSCompilePass::m_jsUnitGenerator, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::memberType(), QQmlJSTypeResolver::merge(), metaObject(), QString::mid(), QString::number(), QQmlJSTypeResolver::original(), property, Q_ASSERT, QQmlJSTypeResolver::registerContains(), registerType(), registerVariable(), reject(), setLookupPreparation(), QString::startsWith(), QQmlJSRegisterContent::storedIn(), and QQmlJSRegisterContent::storedType().
Referenced by generate_SetLookup().
|
overrideprotected |
Definition at line 1970 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2690 of file qqmljscodegenerator.cpp.
References generate_Shl(), and INJECT_TRACE_INFO.
Referenced by generate_Shl().
|
overrideprotected |
Definition at line 2726 of file qqmljscodegenerator.cpp.
References generate_ShlConst(), and INJECT_TRACE_INFO.
Referenced by generate_ShlConst().
|
overrideprotected |
Definition at line 2684 of file qqmljscodegenerator.cpp.
References generate_Shr(), and INJECT_TRACE_INFO.
Referenced by generate_Shr().
|
overrideprotected |
Definition at line 2720 of file qqmljscodegenerator.cpp.
References generate_ShrConst(), and INJECT_TRACE_INFO.
Referenced by generate_ShrConst().
|
overrideprotected |
Definition at line 738 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, base, QQmlJSTypeResolver::containedType(), conversion(), generate_StoreElement(), QQmlJSTypeResolver::genericType(), QQmlJSTypeResolver::globalType(), INJECT_TRACE_INFO, QQmlJSTypeResolver::isIntegral(), QQmlJSRegisterContent::isList(), QQmlJSTypeResolver::isNumeric(), QQmlJSTypeResolver::isUnsignedInteger(), QQmlJSTypeResolver::listPropertyType(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSTypeResolver::registerIsStoredIn(), registerType(), registerVariable(), reject(), and QQmlJSTypeResolver::valueType().
Referenced by generate_StoreElement().
|
overrideprotected |
Definition at line 515 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 631 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 661 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1165 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 472 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 528 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1308 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, property, and Q_UNUSED.
|
overrideprotected |
Definition at line 2785 of file qqmljscodegenerator.cpp.
References generate_Sub(), and INJECT_TRACE_INFO.
Referenced by generate_Sub().
|
overrideprotected |
Definition at line 1945 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 1995 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorIn(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableIn, conversion(), errorReturnValue(), generate_ThrowException(), 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 2798 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2298 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 2112 of file qqmljscodegenerator.cpp.
References Q_UNUSED, and reject().
|
overrideprotected |
Definition at line 2118 of file qqmljscodegenerator.cpp.
References reject().
|
overrideprotected |
Definition at line 2636 of file qqmljscodegenerator.cpp.
References generate_UCompl(), and INJECT_TRACE_INFO.
Referenced by generate_UCompl().
|
overrideprotected |
Definition at line 2630 of file qqmljscodegenerator.cpp.
References generate_UMinus(), and INJECT_TRACE_INFO.
Referenced by generate_UMinus().
|
overrideprotected |
Definition at line 2618 of file qqmljscodegenerator.cpp.
References generate_UNot(), and INJECT_TRACE_INFO.
Referenced by generate_UNot().
|
overrideprotected |
Definition at line 1976 of file qqmljscodegenerator.cpp.
References reject().
|
overrideprotected |
Definition at line 1981 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.
|
overrideprotected |
Definition at line 2624 of file qqmljscodegenerator.cpp.
References generate_UPlus(), and INJECT_TRACE_INFO.
Referenced by generate_UPlus().
|
overrideprotected |
Definition at line 2678 of file qqmljscodegenerator.cpp.
References INJECT_TRACE_INFO.
|
overrideprotected |
Definition at line 2714 of file qqmljscodegenerator.cpp.
References generate_UShrConst(), and INJECT_TRACE_INFO.
Referenced by generate_UShrConst().
|
overrideprotected |
Definition at line 1314 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
overrideprotected |
Definition at line 1319 of file qqmljscodegenerator.cpp.
References BYTECODE_UNIMPLEMENTED.
|
protected |
Definition at line 788 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::State::accumulatorOut(), QQmlJSCodeGenerator::CodegenState::accumulatorVariableOut, QQmlJSMetaEnum::alias(), QQmlJSRegisterContent::enumeration(), QQmlJSRegisterContent::enumMember(), generateLookup(), QQmlJSMetaEnum::hasValues(), QQmlJSScope::internalName(), QQmlJSScope::isComposite(), QString::isEmpty(), QQmlJSMetaEnum::isFlag(), m_body, m_state, metaObject(), QQmlJSMetaEnum::name(), QString::number(), Q_ASSERT, reject(), QQmlJSRegisterContent::scopeType(), and QQmlJSMetaEnum::value().
Referenced by generate_GetLookup().
|
protected |
Definition at line 3062 of file qqmljscodegenerator.cpp.
References generateSetInstructionPointer(), QString::isEmpty(), and m_body.
Referenced by generate_CallPropertyLookup(), generate_CallQmlContextPropertyLookup(), generate_GetLookup(), generate_LoadGlobalLookup(), generate_LoadQmlContextPropertyLookup(), generate_SetLookup(), and generateEnumLookup().
|
protected |
Definition at line 2858 of file qqmljscodegenerator.cpp.
References m_body, QV4::Moth::ByteCodeHandler::nextInstructionOffset(), and QString::number().
Referenced by generate_ThrowException(), and generateLookup().
|
protected |
Definition at line 2415 of file qqmljscodegenerator.cpp.
References QQmlJSCompilePass::m_typeResolver, QString::number(), QQmlJSTypeResolver::registerContains(), QQmlJSTypeResolver::registerIsStoredIn(), QQmlJSRegisterContent::storedType(), var, and QQmlJSTypeResolver::varType().
Referenced by generate_GetLookup(), and generate_LoadQmlContextPropertyLookup().
|
protectedvirtual |
Definition at line 75 of file qqmljscodegenerator.cpp.
References QQmlJSScope::internalName(), QQmlJSScope::isComposite(), metaTypeFromName(), and reject().
|
protectedvirtual |
Definition at line 89 of file qqmljscodegenerator.cpp.
References QQmlJSTypeResolver::equals(), QQmlJSTypeResolver::genericType(), QQmlJSCompilePass::m_typeResolver, metaTypeFromName(), and metaTypeFromType().
Referenced by convertContained(), generate_As(), and generate_DefineObjectLiteral().
|
protected |
Definition at line 68 of file qqmljscodegenerator.cpp.
References QString::fromUtf8(), and QMetaObject::normalizedType().
Referenced by contentType(), metaObject(), and metaType().
|
protected |
Definition at line 63 of file qqmljscodegenerator.cpp.
Referenced by contentType(), generate_LoadGlobalLookup(), and metaType().
|
protected |
Definition at line 3167 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_DefineArray(), generate_DefineObjectLiteral(), generate_Exp(), generate_LoadElement(), generate_LoadReg(), generate_Mod(), generate_MoveReg(), generate_SetLookup(), generate_StoreElement(), and registerVariable().
|
protected |
Definition at line 3134 of file qqmljscodegenerator.cpp.
References it, and registerType().
Referenced by consumedRegisterVariable(), generate_As(), generate_CallPropertyLookup(), generate_DefineObjectLiteral(), generate_LoadElement(), generate_SetLookup(), and generate_StoreElement().
Definition at line 3553 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_DefineArray(), generate_DefineObjectLiteral(), generate_GetLookup(), 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 273 of file qqmljscodegenerator_p.h.
Referenced by generate_Jump(), generate_Ret(), and generate_ThrowException().
QQmlJSAotFunction QQmlJSCodeGenerator::run | ( | const Function * | function, |
const InstructionAnnotations * | annotations, | ||
QQmlJS::DiagnosticMessage * | error | ||
) |
Definition at line 96 of file qqmljscodegenerator.cpp.
References QQmlJSScope::accessSemantics(), QQmlJSCompilePass::Accumulator, QString::append(), QString::arg(), argument, QQmlJSCompilePass::argumentType(), QQmlJSCompilePass::Function::argumentTypes, QQmlJSScope::augmentedInternalName(), QSet< T >::begin(), QV4::Compiler::Context::column, QQmlJSTypeResolver::comparableType(), QByteArray::constData(), conversion(), convertStored(), decode, error, QQmlJSCompilePass::FirstArgument, QQmlJSCompilePass::firstRegisterIndex(), function, QDuplicateTracker< T, Prealloc >::hasSeen(), QQmlJSCompilePass::initialState(), QHash< Key, T >::insert(), QQmlJSScope::internalName(), QQmlJSCompilePass::InvalidRegister, QQmlJSCompilePass::isArgument(), isTypeStorable(), it, QV4::Compiler::Context::labelInfo, QV4::Compiler::Context::line, m_body, QQmlJSCompilePass::m_error, QQmlJSCompilePass::m_function, m_state, QQmlJSCompilePass::m_typeResolver, QV4::Compiler::Context::name, QString::number(), QQmlJSTypeResolver::original(), QQmlJSTypeResolver::originalType(), 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 1172 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 3176 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 2809 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(), QString::isEmpty(), isTypeStorable(), m_body, m_state, QQmlJSCompilePass::m_typeResolver, QQmlJSCompilePass::nextStateFromAnnotations(), QV4::Moth::ByteCodeHandler::ProcessInstruction, Q_ASSERT, QQmlJSCompilePass::State::registers, QV4::Moth::ByteCodeHandler::SkipInstruction, and QQmlJSRegisterContent::storedType().
|
protected |
Definition at line 270 of file qqmljscodegenerator_p.h.
Referenced by generate_As(), generate_CallPropertyLookup(), generate_CallQmlContextPropertyLookup(), generate_CmpEqInt(), generate_CmpEqNull(), generate_CmpNeInt(), generate_CmpNeNull(), generate_ConvertThisToObject(), generate_CreateCallContext(), generate_DefineArray(), generate_DefineObjectLiteral(), generate_Exp(), generate_GetLookup(), generate_Jump(), 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(), generateSetInstructionPointer(), run(), and startInstruction().
|
protected |
Definition at line 271 of file qqmljscodegenerator_p.h.
Referenced by changedRegisterVariable(), consumedAccumulatorVariableIn(), generate_As(), generate_CallPropertyLookup(), generate_CallQmlContextPropertyLookup(), generate_CmpEqInt(), generate_CmpEqNull(), generate_CmpNeInt(), generate_CmpNeNull(), generate_ConvertThisToObject(), generate_DefineArray(), generate_DefineObjectLiteral(), generate_Exp(), generate_GetLookup(), 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(), registerType(), run(), shouldMoveRegister(), and startInstruction().