Qt 6.x
The Qt SDK
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)
 
 ~QQmlJSCodeGenerator ()=default
 
QQmlJSAotFunction run (const Function *function, const InstructionAnnotations *annotations, QQmlJS::DiagnosticMessage *error)
 
- Public Member Functions inherited from QQmlJSCompilePass
 QQmlJSCompilePass (const QV4::Compiler::JSUnitGenerator *jsUnitGenerator, const QQmlJSTypeResolver *typeResolver, QQmlJSLogger *logger)
 
- 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 done) override
 
void generate_IteratorNextForYieldStar (int iterator, int object) override
 
void generate_IteratorClose (int done) 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)
 
QString errorReturnValue ()
 
void reject (const QString &thing)
 
QString metaTypeFromType (const QQmlJSScope::ConstPtr &type) const
 
QString metaTypeFromName (const QQmlJSScope::ConstPtr &type) 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 consumedRegisterVariable (int index) const
 
QString consumedAccumulatorVariableIn () const
 
QString changedRegisterVariable () const
 
QQmlJSRegisterContent registerType (int index) 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 (int) override
 
void generate_IteratorNext (int, int) override
 
void generate_IteratorNextForYieldStar (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
 
virtual Verdict startInstruction (Moth::Instr::Type instr)=0
 
virtual void endInstruction (Moth::Instr::Type instr)=0
 

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

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.

+ Here is the call graph for this function:

◆ changedRegisterVariable()

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

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

◆ consumedAccumulatorVariableIn()

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

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

+ 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

◆ conversion() [1/2]

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

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

+ 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 2852 of file qqmljscodegenerator.cpp.

◆ errorReturnValue()

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

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

◆ generate_Add()

void QQmlJSCodeGenerator::generate_Add ( int  lhs)
overrideprotected

Definition at line 2654 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 2660 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 2696 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 2666 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 2702 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 2672 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 2708 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 1896 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 1881 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 1889 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 1394 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 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().

+ 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 1377 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 1385 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 1936 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CheckException()

void QQmlJSCodeGenerator::generate_CheckException ( )
overrideprotected

Definition at line 2352 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 2044 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_CmpEq()

void QQmlJSCodeGenerator::generate_CmpEq ( int  lhs)
overrideprotected

Definition at line 2499 of file qqmljscodegenerator.cpp.

References generate_CmpEq(), and INJECT_TRACE_INFO.

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

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

◆ generate_CmpEqNull()

void QQmlJSCodeGenerator::generate_CmpEqNull ( )
overrideprotected

◆ generate_CmpGe()

void QQmlJSCodeGenerator::generate_CmpGe ( int  lhs)
overrideprotected

Definition at line 2517 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 2511 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 2547 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 2553 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CmpLe()

void QQmlJSCodeGenerator::generate_CmpLe ( int  lhs)
overrideprotected

Definition at line 2529 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 2523 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 2505 of file qqmljscodegenerator.cpp.

References generate_CmpNe(), and INJECT_TRACE_INFO.

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

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

◆ generate_CmpNeNull()

void QQmlJSCodeGenerator::generate_CmpNeNull ( )
overrideprotected

◆ generate_CmpStrictEqual()

void QQmlJSCodeGenerator::generate_CmpStrictEqual ( int  lhs)
overrideprotected

Definition at line 2535 of file qqmljscodegenerator.cpp.

References generate_CmpStrictEqual(), and INJECT_TRACE_INFO.

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 2541 of file qqmljscodegenerator.cpp.

References generate_CmpStrictNotEqual(), and INJECT_TRACE_INFO.

Referenced by generate_CmpStrictNotEqual().

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

◆ generate_Construct()

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

Definition at line 1954 of file qqmljscodegenerator.cpp.

References Q_UNUSED, and reject().

+ Here is the call graph for this function:

◆ generate_ConstructWithSpread()

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

Definition at line 1962 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_ConvertThisToObject()

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

+ 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 2019 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 2259 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CreateMappedArgumentsObject()

void QQmlJSCodeGenerator::generate_CreateMappedArgumentsObject ( )
overrideprotected

Definition at line 2267 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_CreateRestParameter()

void QQmlJSCodeGenerator::generate_CreateRestParameter ( int  argIndex)
overrideprotected

Definition at line 2277 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_CreateUnmappedArgumentsObject()

void QQmlJSCodeGenerator::generate_CreateUnmappedArgumentsObject ( )
overrideprotected

Definition at line 2272 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_DeadTemporalZoneCheck()

void QQmlJSCodeGenerator::generate_DeadTemporalZoneCheck ( int  name)
overrideprotected

Definition at line 1988 of file qqmljscodegenerator.cpp.

References Q_UNUSED.

◆ generate_Debug()

void QQmlJSCodeGenerator::generate_Debug ( )
overrideprotected

Definition at line 294 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_DeclareVar()

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

Definition at line 2123 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_Decrement()

void QQmlJSCodeGenerator::generate_Decrement ( )
overrideprotected

Definition at line 2648 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 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().

+ 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

◆ generate_DeleteName()

void QQmlJSCodeGenerator::generate_DeleteName ( int  name)
overrideprotected

Definition at line 2106 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_DeleteProperty()

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

Definition at line 2099 of file qqmljscodegenerator.cpp.

References base, BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_DestructureRestElement()

void QQmlJSCodeGenerator::generate_DestructureRestElement ( )
overrideprotected

Definition at line 2094 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_Div()

void QQmlJSCodeGenerator::generate_Div ( int  lhs)
overrideprotected

Definition at line 2759 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 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().

+ 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 2009 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_GetIterator()

void QQmlJSCodeGenerator::generate_GetIterator ( int  iterator)
overrideprotected

Definition at line 2068 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_GetLookup()

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

+ 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

Definition at line 1158 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_GetTemplateObject()

void QQmlJSCodeGenerator::generate_GetTemplateObject ( int  index)
overrideprotected

Definition at line 2803 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_Increment()

void QQmlJSCodeGenerator::generate_Increment ( )
overrideprotected

Definition at line 2642 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 2791 of file qqmljscodegenerator.cpp.

References Q_UNUSED.

◆ generate_IteratorClose()

void QQmlJSCodeGenerator::generate_IteratorClose ( int  done)
overrideprotected

Definition at line 2088 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, done, and Q_UNUSED.

◆ generate_IteratorNext()

void QQmlJSCodeGenerator::generate_IteratorNext ( int  value,
int  done 
)
overrideprotected

Definition at line 2074 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, done, and Q_UNUSED.

◆ generate_IteratorNextForYieldStar()

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

Definition at line 2081 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_Jump()

void QQmlJSCodeGenerator::generate_Jump ( int  offset)
overrideprotected

Definition at line 2303 of file qqmljscodegenerator.cpp.

References generate_Jump(), INJECT_TRACE_INFO, m_body, 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 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().

+ 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 2337 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 2346 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_JumpTrue()

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

+ 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 553 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()

◆ generate_LoadFalse()

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

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

+ 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 503 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_LoadInt()

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

+ 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 509 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 559 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 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().

+ 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 781 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_LoadProperty()

void QQmlJSCodeGenerator::generate_LoadProperty ( int  nameIndex)
overrideprotected

Definition at line 775 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 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().

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

+ 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 521 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_LoadSuperConstructor()

void QQmlJSCodeGenerator::generate_LoadSuperConstructor ( )
overrideprotected

Definition at line 2293 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_LoadSuperProperty()

void QQmlJSCodeGenerator::generate_LoadSuperProperty ( int  property)
overrideprotected

Definition at line 1302 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, property, and Q_UNUSED.

◆ generate_LoadTrue()

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

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

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

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

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

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

+ 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 546 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_Mul()

void QQmlJSCodeGenerator::generate_Mul ( int  lhs)
overrideprotected

Definition at line 2753 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 2060 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 2055 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_PushBlockContext()

void QQmlJSCodeGenerator::generate_PushBlockContext ( int  index)
overrideprotected

Definition at line 2038 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_PushCatchContext()

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

Definition at line 2026 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 2049 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_PushWithContext()

void QQmlJSCodeGenerator::generate_PushWithContext ( )
overrideprotected

Definition at line 2033 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_Resume()

void QQmlJSCodeGenerator::generate_Resume ( int  )
overrideprotected

Definition at line 1324 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_Ret()

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

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

◆ generate_SetException()

void QQmlJSCodeGenerator::generate_SetException ( )
overrideprotected

Definition at line 2014 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_SetLookup()

◆ generate_SetUnwindHandler()

void QQmlJSCodeGenerator::generate_SetUnwindHandler ( int  offset)
overrideprotected

Definition at line 1970 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 2690 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 2726 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 2684 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 2720 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()

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

◆ generate_StoreLocal()

void QQmlJSCodeGenerator::generate_StoreLocal ( int  index)
overrideprotected

Definition at line 515 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 661 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_StoreProperty()

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

Definition at line 1165 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 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().

+ 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 528 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_StoreSuperProperty()

void QQmlJSCodeGenerator::generate_StoreSuperProperty ( int  property)
overrideprotected

Definition at line 1308 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, property, and Q_UNUSED.

◆ generate_Sub()

void QQmlJSCodeGenerator::generate_Sub ( int  lhs)
overrideprotected

Definition at line 2785 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 1945 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_ThrowException()

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

+ 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 2798 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_ToObject()

void QQmlJSCodeGenerator::generate_ToObject ( )
overrideprotected

Definition at line 2298 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_TypeofName()

void QQmlJSCodeGenerator::generate_TypeofName ( int  name)
overrideprotected

Definition at line 2112 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 2118 of file qqmljscodegenerator.cpp.

References reject().

+ Here is the call graph for this function:

◆ generate_UCompl()

void QQmlJSCodeGenerator::generate_UCompl ( )
overrideprotected

Definition at line 2636 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 2630 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 2618 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 1976 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 1981 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED, and Q_UNUSED.

◆ generate_UPlus()

void QQmlJSCodeGenerator::generate_UPlus ( )
overrideprotected

Definition at line 2624 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 2678 of file qqmljscodegenerator.cpp.

References INJECT_TRACE_INFO.

◆ generate_UShrConst()

void QQmlJSCodeGenerator::generate_UShrConst ( int  rhs)
overrideprotected

Definition at line 2714 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 1314 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generate_YieldStar()

void QQmlJSCodeGenerator::generate_YieldStar ( )
overrideprotected

Definition at line 1319 of file qqmljscodegenerator.cpp.

References BYTECODE_UNIMPLEMENTED.

◆ generateEnumLookup()

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

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

◆ generateLookup()

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

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

◆ generateSetInstructionPointer()

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

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

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

◆ metaObject()

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

Definition at line 75 of file qqmljscodegenerator.cpp.

References QQmlJSScope::internalName(), QQmlJSScope::isComposite(), metaTypeFromName(), and reject().

+ Here is the call graph for this function:

◆ metaType()

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

+ 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 68 of file qqmljscodegenerator.cpp.

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

Referenced by contentType(), 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 63 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 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().

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

+ 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 273 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,
const InstructionAnnotations annotations,
QQmlJS::DiagnosticMessage error 
)

◆ setLookupPreparation()

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

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

+ 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: