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>.
Loading...
Searching...
No Matches
QQmlJSCodeGenerator Class Reference

#include <qqmljscodegenerator_p.h>

+ Inheritance diagram for QQmlJSCodeGenerator:
+ Collaboration diagram for QQmlJSCodeGenerator:

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 Member Functions

virtual QString metaObject (const QQmlJSScope::ConstPtr &objectType)
 
virtual QString metaType (const QQmlJSScope::ConstPtr &type)
 
void generate_Ret () override
 
void generate_Debug () override
 
void generate_LoadConst (int index) override
 
void generate_LoadZero () override
 
void generate_LoadTrue () override
 
void generate_LoadFalse () override
 
void generate_LoadNull () override
 
void generate_LoadUndefined () override
 
void generate_LoadInt (int value) override
 
void generate_MoveConst (int constIndex, int destTemp) override
 
void generate_LoadReg (int reg) override
 
void generate_StoreReg (int reg) override
 
void generate_MoveReg (int srcReg, int destReg) override
 
void generate_LoadImport (int index) override
 
void generate_LoadLocal (int index) override
 
void generate_StoreLocal (int index) override
 
void generate_LoadScopedLocal (int scope, int index) override
 
void generate_StoreScopedLocal (int scope, int index) override
 
void generate_LoadRuntimeString (int stringId) override
 
void generate_MoveRegExp (int regExpId, int destReg) override
 
void generate_LoadClosure (int value) override
 
void generate_LoadName (int nameIndex) override
 
void generate_LoadGlobalLookup (int index) override
 
void generate_LoadQmlContextPropertyLookup (int index) override
 
void generate_StoreNameSloppy (int nameIndex) override
 
void generate_StoreNameStrict (int name) override
 
void generate_LoadElement (int base) override
 
void generate_StoreElement (int base, int index) override
 
void generate_LoadProperty (int nameIndex) override
 
void generate_LoadOptionalProperty (int name, int offset) override
 
void generate_GetLookup (int index) override
 
void generate_GetOptionalLookup (int index, int offset) override
 
void generate_StoreProperty (int name, int baseReg) override
 
void generate_SetLookup (int index, int base) override
 
void generate_LoadSuperProperty (int property) override
 
void generate_StoreSuperProperty (int property) override
 
void generate_Yield () override
 
void generate_YieldStar () override
 
void generate_Resume (int) override
 
void generate_CallValue (int name, int argc, int argv) override
 
void generate_CallWithReceiver (int name, int thisObject, int argc, int argv) override
 
void generate_CallProperty (int name, int base, int argc, int argv) override
 
void generate_CallPropertyLookup (int lookupIndex, int base, int argc, int argv) override
 
void generate_CallName (int name, int argc, int argv) override
 
void generate_CallPossiblyDirectEval (int argc, int argv) override
 
void generate_CallGlobalLookup (int index, int argc, int argv) override
 
void generate_CallQmlContextPropertyLookup (int index, int argc, int argv) override
 
void generate_CallWithSpread (int func, int thisObject, int argc, int argv) override
 
void generate_TailCall (int func, int thisObject, int argc, int argv) override
 
void generate_Construct (int func, int argc, int argv) override
 
void generate_ConstructWithSpread (int func, int argc, int argv) override
 
void generate_SetUnwindHandler (int offset) override
 
void generate_UnwindDispatch () override
 
void generate_UnwindToLabel (int level, int offset) override
 
void generate_DeadTemporalZoneCheck (int name) override
 
void generate_ThrowException () override
 
void generate_GetException () override
 
void generate_SetException () override
 
void generate_CreateCallContext () override
 
void generate_PushCatchContext (int index, int name) override
 
void generate_PushWithContext () override
 
void generate_PushBlockContext (int index) override
 
void generate_CloneBlockContext () override
 
void generate_PushScriptContext (int index) override
 
void generate_PopScriptContext () override
 
void generate_PopContext () override
 
void generate_GetIterator (int iterator) override
 
void generate_IteratorNext (int value, int offset) override
 
void generate_IteratorNextForYieldStar (int iterator, int object, int offset) override
 
void generate_IteratorClose () override
 
void generate_DestructureRestElement () override
 
void generate_DeleteProperty (int base, int index) override
 
void generate_DeleteName (int name) override
 
void generate_TypeofName (int name) override
 
void generate_TypeofValue () override
 
void generate_DeclareVar (int varName, int isDeletable) override
 
void generate_DefineArray (int argc, int args) override
 
void generate_DefineObjectLiteral (int internalClassId, int argc, int args) override
 
void generate_CreateClass (int classIndex, int heritage, int computedNames) override
 
void generate_CreateMappedArgumentsObject () override
 
void generate_CreateUnmappedArgumentsObject () override
 
void generate_CreateRestParameter (int argIndex) override
 
void generate_ConvertThisToObject () override
 
void generate_LoadSuperConstructor () override
 
void generate_ToObject () override
 
void generate_Jump (int offset) override
 
void generate_JumpTrue (int offset) override
 
void generate_JumpFalse (int offset) override
 
void generate_JumpNoException (int offset) override
 
void generate_JumpNotUndefined (int offset) override
 
void generate_CheckException () override
 
void generate_CmpEqNull () override
 
void generate_CmpNeNull () override
 
void generate_CmpEqInt (int lhs) override
 
void generate_CmpNeInt (int lhs) override
 
void generate_CmpEq (int lhs) override
 
void generate_CmpNe (int lhs) override
 
void generate_CmpGt (int lhs) override
 
void generate_CmpGe (int lhs) override
 
void generate_CmpLt (int lhs) override
 
void generate_CmpLe (int lhs) override
 
void generate_CmpStrictEqual (int lhs) override
 
void generate_CmpStrictNotEqual (int lhs) override
 
void generate_CmpIn (int lhs) override
 
void generate_CmpInstanceOf (int lhs) override
 
void generate_As (int lhs) override
 
void generate_UNot () override
 
void generate_UPlus () override
 
void generate_UMinus () override
 
void generate_UCompl () override
 
void generate_Increment () override
 
void generate_Decrement () override
 
void generate_Add (int lhs) override
 
void generate_BitAnd (int lhs) override
 
void generate_BitOr (int lhs) override
 
void generate_BitXor (int lhs) override
 
void generate_UShr (int lhs) override
 
void generate_Shr (int lhs) override
 
void generate_Shl (int lhs) override
 
void generate_BitAndConst (int rhs) override
 
void generate_BitOrConst (int rhs) override
 
void generate_BitXorConst (int rhs) override
 
void generate_UShrConst (int rhs) override
 
void generate_ShrConst (int value) override
 
void generate_ShlConst (int rhs) override
 
void generate_Exp (int lhs) override
 
void generate_Mul (int lhs) override
 
void generate_Div (int lhs) override
 
void generate_Mod (int lhs) override
 
void generate_Sub (int lhs) override
 
void generate_InitializeBlockDeadTemporalZone (int firstReg, int count) override
 
void generate_ThrowOnNullOrUndefined () override
 
void generate_GetTemplateObject (int index) override
 
Verdict startInstruction (QV4::Moth::Instr::Type) override
 
void endInstruction (QV4::Moth::Instr::Type) override
 
void addInclude (const QString &include)
 
QString conversion (const QQmlJSRegisterContent &from, const QQmlJSRegisterContent &to, const QString &variable)
 
QString conversion (const QQmlJSScope::ConstPtr &from, const QQmlJSRegisterContent &to, const QString &variable)
 
QString convertStored (const QQmlJSScope::ConstPtr &from, const QQmlJSScope::ConstPtr &to, const QString &variable)
 
QString convertContained (const QQmlJSRegisterContent &from, const QQmlJSRegisterContent &to, const QString &variable)
 
void generateReturnError ()
 
void reject (const QString &thing)
 
QString metaTypeFromType (const QQmlJSScope::ConstPtr &type) const
 
QString metaTypeFromName (const QQmlJSScope::ConstPtr &type) const
 
QString compositeMetaType (const QString &elementName) const
 
QString compositeListMetaType (const QString &elementName) const
 
QString contentPointer (const QQmlJSRegisterContent &content, const QString &var)
 
QString contentType (const QQmlJSRegisterContent &content, const QString &var)
 
void generateSetInstructionPointer ()
 
void generateLookup (const QString &lookup, const QString &initialization, const QString &resultPreparation=QString())
 
QString getLookupPreparation (const QQmlJSRegisterContent &content, const QString &var, int lookup)
 
QString setLookupPreparation (const QQmlJSRegisterContent &content, const QString &arg, int lookup)
 
void generateEnumLookup (int index)
 
QString registerVariable (int index) const
 
QString lookupVariable (int lookupIndex) const
 
QString consumedRegisterVariable (int index) const
 
QString consumedAccumulatorVariableIn () const
 
QString changedRegisterVariable () const
 
QQmlJSRegisterContent registerType (int index) const
 
QQmlJSRegisterContent lookupType (int lookupIndex) const
 
bool shouldMoveRegister (int index) const
 
void resetState ()
 
- Protected Member Functions inherited from QQmlJSCompilePass
int firstRegisterIndex () const
 
bool isArgument (int registerIndex) const
 
QQmlJSRegisterContent argumentType (int registerIndex) const
 
State initialState (const Function *function)
 
State nextStateFromAnnotations (const State &oldState, const InstructionAnnotations &annotations)
 
QQmlJS::SourceLocation sourceLocation (int instructionOffset) const
 
QQmlJS::SourceLocation currentSourceLocation () const
 
void setError (const QString &message, int instructionOffset)
 
void setError (const QString &message)
 
void generate_Add (int) override
 
void generate_As (int) override
 
void generate_BitAnd (int) override
 
void generate_BitAndConst (int) override
 
void generate_BitOr (int) override
 
void generate_BitOrConst (int) override
 
void generate_BitXor (int) override
 
void generate_BitXorConst (int) override
 
void generate_CallGlobalLookup (int, int, int) override
 
void generate_CallName (int, int, int) override
 
void generate_CallPossiblyDirectEval (int, int) override
 
void generate_CallProperty (int, int, int, int) override
 
void generate_CallPropertyLookup (int, int, int, int) override
 
void generate_CallQmlContextPropertyLookup (int, int, int) override
 
void generate_CallValue (int, int, int) override
 
void generate_CallWithReceiver (int, int, int, int) override
 
void generate_CallWithSpread (int, int, int, int) override
 
void generate_CheckException () override
 
void generate_CloneBlockContext () override
 
void generate_CmpEq (int) override
 
void generate_CmpEqInt (int) override
 
void generate_CmpEqNull () override
 
void generate_CmpGe (int) override
 
void generate_CmpGt (int) override
 
void generate_CmpIn (int) override
 
void generate_CmpInstanceOf (int) override
 
void generate_CmpLe (int) override
 
void generate_CmpLt (int) override
 
void generate_CmpNe (int) override
 
void generate_CmpNeInt (int) override
 
void generate_CmpNeNull () override
 
void generate_CmpStrictEqual (int) override
 
void generate_CmpStrictNotEqual (int) override
 
void generate_Construct (int, int, int) override
 
void generate_ConstructWithSpread (int, int, int) override
 
void generate_ConvertThisToObject () override
 
void generate_CreateCallContext () override
 
void generate_CreateClass (int, int, int) override
 
void generate_CreateMappedArgumentsObject () override
 
void generate_CreateRestParameter (int) override
 
void generate_CreateUnmappedArgumentsObject () override
 
void generate_DeadTemporalZoneCheck (int) override
 
void generate_Debug () override
 
void generate_DeclareVar (int, int) override
 
void generate_Decrement () override
 
void generate_DefineArray (int, int) override
 
void generate_DefineObjectLiteral (int, int, int) override
 
void generate_DeleteName (int) override
 
void generate_DeleteProperty (int, int) override
 
void generate_DestructureRestElement () override
 
void generate_Div (int) override
 
void generate_Exp (int) override
 
void generate_GetException () override
 
void generate_GetIterator (int) override
 
void generate_GetLookup (int) override
 
void generate_GetOptionalLookup (int, int) override
 
void generate_GetTemplateObject (int) override
 
void generate_Increment () override
 
void generate_InitializeBlockDeadTemporalZone (int, int) override
 
void generate_IteratorClose () override
 
void generate_IteratorNext (int, int) override
 
void generate_IteratorNextForYieldStar (int, int, int) override
 
void generate_Jump (int) override
 
void generate_JumpFalse (int) override
 
void generate_JumpNoException (int) override
 
void generate_JumpNotUndefined (int) override
 
void generate_JumpTrue (int) override
 
void generate_LoadClosure (int) override
 
void generate_LoadConst (int) override
 
void generate_LoadElement (int) override
 
void generate_LoadFalse () override
 
void generate_LoadGlobalLookup (int) override
 
void generate_LoadImport (int) override
 
void generate_LoadInt (int) override
 
void generate_LoadLocal (int) override
 
void generate_LoadName (int) override
 
void generate_LoadNull () override
 
void generate_LoadOptionalProperty (int, int) override
 
void generate_LoadProperty (int) override
 
void generate_LoadQmlContextPropertyLookup (int) override
 
void generate_LoadReg (int) override
 
void generate_LoadRuntimeString (int) override
 
void generate_LoadScopedLocal (int, int) override
 
void generate_LoadSuperConstructor () override
 
void generate_LoadSuperProperty (int) override
 
void generate_LoadTrue () override
 
void generate_LoadUndefined () override
 
void generate_LoadZero () override
 
void generate_Mod (int) override
 
void generate_MoveConst (int, int) override
 
void generate_MoveReg (int, int) override
 
void generate_MoveRegExp (int, int) override
 
void generate_Mul (int) override
 
void generate_PopContext () override
 
void generate_PopScriptContext () override
 
void generate_PushBlockContext (int) override
 
void generate_PushCatchContext (int, int) override
 
void generate_PushScriptContext (int) override
 
void generate_PushWithContext () override
 
void generate_Resume (int) override
 
void generate_Ret () override
 
void generate_SetException () override
 
void generate_SetLookup (int, int) override
 
void generate_SetUnwindHandler (int) override
 
void generate_Shl (int) override
 
void generate_ShlConst (int) override
 
void generate_Shr (int) override
 
void generate_ShrConst (int) override
 
void generate_StoreElement (int, int) override
 
void generate_StoreLocal (int) override
 
void generate_StoreNameSloppy (int) override
 
void generate_StoreNameStrict (int) override
 
void generate_StoreProperty (int, int) override
 
void generate_StoreReg (int) override
 
void generate_StoreScopedLocal (int, int) override
 
void generate_StoreSuperProperty (int) override
 
void generate_Sub (int) override
 
void generate_TailCall (int, int, int, int) override
 
void generate_ThrowException () override
 
void generate_ThrowOnNullOrUndefined () override
 
void generate_ToObject () override
 
void generate_TypeofName (int) override
 
void generate_TypeofValue () override
 
void generate_UCompl () override
 
void generate_UMinus () override
 
void generate_UNot () override
 
void generate_UPlus () override
 
void generate_UShr (int) override
 
void generate_UShrConst (int) override
 
void generate_UnwindDispatch () override
 
void generate_UnwindToLabel (int, int) override
 
void generate_Yield () override
 
void generate_YieldStar () override
 

Protected Attributes

QString m_body
 
CodegenState m_state
 
- Protected Attributes inherited from QQmlJSCompilePass
const QV4::Compiler::JSUnitGeneratorm_jsUnitGenerator = nullptr
 
const QQmlJSTypeResolverm_typeResolver = nullptr
 
QQmlJSLoggerm_logger = nullptr
 
const Functionm_function = nullptr
 
BasicBlocks m_basicBlocks
 
InstructionAnnotations m_annotations
 
QQmlJS::DiagnosticMessagem_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)
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ QQmlJSCodeGenerator()

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.

◆ ~QQmlJSCodeGenerator()

QQmlJSCodeGenerator::~QQmlJSCodeGenerator ( )
default

Member Function Documentation

◆ addInclude()

void QQmlJSCodeGenerator::addInclude ( const QString & include)
inlineprotected

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ changedRegisterVariable()

QString QQmlJSCodeGenerator::changedRegisterVariable ( ) const
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compositeListMetaType()

QString QQmlJSCodeGenerator::compositeListMetaType ( const QString & elementName) const
protected

Definition at line 76 of file qqmljscodegenerator.cpp.

Referenced by metaType().

+ Here is the caller graph for this function:

◆ compositeMetaType()

QString QQmlJSCodeGenerator::compositeMetaType ( const QString & elementName) const
protected

Definition at line 84 of file qqmljscodegenerator.cpp.

Referenced by metaObject(), and metaType().

+ Here is the caller graph for this function:

◆ consumedAccumulatorVariableIn()

QString QQmlJSCodeGenerator::consumedAccumulatorVariableIn ( ) const
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ consumedRegisterVariable()

QString QQmlJSCodeGenerator::consumedRegisterVariable ( int index) const
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ contentPointer()

QString QQmlJSCodeGenerator::contentPointer ( const QQmlJSRegisterContent & content,
const QString & var )
protected

◆ contentType()

QString QQmlJSCodeGenerator::contentType ( const QQmlJSRegisterContent & content,
const QString & var )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ conversion() [1/2]

QString QQmlJSCodeGenerator::conversion ( const QQmlJSRegisterContent & from,
const QQmlJSRegisterContent & to,
const QString & variable )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ conversion() [2/2]

QString QQmlJSCodeGenerator::conversion ( const QQmlJSScope::ConstPtr & from,
const QQmlJSRegisterContent & to,
const QString & variable )
inlineprotected

Definition at line 216 of file qqmljscodegenerator_p.h.

References QQmlJSScope::isReferenceType(), and QQmlJSRegisterContent::storedType().

+ Here is the call graph for this function:

◆ convertContained()

◆ convertStored()

QString QQmlJSCodeGenerator::convertStored ( const QQmlJSScope::ConstPtr & from,
const QQmlJSScope::ConstPtr & to,
const QString & variable )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ endInstruction()

void QQmlJSCodeGenerator::endInstruction ( QV4::Moth::Instr::Type )
overrideprotectedvirtual

Implements QV4::Moth::ByteCodeHandler.

Definition at line 3358 of file qqmljscodegenerator.cpp.

◆ generate_Add()

void QQmlJSCodeGenerator::generate_Add ( int lhs)
overrideprotected

Definition at line 3154 of file qqmljscodegenerator.cpp.

References generate_Add(), and INJECT_TRACE_INFO.

Referenced by generate_Add().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_As()

◆ generate_BitAnd()

void QQmlJSCodeGenerator::generate_BitAnd ( int lhs)
overrideprotected

Definition at line 3160 of file qqmljscodegenerator.cpp.

References generate_BitAnd(), and INJECT_TRACE_INFO.

Referenced by generate_BitAnd().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_BitAndConst()

void QQmlJSCodeGenerator::generate_BitAndConst ( int rhs)
overrideprotected

Definition at line 3196 of file qqmljscodegenerator.cpp.

References generate_BitAndConst(), and INJECT_TRACE_INFO.

Referenced by generate_BitAndConst().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_BitOr()

void QQmlJSCodeGenerator::generate_BitOr ( int lhs)
overrideprotected

Definition at line 3166 of file qqmljscodegenerator.cpp.

References generate_BitOr(), and INJECT_TRACE_INFO.

Referenced by generate_BitOr().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_BitOrConst()

void QQmlJSCodeGenerator::generate_BitOrConst ( int rhs)
overrideprotected

Definition at line 3202 of file qqmljscodegenerator.cpp.

References generate_BitOrConst(), and INJECT_TRACE_INFO.

Referenced by generate_BitOrConst().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_BitXor()

void QQmlJSCodeGenerator::generate_BitXor ( int lhs)
overrideprotected

Definition at line 3172 of file qqmljscodegenerator.cpp.

References generate_BitXor(), and INJECT_TRACE_INFO.

Referenced by generate_BitXor().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_BitXorConst()

void QQmlJSCodeGenerator::generate_BitXorConst ( int rhs)
overrideprotected

Definition at line 3208 of file qqmljscodegenerator.cpp.

References generate_BitXorConst(), and INJECT_TRACE_INFO.

Referenced by generate_BitXorConst().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CallGlobalLookup()

void QQmlJSCodeGenerator::generate_CallGlobalLookup ( int index,
int argc,
int argv )
overrideprotected

Definition at line 2285 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_CallName()

void QQmlJSCodeGenerator::generate_CallName ( int name,
int argc,
int argv )
overrideprotected

Definition at line 2270 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_CallPossiblyDirectEval()

void QQmlJSCodeGenerator::generate_CallPossiblyDirectEval ( int argc,
int argv )
overrideprotected

Definition at line 2278 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CallProperty()

void QQmlJSCodeGenerator::generate_CallProperty ( int name,
int base,
int argc,
int argv )
overrideprotected

Definition at line 1769 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_CallPropertyLookup()

void QQmlJSCodeGenerator::generate_CallPropertyLookup ( int lookupIndex,
int base,
int argc,
int argv )
overrideprotected

◆ generate_CallQmlContextPropertyLookup()

void QQmlJSCodeGenerator::generate_CallQmlContextPropertyLookup ( int index,
int argc,
int argv )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CallValue()

void QQmlJSCodeGenerator::generate_CallValue ( int name,
int argc,
int argv )
overrideprotected

Definition at line 1752 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CallWithReceiver()

void QQmlJSCodeGenerator::generate_CallWithReceiver ( int name,
int thisObject,
int argc,
int argv )
overrideprotected

Definition at line 1760 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CallWithSpread()

void QQmlJSCodeGenerator::generate_CallWithSpread ( int func,
int thisObject,
int argc,
int argv )
overrideprotected

Definition at line 2325 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CheckException()

void QQmlJSCodeGenerator::generate_CheckException ( )
overrideprotected

Definition at line 2882 of file qqmljscodegenerator.cpp.

References generate_CheckException(), and INJECT_TRACE_INFO.

Referenced by generate_CheckException().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CloneBlockContext()

void QQmlJSCodeGenerator::generate_CloneBlockContext ( )
overrideprotected

Definition at line 2508 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_CmpEq()

void QQmlJSCodeGenerator::generate_CmpEq ( int lhs)
overrideprotected

Definition at line 2987 of file qqmljscodegenerator.cpp.

References generate_CmpEq(), INJECT_TRACE_INFO, registerType(), and registerVariable().

Referenced by generate_CmpEq().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CmpEqInt()

void QQmlJSCodeGenerator::generate_CmpEqInt ( int lhs)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CmpEqNull()

void QQmlJSCodeGenerator::generate_CmpEqNull ( )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CmpGe()

void QQmlJSCodeGenerator::generate_CmpGe ( int lhs)
overrideprotected

Definition at line 3005 of file qqmljscodegenerator.cpp.

References generate_CmpGe(), and INJECT_TRACE_INFO.

Referenced by generate_CmpGe().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CmpGt()

void QQmlJSCodeGenerator::generate_CmpGt ( int lhs)
overrideprotected

Definition at line 2999 of file qqmljscodegenerator.cpp.

References generate_CmpGt(), and INJECT_TRACE_INFO.

Referenced by generate_CmpGt().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CmpIn()

void QQmlJSCodeGenerator::generate_CmpIn ( int lhs)
overrideprotected

Definition at line 3035 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_CmpInstanceOf()

void QQmlJSCodeGenerator::generate_CmpInstanceOf ( int lhs)
overrideprotected

Definition at line 3041 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CmpLe()

void QQmlJSCodeGenerator::generate_CmpLe ( int lhs)
overrideprotected

Definition at line 3017 of file qqmljscodegenerator.cpp.

References generate_CmpLe(), and INJECT_TRACE_INFO.

Referenced by generate_CmpLe().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CmpLt()

void QQmlJSCodeGenerator::generate_CmpLt ( int lhs)
overrideprotected

Definition at line 3011 of file qqmljscodegenerator.cpp.

References generate_CmpLt(), and INJECT_TRACE_INFO.

Referenced by generate_CmpLt().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CmpNe()

void QQmlJSCodeGenerator::generate_CmpNe ( int lhs)
overrideprotected

Definition at line 2993 of file qqmljscodegenerator.cpp.

References generate_CmpNe(), INJECT_TRACE_INFO, registerType(), and registerVariable().

Referenced by generate_CmpNe().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CmpNeInt()

void QQmlJSCodeGenerator::generate_CmpNeInt ( int lhs)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CmpNeNull()

void QQmlJSCodeGenerator::generate_CmpNeNull ( )
overrideprotected

Definition at line 2896 of file qqmljscodegenerator.cpp.

References QQmlJSTypeResolver::globalType(), INJECT_TRACE_INFO, QQmlJSCompilePass::m_typeResolver, and QQmlJSTypeResolver::nullType().

+ Here is the call graph for this function:

◆ generate_CmpStrictEqual()

void QQmlJSCodeGenerator::generate_CmpStrictEqual ( int lhs)
overrideprotected

Definition at line 3023 of file qqmljscodegenerator.cpp.

References generate_CmpStrictEqual(), INJECT_TRACE_INFO, registerType(), and registerVariable().

Referenced by generate_CmpStrictEqual().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CmpStrictNotEqual()

void QQmlJSCodeGenerator::generate_CmpStrictNotEqual ( int lhs)
overrideprotected

Definition at line 3029 of file qqmljscodegenerator.cpp.

References generate_CmpStrictNotEqual(), INJECT_TRACE_INFO, registerType(), and registerVariable().

Referenced by generate_CmpStrictNotEqual().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_Construct()

◆ generate_ConstructWithSpread()

void QQmlJSCodeGenerator::generate_ConstructWithSpread ( int func,
int argc,
int argv )
overrideprotected

Definition at line 2425 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_ConvertThisToObject()

void QQmlJSCodeGenerator::generate_ConvertThisToObject ( )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CreateCallContext()

void QQmlJSCodeGenerator::generate_CreateCallContext ( )
overrideprotected

Definition at line 2483 of file qqmljscodegenerator.cpp.

References generate_CreateCallContext(), INJECT_TRACE_INFO, and m_body.

Referenced by generate_CreateCallContext().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_CreateClass()

void QQmlJSCodeGenerator::generate_CreateClass ( int classIndex,
int heritage,
int computedNames )
overrideprotected

Definition at line 2793 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CreateMappedArgumentsObject()

void QQmlJSCodeGenerator::generate_CreateMappedArgumentsObject ( )
overrideprotected

Definition at line 2801 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_CreateRestParameter()

void QQmlJSCodeGenerator::generate_CreateRestParameter ( int argIndex)
overrideprotected

Definition at line 2811 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CreateUnmappedArgumentsObject()

void QQmlJSCodeGenerator::generate_CreateUnmappedArgumentsObject ( )
overrideprotected

Definition at line 2806 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_DeadTemporalZoneCheck()

void QQmlJSCodeGenerator::generate_DeadTemporalZoneCheck ( int name)
overrideprotected

Definition at line 2451 of file qqmljscodegenerator.cpp.

References generate_DeadTemporalZoneCheck(), INJECT_TRACE_INFO, and Q_UNUSED.

Referenced by generate_DeadTemporalZoneCheck().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_Debug()

void QQmlJSCodeGenerator::generate_Debug ( )
overrideprotected

Definition at line 386 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_DeclareVar()

void QQmlJSCodeGenerator::generate_DeclareVar ( int varName,
int isDeletable )
overrideprotected

Definition at line 2650 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_Decrement()

void QQmlJSCodeGenerator::generate_Decrement ( )
overrideprotected

Definition at line 3148 of file qqmljscodegenerator.cpp.

References generate_Decrement(), and INJECT_TRACE_INFO.

Referenced by generate_Decrement().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_DefineArray()

void QQmlJSCodeGenerator::generate_DefineArray ( int argc,
int args )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_DefineObjectLiteral()

void QQmlJSCodeGenerator::generate_DefineObjectLiteral ( int internalClassId,
int argc,
int args )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_DeleteName()

void QQmlJSCodeGenerator::generate_DeleteName ( int name)
overrideprotected

Definition at line 2633 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_DeleteProperty()

void QQmlJSCodeGenerator::generate_DeleteProperty ( int base,
int index )
overrideprotected

Definition at line 2626 of file qqmljscodegenerator.cpp.

References base, BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_DestructureRestElement()

void QQmlJSCodeGenerator::generate_DestructureRestElement ( )
overrideprotected

Definition at line 2621 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_Div()

void QQmlJSCodeGenerator::generate_Div ( int lhs)
overrideprotected

Definition at line 3259 of file qqmljscodegenerator.cpp.

References generate_Div(), and INJECT_TRACE_INFO.

Referenced by generate_Div().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_Exp()

void QQmlJSCodeGenerator::generate_Exp ( int lhs)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_GetException()

void QQmlJSCodeGenerator::generate_GetException ( )
overrideprotected

Definition at line 2473 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_GetIterator()

void QQmlJSCodeGenerator::generate_GetIterator ( int iterator)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_GetLookup()

void QQmlJSCodeGenerator::generate_GetLookup ( int index)
overrideprotected

Definition at line 1321 of file qqmljscodegenerator.cpp.

References generate_GetLookup(), and INJECT_TRACE_INFO.

Referenced by generate_GetLookup().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_GetOptionalLookup()

void QQmlJSCodeGenerator::generate_GetOptionalLookup ( int index,
int offset )
overrideprotected

◆ generate_GetTemplateObject()

void QQmlJSCodeGenerator::generate_GetTemplateObject ( int index)
overrideprotected

Definition at line 3303 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_Increment()

void QQmlJSCodeGenerator::generate_Increment ( )
overrideprotected

Definition at line 3142 of file qqmljscodegenerator.cpp.

References generate_Increment(), and INJECT_TRACE_INFO.

Referenced by generate_Increment().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_InitializeBlockDeadTemporalZone()

void QQmlJSCodeGenerator::generate_InitializeBlockDeadTemporalZone ( int firstReg,
int count )
overrideprotected

Definition at line 3291 of file qqmljscodegenerator.cpp.

References Q_UNUSED.

◆ generate_IteratorClose()

void QQmlJSCodeGenerator::generate_IteratorClose ( )
overrideprotected

Definition at line 2616 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_IteratorNext()

void QQmlJSCodeGenerator::generate_IteratorNext ( int value,
int offset )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_IteratorNextForYieldStar()

void QQmlJSCodeGenerator::generate_IteratorNextForYieldStar ( int iterator,
int object,
int offset )
overrideprotected

Definition at line 2608 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_Jump()

void QQmlJSCodeGenerator::generate_Jump ( int offset)
overrideprotected

Definition at line 2837 of file qqmljscodegenerator.cpp.

References generate_Jump(), INJECT_TRACE_INFO, and resetState().

Referenced by generate_Jump().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_JumpFalse()

void QQmlJSCodeGenerator::generate_JumpFalse ( int offset)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_JumpNoException()

void QQmlJSCodeGenerator::generate_JumpNoException ( int offset)
overrideprotected

Definition at line 2868 of file qqmljscodegenerator.cpp.

References generate_JumpNoException(), INJECT_TRACE_INFO, and m_body.

Referenced by generate_JumpNoException().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_JumpNotUndefined()

void QQmlJSCodeGenerator::generate_JumpNotUndefined ( int offset)
overrideprotected

Definition at line 2876 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_JumpTrue()

void QQmlJSCodeGenerator::generate_JumpTrue ( int offset)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_LoadClosure()

void QQmlJSCodeGenerator::generate_LoadClosure ( int value)
overrideprotected

Definition at line 646 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_LoadConst()

void QQmlJSCodeGenerator::generate_LoadConst ( int index)
overrideprotected

◆ generate_LoadElement()

void QQmlJSCodeGenerator::generate_LoadElement ( int base)
overrideprotected

◆ generate_LoadFalse()

void QQmlJSCodeGenerator::generate_LoadFalse ( )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_LoadGlobalLookup()

void QQmlJSCodeGenerator::generate_LoadGlobalLookup ( int index)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_LoadImport()

void QQmlJSCodeGenerator::generate_LoadImport ( int index)
overrideprotected

Definition at line 596 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_LoadInt()

void QQmlJSCodeGenerator::generate_LoadInt ( int value)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_LoadLocal()

void QQmlJSCodeGenerator::generate_LoadLocal ( int index)
overrideprotected

Definition at line 602 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_LoadName()

void QQmlJSCodeGenerator::generate_LoadName ( int nameIndex)
overrideprotected

Definition at line 652 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_LoadNull()

void QQmlJSCodeGenerator::generate_LoadNull ( )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_LoadOptionalProperty()

void QQmlJSCodeGenerator::generate_LoadOptionalProperty ( int name,
int offset )
overrideprotected

Definition at line 905 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_LoadProperty()

void QQmlJSCodeGenerator::generate_LoadProperty ( int nameIndex)
overrideprotected

Definition at line 899 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_LoadQmlContextPropertyLookup()

◆ generate_LoadReg()

void QQmlJSCodeGenerator::generate_LoadReg ( int reg)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_LoadRuntimeString()

void QQmlJSCodeGenerator::generate_LoadRuntimeString ( int stringId)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_LoadScopedLocal()

void QQmlJSCodeGenerator::generate_LoadScopedLocal ( int scope,
int index )
overrideprotected

Definition at line 614 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_LoadSuperConstructor()

void QQmlJSCodeGenerator::generate_LoadSuperConstructor ( )
overrideprotected

Definition at line 2827 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_LoadSuperProperty()

void QQmlJSCodeGenerator::generate_LoadSuperProperty ( int property)
overrideprotected

Definition at line 1677 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, property, and Q_UNUSED.

◆ generate_LoadTrue()

void QQmlJSCodeGenerator::generate_LoadTrue ( )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_LoadUndefined()

void QQmlJSCodeGenerator::generate_LoadUndefined ( )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_LoadZero()

void QQmlJSCodeGenerator::generate_LoadZero ( )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_Mod()

void QQmlJSCodeGenerator::generate_Mod ( int lhs)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_MoveConst()

void QQmlJSCodeGenerator::generate_MoveConst ( int constIndex,
int destTemp )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_MoveReg()

void QQmlJSCodeGenerator::generate_MoveReg ( int srcReg,
int destReg )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_MoveRegExp()

void QQmlJSCodeGenerator::generate_MoveRegExp ( int regExpId,
int destReg )
overrideprotected

Definition at line 639 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_Mul()

void QQmlJSCodeGenerator::generate_Mul ( int lhs)
overrideprotected

Definition at line 3253 of file qqmljscodegenerator.cpp.

References generate_Mul(), and INJECT_TRACE_INFO.

Referenced by generate_Mul().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_PopContext()

void QQmlJSCodeGenerator::generate_PopContext ( )
overrideprotected

Definition at line 2524 of file qqmljscodegenerator.cpp.

References generate_PopContext(), INJECT_TRACE_INFO, and m_body.

Referenced by generate_PopContext().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_PopScriptContext()

void QQmlJSCodeGenerator::generate_PopScriptContext ( )
overrideprotected

Definition at line 2519 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_PushBlockContext()

void QQmlJSCodeGenerator::generate_PushBlockContext ( int index)
overrideprotected

Definition at line 2502 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_PushCatchContext()

void QQmlJSCodeGenerator::generate_PushCatchContext ( int index,
int name )
overrideprotected

Definition at line 2490 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_PushScriptContext()

void QQmlJSCodeGenerator::generate_PushScriptContext ( int index)
overrideprotected

Definition at line 2513 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_PushWithContext()

void QQmlJSCodeGenerator::generate_PushWithContext ( )
overrideprotected

Definition at line 2497 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_Resume()

void QQmlJSCodeGenerator::generate_Resume ( int )
overrideprotected

Definition at line 1699 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_Ret()

◆ generate_SetException()

void QQmlJSCodeGenerator::generate_SetException ( )
overrideprotected

Definition at line 2478 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_SetLookup()

◆ generate_SetUnwindHandler()

void QQmlJSCodeGenerator::generate_SetUnwindHandler ( int offset)
overrideprotected

Definition at line 2433 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_Shl()

void QQmlJSCodeGenerator::generate_Shl ( int lhs)
overrideprotected

Definition at line 3190 of file qqmljscodegenerator.cpp.

References generate_Shl(), and INJECT_TRACE_INFO.

Referenced by generate_Shl().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_ShlConst()

void QQmlJSCodeGenerator::generate_ShlConst ( int rhs)
overrideprotected

Definition at line 3226 of file qqmljscodegenerator.cpp.

References generate_ShlConst(), and INJECT_TRACE_INFO.

Referenced by generate_ShlConst().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_Shr()

void QQmlJSCodeGenerator::generate_Shr ( int lhs)
overrideprotected

Definition at line 3184 of file qqmljscodegenerator.cpp.

References generate_Shr(), and INJECT_TRACE_INFO.

Referenced by generate_Shr().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_ShrConst()

void QQmlJSCodeGenerator::generate_ShrConst ( int value)
overrideprotected

Definition at line 3220 of file qqmljscodegenerator.cpp.

References generate_ShrConst(), and INJECT_TRACE_INFO.

Referenced by generate_ShrConst().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_StoreElement()

◆ generate_StoreLocal()

void QQmlJSCodeGenerator::generate_StoreLocal ( int index)
overrideprotected

Definition at line 608 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_StoreNameSloppy()

void QQmlJSCodeGenerator::generate_StoreNameSloppy ( int nameIndex)
overrideprotected

◆ generate_StoreNameStrict()

void QQmlJSCodeGenerator::generate_StoreNameStrict ( int name)
overrideprotected

Definition at line 754 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_StoreProperty()

void QQmlJSCodeGenerator::generate_StoreProperty ( int name,
int baseReg )
overrideprotected

Definition at line 1533 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_StoreReg()

void QQmlJSCodeGenerator::generate_StoreReg ( int reg)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_StoreScopedLocal()

void QQmlJSCodeGenerator::generate_StoreScopedLocal ( int scope,
int index )
overrideprotected

Definition at line 621 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_StoreSuperProperty()

void QQmlJSCodeGenerator::generate_StoreSuperProperty ( int property)
overrideprotected

Definition at line 1683 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, property, and Q_UNUSED.

◆ generate_Sub()

void QQmlJSCodeGenerator::generate_Sub ( int lhs)
overrideprotected

Definition at line 3285 of file qqmljscodegenerator.cpp.

References generate_Sub(), and INJECT_TRACE_INFO.

Referenced by generate_Sub().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_TailCall()

void QQmlJSCodeGenerator::generate_TailCall ( int func,
int thisObject,
int argc,
int argv )
overrideprotected

Definition at line 2334 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_ThrowException()

void QQmlJSCodeGenerator::generate_ThrowException ( )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_ThrowOnNullOrUndefined()

void QQmlJSCodeGenerator::generate_ThrowOnNullOrUndefined ( )
overrideprotected

Definition at line 3298 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_ToObject()

void QQmlJSCodeGenerator::generate_ToObject ( )
overrideprotected

Definition at line 2832 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_TypeofName()

void QQmlJSCodeGenerator::generate_TypeofName ( int name)
overrideprotected

Definition at line 2639 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_TypeofValue()

void QQmlJSCodeGenerator::generate_TypeofValue ( )
overrideprotected

Definition at line 2645 of file qqmljscodegenerator.cpp.

References reject().

+ Here is the call graph for this function:

◆ generate_UCompl()

void QQmlJSCodeGenerator::generate_UCompl ( )
overrideprotected

Definition at line 3136 of file qqmljscodegenerator.cpp.

References generate_UCompl(), and INJECT_TRACE_INFO.

Referenced by generate_UCompl().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_UMinus()

void QQmlJSCodeGenerator::generate_UMinus ( )
overrideprotected

Definition at line 3130 of file qqmljscodegenerator.cpp.

References generate_UMinus(), and INJECT_TRACE_INFO.

Referenced by generate_UMinus().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_UNot()

void QQmlJSCodeGenerator::generate_UNot ( )
overrideprotected

Definition at line 3118 of file qqmljscodegenerator.cpp.

References generate_UNot(), and INJECT_TRACE_INFO.

Referenced by generate_UNot().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_UnwindDispatch()

void QQmlJSCodeGenerator::generate_UnwindDispatch ( )
overrideprotected

Definition at line 2439 of file qqmljscodegenerator.cpp.

References reject().

+ Here is the call graph for this function:

◆ generate_UnwindToLabel()

void QQmlJSCodeGenerator::generate_UnwindToLabel ( int level,
int offset )
overrideprotected

Definition at line 2444 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_UPlus()

void QQmlJSCodeGenerator::generate_UPlus ( )
overrideprotected

Definition at line 3124 of file qqmljscodegenerator.cpp.

References generate_UPlus(), and INJECT_TRACE_INFO.

Referenced by generate_UPlus().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_UShr()

void QQmlJSCodeGenerator::generate_UShr ( int lhs)
overrideprotected

Definition at line 3178 of file qqmljscodegenerator.cpp.

References INJECT_TRACE_INFO.

◆ generate_UShrConst()

void QQmlJSCodeGenerator::generate_UShrConst ( int rhs)
overrideprotected

Definition at line 3214 of file qqmljscodegenerator.cpp.

References generate_UShrConst(), and INJECT_TRACE_INFO.

Referenced by generate_UShrConst().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generate_Yield()

void QQmlJSCodeGenerator::generate_Yield ( )
overrideprotected

Definition at line 1689 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_YieldStar()

void QQmlJSCodeGenerator::generate_YieldStar ( )
overrideprotected

Definition at line 1694 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generateEnumLookup()

void QQmlJSCodeGenerator::generateEnumLookup ( int index)
protected

◆ generateLookup()

void QQmlJSCodeGenerator::generateLookup ( const QString & lookup,
const QString & initialization,
const QString & resultPreparation = QString() )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generateReturnError()

void QQmlJSCodeGenerator::generateReturnError ( )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ generateSetInstructionPointer()

void QQmlJSCodeGenerator::generateSetInstructionPointer ( )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getLookupPreparation()

QString QQmlJSCodeGenerator::getLookupPreparation ( const QQmlJSRegisterContent & content,
const QString & var,
int lookup )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lookupType()

QQmlJSRegisterContent QQmlJSCodeGenerator::lookupType ( int lookupIndex) const
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ lookupVariable()

QString QQmlJSCodeGenerator::lookupVariable ( int lookupIndex) const
protected

Definition at line 3812 of file qqmljscodegenerator.cpp.

References QHash< Key, T >::constBegin(), QHash< Key, T >::constEnd(), and it.

+ Here is the call graph for this function:

◆ metaObject()

QString QQmlJSCodeGenerator::metaObject ( const QQmlJSScope::ConstPtr & objectType)
protectedvirtual

Definition at line 92 of file qqmljscodegenerator.cpp.

References compositeMetaType(), QQmlJSScope::internalName(), QQmlJSScope::isComposite(), QQmlJSCompilePass::m_typeResolver, metaTypeFromName(), QQmlJSTypeResolver::nameForType(), and reject().

+ Here is the call graph for this function:

◆ metaType()

QString QQmlJSCodeGenerator::metaType ( const QQmlJSScope::ConstPtr & type)
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ metaTypeFromName()

QString QQmlJSCodeGenerator::metaTypeFromName ( const QQmlJSScope::ConstPtr & type) const
protected

Definition at line 69 of file qqmljscodegenerator.cpp.

References QString::fromUtf8(), and QMetaObject::normalizedType().

Referenced by metaObject(), and metaType().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ metaTypeFromType()

QString QQmlJSCodeGenerator::metaTypeFromType ( const QQmlJSScope::ConstPtr & type) const
protected

Definition at line 64 of file qqmljscodegenerator.cpp.

Referenced by contentType(), generate_LoadGlobalLookup(), and metaType().

+ Here is the caller graph for this function:

◆ registerType()

QQmlJSRegisterContent QQmlJSCodeGenerator::registerType ( int index) const
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ registerVariable()

QString QQmlJSCodeGenerator::registerVariable ( int index) const
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ reject()

◆ resetState()

void QQmlJSCodeGenerator::resetState ( )
inlineprotected

Definition at line 278 of file qqmljscodegenerator_p.h.

Referenced by generate_Jump(), generate_Ret(), and generate_ThrowException().

+ Here is the caller graph for this function:

◆ run()

QQmlJSAotFunction QQmlJSCodeGenerator::run ( const Function * function,
QQmlJS::DiagnosticMessage * error,
bool basicBlocksValidationFailed )

◆ setLookupPreparation()

QString QQmlJSCodeGenerator::setLookupPreparation ( const QQmlJSRegisterContent & content,
const QString & arg,
int lookup )
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ shouldMoveRegister()

bool QQmlJSCodeGenerator::shouldMoveRegister ( int index) const
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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ startInstruction()

Member Data Documentation

◆ m_body

◆ m_state


The documentation for this class was generated from the following files: