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
QQmlJSCompilePass Class Reference

#include <qqmljscompilepass_p.h>

+ Inheritance diagram for QQmlJSCompilePass:
+ Collaboration diagram for QQmlJSCompilePass:

Classes

struct  BasicBlock
 
struct  BlocksAndAnnotations
 
struct  Function
 
struct  InstructionAnnotation
 
struct  ObjectOrArrayDefinition
 
struct  State
 
struct  VirtualRegister
 

Public Types

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>
 

Public Member Functions

 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

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 Member Functions inherited from QV4::Moth::ByteCodeHandler
virtual Verdict startInstruction (Moth::Instr::Type instr)=0
 
virtual void endInstruction (Moth::Instr::Type instr)=0
 

Static Protected Member Functions

static bool instructionManipulatesContext (QV4::Moth::Instr::Type type)
 

Protected Attributes

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

- Protected Types inherited from QV4::Moth::ByteCodeHandler
enum  Verdict { ProcessInstruction , SkipInstruction }
 

Detailed Description

Definition at line 28 of file qqmljscompilepass_p.h.

Member Typedef Documentation

◆ BasicBlocks

Definition at line 69 of file qqmljscompilepass_p.h.

◆ InstructionAnnotations

◆ SourceLocationTable

◆ VirtualRegisters

Member Enumeration Documentation

◆ RegisterShortcuts

Enumerator
InvalidRegister 
Accumulator 
This 
FirstArgument 

Definition at line 32 of file qqmljscompilepass_p.h.

Constructor & Destructor Documentation

◆ QQmlJSCompilePass()

QQmlJSCompilePass::QQmlJSCompilePass ( const QV4::Compiler::JSUnitGenerator * jsUnitGenerator,
const QQmlJSTypeResolver * typeResolver,
QQmlJSLogger * logger,
BasicBlocks basicBlocks = {},
InstructionAnnotations annotations = {} )
inline

Definition at line 266 of file qqmljscompilepass_p.h.

Member Function Documentation

◆ argumentType()

QQmlJSRegisterContent QQmlJSCompilePass::argumentType ( int registerIndex) const
inlineprotected

Definition at line 296 of file qqmljscompilepass_p.h.

References QQmlJSCompilePass::Function::argumentTypes, FirstArgument, isArgument(), m_function, and Q_ASSERT.

Referenced by QQmlJSCodeGenerator::convertContained(), and QQmlJSCodeGenerator::run().

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

◆ currentSourceLocation()

QQmlJS::SourceLocation QQmlJSCompilePass::currentSourceLocation ( ) const
inlineprotected

Definition at line 368 of file qqmljscompilepass_p.h.

References QV4::Moth::ByteCodeHandler::currentInstructionOffset(), and sourceLocation().

+ Here is the call graph for this function:

◆ firstRegisterIndex()

int QQmlJSCompilePass::firstRegisterIndex ( ) const
inlineprotected

Definition at line 286 of file qqmljscompilepass_p.h.

References QQmlJSCompilePass::Function::argumentTypes, FirstArgument, m_function, and QList< T >::size().

Referenced by initialState(), isArgument(), QQmlJSCodeGenerator::run(), and QQmlJSBasicBlocks::run().

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

◆ generate_Add()

void QQmlJSCompilePass::generate_Add ( int )
inlineoverrideprotected

Definition at line 413 of file qqmljscompilepass_p.h.

◆ generate_As()

void QQmlJSCompilePass::generate_As ( int )
inlineoverrideprotected

Definition at line 414 of file qqmljscompilepass_p.h.

◆ generate_BitAnd()

void QQmlJSCompilePass::generate_BitAnd ( int )
inlineoverrideprotected

Definition at line 415 of file qqmljscompilepass_p.h.

◆ generate_BitAndConst()

void QQmlJSCompilePass::generate_BitAndConst ( int )
inlineoverrideprotected

Definition at line 416 of file qqmljscompilepass_p.h.

◆ generate_BitOr()

void QQmlJSCompilePass::generate_BitOr ( int )
inlineoverrideprotected

Definition at line 417 of file qqmljscompilepass_p.h.

◆ generate_BitOrConst()

void QQmlJSCompilePass::generate_BitOrConst ( int )
inlineoverrideprotected

Definition at line 418 of file qqmljscompilepass_p.h.

◆ generate_BitXor()

void QQmlJSCompilePass::generate_BitXor ( int )
inlineoverrideprotected

Definition at line 419 of file qqmljscompilepass_p.h.

◆ generate_BitXorConst()

void QQmlJSCompilePass::generate_BitXorConst ( int )
inlineoverrideprotected

Definition at line 420 of file qqmljscompilepass_p.h.

◆ generate_CallGlobalLookup()

void QQmlJSCompilePass::generate_CallGlobalLookup ( int ,
int ,
int  )
inlineoverrideprotected

Definition at line 421 of file qqmljscompilepass_p.h.

◆ generate_CallName()

void QQmlJSCompilePass::generate_CallName ( int ,
int ,
int  )
inlineoverrideprotected

Definition at line 422 of file qqmljscompilepass_p.h.

◆ generate_CallPossiblyDirectEval()

void QQmlJSCompilePass::generate_CallPossiblyDirectEval ( int ,
int  )
inlineoverrideprotected

Definition at line 423 of file qqmljscompilepass_p.h.

◆ generate_CallProperty()

void QQmlJSCompilePass::generate_CallProperty ( int ,
int ,
int ,
int  )
inlineoverrideprotected

Definition at line 424 of file qqmljscompilepass_p.h.

◆ generate_CallPropertyLookup()

void QQmlJSCompilePass::generate_CallPropertyLookup ( int ,
int ,
int ,
int  )
inlineoverrideprotected

Definition at line 425 of file qqmljscompilepass_p.h.

◆ generate_CallQmlContextPropertyLookup()

void QQmlJSCompilePass::generate_CallQmlContextPropertyLookup ( int ,
int ,
int  )
inlineoverrideprotected

Definition at line 426 of file qqmljscompilepass_p.h.

◆ generate_CallValue()

void QQmlJSCompilePass::generate_CallValue ( int ,
int ,
int  )
inlineoverrideprotected

Definition at line 427 of file qqmljscompilepass_p.h.

◆ generate_CallWithReceiver()

void QQmlJSCompilePass::generate_CallWithReceiver ( int ,
int ,
int ,
int  )
inlineoverrideprotected

Definition at line 428 of file qqmljscompilepass_p.h.

◆ generate_CallWithSpread()

void QQmlJSCompilePass::generate_CallWithSpread ( int ,
int ,
int ,
int  )
inlineoverrideprotected

Definition at line 429 of file qqmljscompilepass_p.h.

◆ generate_CheckException()

void QQmlJSCompilePass::generate_CheckException ( )
inlineoverrideprotected

Definition at line 430 of file qqmljscompilepass_p.h.

◆ generate_CloneBlockContext()

void QQmlJSCompilePass::generate_CloneBlockContext ( )
inlineoverrideprotected

Definition at line 431 of file qqmljscompilepass_p.h.

◆ generate_CmpEq()

void QQmlJSCompilePass::generate_CmpEq ( int )
inlineoverrideprotected

Definition at line 432 of file qqmljscompilepass_p.h.

◆ generate_CmpEqInt()

void QQmlJSCompilePass::generate_CmpEqInt ( int )
inlineoverrideprotected

Definition at line 433 of file qqmljscompilepass_p.h.

◆ generate_CmpEqNull()

void QQmlJSCompilePass::generate_CmpEqNull ( )
inlineoverrideprotected

Definition at line 434 of file qqmljscompilepass_p.h.

◆ generate_CmpGe()

void QQmlJSCompilePass::generate_CmpGe ( int )
inlineoverrideprotected

Definition at line 435 of file qqmljscompilepass_p.h.

◆ generate_CmpGt()

void QQmlJSCompilePass::generate_CmpGt ( int )
inlineoverrideprotected

Definition at line 436 of file qqmljscompilepass_p.h.

◆ generate_CmpIn()

void QQmlJSCompilePass::generate_CmpIn ( int )
inlineoverrideprotected

Definition at line 437 of file qqmljscompilepass_p.h.

◆ generate_CmpInstanceOf()

void QQmlJSCompilePass::generate_CmpInstanceOf ( int )
inlineoverrideprotected

Definition at line 438 of file qqmljscompilepass_p.h.

◆ generate_CmpLe()

void QQmlJSCompilePass::generate_CmpLe ( int )
inlineoverrideprotected

Definition at line 439 of file qqmljscompilepass_p.h.

◆ generate_CmpLt()

void QQmlJSCompilePass::generate_CmpLt ( int )
inlineoverrideprotected

Definition at line 440 of file qqmljscompilepass_p.h.

◆ generate_CmpNe()

void QQmlJSCompilePass::generate_CmpNe ( int )
inlineoverrideprotected

Definition at line 441 of file qqmljscompilepass_p.h.

◆ generate_CmpNeInt()

void QQmlJSCompilePass::generate_CmpNeInt ( int )
inlineoverrideprotected

Definition at line 442 of file qqmljscompilepass_p.h.

◆ generate_CmpNeNull()

void QQmlJSCompilePass::generate_CmpNeNull ( )
inlineoverrideprotected

Definition at line 443 of file qqmljscompilepass_p.h.

◆ generate_CmpStrictEqual()

void QQmlJSCompilePass::generate_CmpStrictEqual ( int )
inlineoverrideprotected

Definition at line 444 of file qqmljscompilepass_p.h.

◆ generate_CmpStrictNotEqual()

void QQmlJSCompilePass::generate_CmpStrictNotEqual ( int )
inlineoverrideprotected

Definition at line 445 of file qqmljscompilepass_p.h.

◆ generate_Construct()

void QQmlJSCompilePass::generate_Construct ( int ,
int ,
int  )
inlineoverrideprotected

Definition at line 446 of file qqmljscompilepass_p.h.

◆ generate_ConstructWithSpread()

void QQmlJSCompilePass::generate_ConstructWithSpread ( int ,
int ,
int  )
inlineoverrideprotected

Definition at line 447 of file qqmljscompilepass_p.h.

◆ generate_ConvertThisToObject()

void QQmlJSCompilePass::generate_ConvertThisToObject ( )
inlineoverrideprotected

Definition at line 448 of file qqmljscompilepass_p.h.

◆ generate_CreateCallContext()

void QQmlJSCompilePass::generate_CreateCallContext ( )
inlineoverrideprotected

Definition at line 449 of file qqmljscompilepass_p.h.

◆ generate_CreateClass()

void QQmlJSCompilePass::generate_CreateClass ( int ,
int ,
int  )
inlineoverrideprotected

Definition at line 450 of file qqmljscompilepass_p.h.

◆ generate_CreateMappedArgumentsObject()

void QQmlJSCompilePass::generate_CreateMappedArgumentsObject ( )
inlineoverrideprotected

Definition at line 451 of file qqmljscompilepass_p.h.

◆ generate_CreateRestParameter()

void QQmlJSCompilePass::generate_CreateRestParameter ( int )
inlineoverrideprotected

Definition at line 452 of file qqmljscompilepass_p.h.

◆ generate_CreateUnmappedArgumentsObject()

void QQmlJSCompilePass::generate_CreateUnmappedArgumentsObject ( )
inlineoverrideprotected

Definition at line 453 of file qqmljscompilepass_p.h.

◆ generate_DeadTemporalZoneCheck()

void QQmlJSCompilePass::generate_DeadTemporalZoneCheck ( int )
inlineoverrideprotected

Definition at line 454 of file qqmljscompilepass_p.h.

◆ generate_Debug()

void QQmlJSCompilePass::generate_Debug ( )
inlineoverrideprotected

Definition at line 455 of file qqmljscompilepass_p.h.

◆ generate_DeclareVar()

void QQmlJSCompilePass::generate_DeclareVar ( int ,
int  )
inlineoverrideprotected

Definition at line 456 of file qqmljscompilepass_p.h.

◆ generate_Decrement()

void QQmlJSCompilePass::generate_Decrement ( )
inlineoverrideprotected

Definition at line 457 of file qqmljscompilepass_p.h.

◆ generate_DefineArray()

void QQmlJSCompilePass::generate_DefineArray ( int ,
int  )
inlineoverrideprotected

Definition at line 458 of file qqmljscompilepass_p.h.

◆ generate_DefineObjectLiteral()

void QQmlJSCompilePass::generate_DefineObjectLiteral ( int ,
int ,
int  )
inlineoverrideprotected

Definition at line 459 of file qqmljscompilepass_p.h.

◆ generate_DeleteName()

void QQmlJSCompilePass::generate_DeleteName ( int )
inlineoverrideprotected

Definition at line 460 of file qqmljscompilepass_p.h.

◆ generate_DeleteProperty()

void QQmlJSCompilePass::generate_DeleteProperty ( int ,
int  )
inlineoverrideprotected

Definition at line 461 of file qqmljscompilepass_p.h.

◆ generate_DestructureRestElement()

void QQmlJSCompilePass::generate_DestructureRestElement ( )
inlineoverrideprotected

Definition at line 462 of file qqmljscompilepass_p.h.

◆ generate_Div()

void QQmlJSCompilePass::generate_Div ( int )
inlineoverrideprotected

Definition at line 463 of file qqmljscompilepass_p.h.

◆ generate_Exp()

void QQmlJSCompilePass::generate_Exp ( int )
inlineoverrideprotected

Definition at line 464 of file qqmljscompilepass_p.h.

◆ generate_GetException()

void QQmlJSCompilePass::generate_GetException ( )
inlineoverrideprotected

Definition at line 465 of file qqmljscompilepass_p.h.

◆ generate_GetIterator()

void QQmlJSCompilePass::generate_GetIterator ( int )
inlineoverrideprotected

Definition at line 466 of file qqmljscompilepass_p.h.

◆ generate_GetLookup()

void QQmlJSCompilePass::generate_GetLookup ( int )
inlineoverrideprotected

Definition at line 467 of file qqmljscompilepass_p.h.

◆ generate_GetOptionalLookup()

void QQmlJSCompilePass::generate_GetOptionalLookup ( int ,
int  )
inlineoverrideprotected

Definition at line 468 of file qqmljscompilepass_p.h.

◆ generate_GetTemplateObject()

void QQmlJSCompilePass::generate_GetTemplateObject ( int )
inlineoverrideprotected

Definition at line 469 of file qqmljscompilepass_p.h.

◆ generate_Increment()

void QQmlJSCompilePass::generate_Increment ( )
inlineoverrideprotected

Definition at line 470 of file qqmljscompilepass_p.h.

◆ generate_InitializeBlockDeadTemporalZone()

void QQmlJSCompilePass::generate_InitializeBlockDeadTemporalZone ( int ,
int  )
inlineoverrideprotected

Definition at line 471 of file qqmljscompilepass_p.h.

◆ generate_IteratorClose()

void QQmlJSCompilePass::generate_IteratorClose ( )
inlineoverrideprotected

Definition at line 472 of file qqmljscompilepass_p.h.

◆ generate_IteratorNext()

void QQmlJSCompilePass::generate_IteratorNext ( int ,
int  )
inlineoverrideprotected

Definition at line 473 of file qqmljscompilepass_p.h.

◆ generate_IteratorNextForYieldStar()

void QQmlJSCompilePass::generate_IteratorNextForYieldStar ( int ,
int ,
int  )
inlineoverrideprotected

Definition at line 474 of file qqmljscompilepass_p.h.

◆ generate_Jump()

void QQmlJSCompilePass::generate_Jump ( int )
inlineoverrideprotected

Definition at line 475 of file qqmljscompilepass_p.h.

◆ generate_JumpFalse()

void QQmlJSCompilePass::generate_JumpFalse ( int )
inlineoverrideprotected

Definition at line 476 of file qqmljscompilepass_p.h.

◆ generate_JumpNoException()

void QQmlJSCompilePass::generate_JumpNoException ( int )
inlineoverrideprotected

Definition at line 477 of file qqmljscompilepass_p.h.

◆ generate_JumpNotUndefined()

void QQmlJSCompilePass::generate_JumpNotUndefined ( int )
inlineoverrideprotected

Definition at line 478 of file qqmljscompilepass_p.h.

◆ generate_JumpTrue()

void QQmlJSCompilePass::generate_JumpTrue ( int )
inlineoverrideprotected

Definition at line 479 of file qqmljscompilepass_p.h.

◆ generate_LoadClosure()

void QQmlJSCompilePass::generate_LoadClosure ( int )
inlineoverrideprotected

Definition at line 480 of file qqmljscompilepass_p.h.

◆ generate_LoadConst()

void QQmlJSCompilePass::generate_LoadConst ( int )
inlineoverrideprotected

Definition at line 481 of file qqmljscompilepass_p.h.

◆ generate_LoadElement()

void QQmlJSCompilePass::generate_LoadElement ( int )
inlineoverrideprotected

Definition at line 482 of file qqmljscompilepass_p.h.

◆ generate_LoadFalse()

void QQmlJSCompilePass::generate_LoadFalse ( )
inlineoverrideprotected

Definition at line 483 of file qqmljscompilepass_p.h.

◆ generate_LoadGlobalLookup()

void QQmlJSCompilePass::generate_LoadGlobalLookup ( int )
inlineoverrideprotected

Definition at line 484 of file qqmljscompilepass_p.h.

◆ generate_LoadImport()

void QQmlJSCompilePass::generate_LoadImport ( int )
inlineoverrideprotected

Definition at line 485 of file qqmljscompilepass_p.h.

◆ generate_LoadInt()

void QQmlJSCompilePass::generate_LoadInt ( int )
inlineoverrideprotected

Definition at line 486 of file qqmljscompilepass_p.h.

◆ generate_LoadLocal()

void QQmlJSCompilePass::generate_LoadLocal ( int )
inlineoverrideprotected

Definition at line 487 of file qqmljscompilepass_p.h.

◆ generate_LoadName()

void QQmlJSCompilePass::generate_LoadName ( int )
inlineoverrideprotected

Definition at line 488 of file qqmljscompilepass_p.h.

◆ generate_LoadNull()

void QQmlJSCompilePass::generate_LoadNull ( )
inlineoverrideprotected

Definition at line 489 of file qqmljscompilepass_p.h.

◆ generate_LoadOptionalProperty()

void QQmlJSCompilePass::generate_LoadOptionalProperty ( int ,
int  )
inlineoverrideprotected

Definition at line 490 of file qqmljscompilepass_p.h.

◆ generate_LoadProperty()

void QQmlJSCompilePass::generate_LoadProperty ( int )
inlineoverrideprotected

Definition at line 491 of file qqmljscompilepass_p.h.

◆ generate_LoadQmlContextPropertyLookup()

void QQmlJSCompilePass::generate_LoadQmlContextPropertyLookup ( int )
inlineoverrideprotected

Definition at line 492 of file qqmljscompilepass_p.h.

◆ generate_LoadReg()

void QQmlJSCompilePass::generate_LoadReg ( int )
inlineoverrideprotected

Definition at line 493 of file qqmljscompilepass_p.h.

◆ generate_LoadRuntimeString()

void QQmlJSCompilePass::generate_LoadRuntimeString ( int )
inlineoverrideprotected

Definition at line 494 of file qqmljscompilepass_p.h.

◆ generate_LoadScopedLocal()

void QQmlJSCompilePass::generate_LoadScopedLocal ( int ,
int  )
inlineoverrideprotected

Definition at line 495 of file qqmljscompilepass_p.h.

◆ generate_LoadSuperConstructor()

void QQmlJSCompilePass::generate_LoadSuperConstructor ( )
inlineoverrideprotected

Definition at line 496 of file qqmljscompilepass_p.h.

◆ generate_LoadSuperProperty()

void QQmlJSCompilePass::generate_LoadSuperProperty ( int )
inlineoverrideprotected

Definition at line 497 of file qqmljscompilepass_p.h.

◆ generate_LoadTrue()

void QQmlJSCompilePass::generate_LoadTrue ( )
inlineoverrideprotected

Definition at line 498 of file qqmljscompilepass_p.h.

◆ generate_LoadUndefined()

void QQmlJSCompilePass::generate_LoadUndefined ( )
inlineoverrideprotected

Definition at line 499 of file qqmljscompilepass_p.h.

◆ generate_LoadZero()

void QQmlJSCompilePass::generate_LoadZero ( )
inlineoverrideprotected

Definition at line 500 of file qqmljscompilepass_p.h.

◆ generate_Mod()

void QQmlJSCompilePass::generate_Mod ( int )
inlineoverrideprotected

Definition at line 501 of file qqmljscompilepass_p.h.

◆ generate_MoveConst()

void QQmlJSCompilePass::generate_MoveConst ( int ,
int  )
inlineoverrideprotected

Definition at line 502 of file qqmljscompilepass_p.h.

◆ generate_MoveReg()

void QQmlJSCompilePass::generate_MoveReg ( int ,
int  )
inlineoverrideprotected

Definition at line 503 of file qqmljscompilepass_p.h.

◆ generate_MoveRegExp()

void QQmlJSCompilePass::generate_MoveRegExp ( int ,
int  )
inlineoverrideprotected

Definition at line 504 of file qqmljscompilepass_p.h.

◆ generate_Mul()

void QQmlJSCompilePass::generate_Mul ( int )
inlineoverrideprotected

Definition at line 505 of file qqmljscompilepass_p.h.

◆ generate_PopContext()

void QQmlJSCompilePass::generate_PopContext ( )
inlineoverrideprotected

Definition at line 506 of file qqmljscompilepass_p.h.

◆ generate_PopScriptContext()

void QQmlJSCompilePass::generate_PopScriptContext ( )
inlineoverrideprotected

Definition at line 507 of file qqmljscompilepass_p.h.

◆ generate_PushBlockContext()

void QQmlJSCompilePass::generate_PushBlockContext ( int )
inlineoverrideprotected

Definition at line 508 of file qqmljscompilepass_p.h.

◆ generate_PushCatchContext()

void QQmlJSCompilePass::generate_PushCatchContext ( int ,
int  )
inlineoverrideprotected

Definition at line 509 of file qqmljscompilepass_p.h.

◆ generate_PushScriptContext()

void QQmlJSCompilePass::generate_PushScriptContext ( int )
inlineoverrideprotected

Definition at line 510 of file qqmljscompilepass_p.h.

◆ generate_PushWithContext()

void QQmlJSCompilePass::generate_PushWithContext ( )
inlineoverrideprotected

Definition at line 511 of file qqmljscompilepass_p.h.

◆ generate_Resume()

void QQmlJSCompilePass::generate_Resume ( int )
inlineoverrideprotected

Definition at line 512 of file qqmljscompilepass_p.h.

◆ generate_Ret()

void QQmlJSCompilePass::generate_Ret ( )
inlineoverrideprotected

Definition at line 513 of file qqmljscompilepass_p.h.

◆ generate_SetException()

void QQmlJSCompilePass::generate_SetException ( )
inlineoverrideprotected

Definition at line 514 of file qqmljscompilepass_p.h.

◆ generate_SetLookup()

void QQmlJSCompilePass::generate_SetLookup ( int ,
int  )
inlineoverrideprotected

Definition at line 515 of file qqmljscompilepass_p.h.

◆ generate_SetUnwindHandler()

void QQmlJSCompilePass::generate_SetUnwindHandler ( int )
inlineoverrideprotected

Definition at line 516 of file qqmljscompilepass_p.h.

◆ generate_Shl()

void QQmlJSCompilePass::generate_Shl ( int )
inlineoverrideprotected

Definition at line 517 of file qqmljscompilepass_p.h.

◆ generate_ShlConst()

void QQmlJSCompilePass::generate_ShlConst ( int )
inlineoverrideprotected

Definition at line 518 of file qqmljscompilepass_p.h.

◆ generate_Shr()

void QQmlJSCompilePass::generate_Shr ( int )
inlineoverrideprotected

Definition at line 519 of file qqmljscompilepass_p.h.

◆ generate_ShrConst()

void QQmlJSCompilePass::generate_ShrConst ( int )
inlineoverrideprotected

Definition at line 520 of file qqmljscompilepass_p.h.

◆ generate_StoreElement()

void QQmlJSCompilePass::generate_StoreElement ( int ,
int  )
inlineoverrideprotected

Definition at line 521 of file qqmljscompilepass_p.h.

◆ generate_StoreLocal()

void QQmlJSCompilePass::generate_StoreLocal ( int )
inlineoverrideprotected

Definition at line 522 of file qqmljscompilepass_p.h.

◆ generate_StoreNameSloppy()

void QQmlJSCompilePass::generate_StoreNameSloppy ( int )
inlineoverrideprotected

Definition at line 523 of file qqmljscompilepass_p.h.

◆ generate_StoreNameStrict()

void QQmlJSCompilePass::generate_StoreNameStrict ( int )
inlineoverrideprotected

Definition at line 524 of file qqmljscompilepass_p.h.

◆ generate_StoreProperty()

void QQmlJSCompilePass::generate_StoreProperty ( int ,
int  )
inlineoverrideprotected

Definition at line 525 of file qqmljscompilepass_p.h.

◆ generate_StoreReg()

void QQmlJSCompilePass::generate_StoreReg ( int )
inlineoverrideprotected

Definition at line 526 of file qqmljscompilepass_p.h.

◆ generate_StoreScopedLocal()

void QQmlJSCompilePass::generate_StoreScopedLocal ( int ,
int  )
inlineoverrideprotected

Definition at line 527 of file qqmljscompilepass_p.h.

◆ generate_StoreSuperProperty()

void QQmlJSCompilePass::generate_StoreSuperProperty ( int )
inlineoverrideprotected

Definition at line 528 of file qqmljscompilepass_p.h.

◆ generate_Sub()

void QQmlJSCompilePass::generate_Sub ( int )
inlineoverrideprotected

Definition at line 529 of file qqmljscompilepass_p.h.

◆ generate_TailCall()

void QQmlJSCompilePass::generate_TailCall ( int ,
int ,
int ,
int  )
inlineoverrideprotected

Definition at line 530 of file qqmljscompilepass_p.h.

◆ generate_ThrowException()

void QQmlJSCompilePass::generate_ThrowException ( )
inlineoverrideprotected

Definition at line 531 of file qqmljscompilepass_p.h.

◆ generate_ThrowOnNullOrUndefined()

void QQmlJSCompilePass::generate_ThrowOnNullOrUndefined ( )
inlineoverrideprotected

Definition at line 532 of file qqmljscompilepass_p.h.

◆ generate_ToObject()

void QQmlJSCompilePass::generate_ToObject ( )
inlineoverrideprotected

Definition at line 533 of file qqmljscompilepass_p.h.

◆ generate_TypeofName()

void QQmlJSCompilePass::generate_TypeofName ( int )
inlineoverrideprotected

Definition at line 534 of file qqmljscompilepass_p.h.

◆ generate_TypeofValue()

void QQmlJSCompilePass::generate_TypeofValue ( )
inlineoverrideprotected

Definition at line 535 of file qqmljscompilepass_p.h.

◆ generate_UCompl()

void QQmlJSCompilePass::generate_UCompl ( )
inlineoverrideprotected

Definition at line 536 of file qqmljscompilepass_p.h.

◆ generate_UMinus()

void QQmlJSCompilePass::generate_UMinus ( )
inlineoverrideprotected

Definition at line 537 of file qqmljscompilepass_p.h.

◆ generate_UNot()

void QQmlJSCompilePass::generate_UNot ( )
inlineoverrideprotected

Definition at line 538 of file qqmljscompilepass_p.h.

◆ generate_UnwindDispatch()

void QQmlJSCompilePass::generate_UnwindDispatch ( )
inlineoverrideprotected

Definition at line 542 of file qqmljscompilepass_p.h.

◆ generate_UnwindToLabel()

void QQmlJSCompilePass::generate_UnwindToLabel ( int ,
int  )
inlineoverrideprotected

Definition at line 543 of file qqmljscompilepass_p.h.

◆ generate_UPlus()

void QQmlJSCompilePass::generate_UPlus ( )
inlineoverrideprotected

Definition at line 539 of file qqmljscompilepass_p.h.

◆ generate_UShr()

void QQmlJSCompilePass::generate_UShr ( int )
inlineoverrideprotected

Definition at line 540 of file qqmljscompilepass_p.h.

◆ generate_UShrConst()

void QQmlJSCompilePass::generate_UShrConst ( int )
inlineoverrideprotected

Definition at line 541 of file qqmljscompilepass_p.h.

◆ generate_Yield()

void QQmlJSCompilePass::generate_Yield ( )
inlineoverrideprotected

Definition at line 544 of file qqmljscompilepass_p.h.

◆ generate_YieldStar()

void QQmlJSCompilePass::generate_YieldStar ( )
inlineoverrideprotected

Definition at line 545 of file qqmljscompilepass_p.h.

◆ initialState()

State QQmlJSCompilePass::initialState ( const Function * function)
inlineprotected

Definition at line 303 of file qqmljscompilepass_p.h.

References FirstArgument, firstRegisterIndex(), i, Q_ASSERT, QQmlJSCompilePass::State::registers, and state.

Referenced by QQmlJSShadowCheck::run(), QQmlJSCodeGenerator::run(), and QQmlJSTypePropagator::run().

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

◆ instructionManipulatesContext()

static bool QQmlJSCompilePass::instructionManipulatesContext ( QV4::Moth::Instr::Type type)
inlinestaticprotected

Definition at line 387 of file qqmljscompilepass_p.h.

Referenced by QQmlJSTypePropagator::startInstruction(), QQmlJSBasicBlocks::startInstruction(), and QQmlJSCodeGenerator::startInstruction().

+ Here is the caller graph for this function:

◆ isArgument()

bool QQmlJSCompilePass::isArgument ( int registerIndex) const
inlineprotected

Definition at line 291 of file qqmljscompilepass_p.h.

References FirstArgument, and firstRegisterIndex().

Referenced by argumentType(), and QQmlJSCodeGenerator::run().

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

◆ nextStateFromAnnotations()

State QQmlJSCompilePass::nextStateFromAnnotations ( const State & oldState,
const InstructionAnnotations & annotations )
inlineprotected

Definition at line 315 of file qqmljscompilepass_p.h.

References QSet< T >::begin(), QQmlJSCompilePass::State::changedRegister(), QQmlJSCompilePass::State::changedRegisterIndex(), QFlatMap< Key, T, Compare, KeyContainer, MappedContainer >::constEnd(), QV4::Moth::ByteCodeHandler::currentInstructionOffset(), QFlatMap< Key, T, Compare, KeyContainer, MappedContainer >::find(), QQmlJSCompilePass::State::hasSideEffects(), InvalidRegister, it, QQmlJSCompilePass::State::lookups, newState(), Q_ASSERT, and QQmlJSCompilePass::State::registers.

Referenced by QQmlJSCodeGenerator::startInstruction(), and QQmlJSShadowCheck::startInstruction().

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

◆ setError() [1/2]

void QQmlJSCompilePass::setError ( const QString & message)
inlineprotected

Definition at line 382 of file qqmljscompilepass_p.h.

References QV4::Moth::ByteCodeHandler::currentInstructionOffset(), and setError().

+ Here is the call graph for this function:

◆ setError() [2/2]

◆ sourceLocation()

QQmlJS::SourceLocation QQmlJSCompilePass::sourceLocation ( int instructionOffset) const
inlineprotected

Definition at line 356 of file qqmljscompilepass_p.h.

References QV4::Compiler::Context::SourceLocationTable::entries, item, m_function, Q_ASSERT, and QQmlJSCompilePass::Function::sourceLocations.

Referenced by currentSourceLocation(), and setError().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_annotations

◆ m_basicBlocks

◆ m_error

◆ m_function

◆ m_jsUnitGenerator

const QV4::Compiler::JSUnitGenerator* QQmlJSCompilePass::m_jsUnitGenerator = nullptr
protected

Definition at line 277 of file qqmljscompilepass_p.h.

Referenced by QQmlJSTypePropagator::generate_CallGlobalLookup(), QQmlJSTypePropagator::generate_CallName(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSShadowCheck::generate_CallProperty(), QQmlJSCodeGenerator::generate_CallPropertyLookup(), QQmlJSTypePropagator::generate_CallPropertyLookup(), QQmlJSShadowCheck::generate_CallPropertyLookup(), QQmlJSCodeGenerator::generate_CallQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_CallQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_DeadTemporalZoneCheck(), QQmlJSCodeGenerator::generate_DefineObjectLiteral(), QQmlJSTypePropagator::generate_DefineObjectLiteral(), QQmlJSShadowCheck::generate_GetLookup(), QQmlJSTypePropagator::generate_GetLookup(), QQmlJSTypePropagator::generate_GetOptionalLookup(), QQmlJSCodeGenerator::generate_LoadConst(), QQmlJSTypePropagator::generate_LoadConst(), QQmlJSTypePropagator::generate_LoadGlobalLookup(), QQmlJSTypePropagator::generate_LoadName(), QQmlJSShadowCheck::generate_LoadProperty(), QQmlJSTypePropagator::generate_LoadProperty(), QQmlJSCodeGenerator::generate_LoadQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_LoadQmlContextPropertyLookup(), QQmlJSCodeGenerator::generate_LoadRuntimeString(), QQmlJSCodeGenerator::generate_MoveConst(), QQmlJSTypePropagator::generate_MoveConst(), QQmlJSCodeGenerator::generate_SetLookup(), QQmlJSShadowCheck::generate_SetLookup(), QQmlJSTypePropagator::generate_SetLookup(), QQmlJSTypePropagator::generate_StoreNameCommon(), QQmlJSCodeGenerator::generate_StoreNameSloppy(), QQmlJSTypePropagator::generate_StoreProperty(), and QQmlJSShadowCheck::generate_StoreProperty().

◆ m_logger

◆ m_typeResolver

const QQmlJSTypeResolver* QQmlJSCompilePass::m_typeResolver = nullptr
protected

Definition at line 278 of file qqmljscompilepass_p.h.

Referenced by QQmlJSCodeGenerator::contentPointer(), QQmlJSCodeGenerator::contentType(), QQmlJSCodeGenerator::conversion(), QQmlJSCodeGenerator::convertContained(), QQmlJSCodeGenerator::convertStored(), QQmlJSCodeGenerator::generate_As(), QQmlJSTypePropagator::generate_As(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSCodeGenerator::generate_CallPropertyLookup(), QQmlJSCodeGenerator::generate_CallQmlContextPropertyLookup(), QQmlJSCodeGenerator::generate_CmpEqInt(), QQmlJSTypePropagator::generate_CmpEqInt(), QQmlJSCodeGenerator::generate_CmpEqNull(), QQmlJSTypePropagator::generate_CmpEqNull(), QQmlJSTypePropagator::generate_CmpIn(), QQmlJSCodeGenerator::generate_CmpNeInt(), QQmlJSTypePropagator::generate_CmpNeInt(), QQmlJSCodeGenerator::generate_CmpNeNull(), QQmlJSTypePropagator::generate_CmpNeNull(), QQmlJSCodeGenerator::generate_Construct(), QQmlJSTypePropagator::generate_Construct(), QQmlJSCodeGenerator::generate_ConvertThisToObject(), QQmlJSTypePropagator::generate_ConvertThisToObject(), QQmlJSTypePropagator::generate_DeadTemporalZoneCheck(), QQmlJSTypePropagator::generate_DefineArray(), QQmlJSCodeGenerator::generate_DefineObjectLiteral(), QQmlJSTypePropagator::generate_DefineObjectLiteral(), QQmlJSCodeGenerator::generate_Exp(), QQmlJSCodeGenerator::generate_GetIterator(), QQmlJSTypePropagator::generate_GetIterator(), QQmlJSCodeGenerator::generate_GetOptionalLookup(), QQmlJSTypePropagator::generate_InitializeBlockDeadTemporalZone(), QQmlJSCodeGenerator::generate_IteratorNext(), QQmlJSTypePropagator::generate_IteratorNext(), QQmlJSCodeGenerator::generate_JumpFalse(), QQmlJSTypePropagator::generate_JumpFalse(), QQmlJSCodeGenerator::generate_JumpTrue(), QQmlJSTypePropagator::generate_JumpTrue(), QQmlJSTypePropagator::generate_LoadClosure(), QQmlJSCodeGenerator::generate_LoadConst(), QQmlJSTypePropagator::generate_LoadConst(), QQmlJSCodeGenerator::generate_LoadElement(), QQmlJSTypePropagator::generate_LoadElement(), QQmlJSCodeGenerator::generate_LoadFalse(), QQmlJSTypePropagator::generate_LoadFalse(), QQmlJSCodeGenerator::generate_LoadInt(), QQmlJSTypePropagator::generate_LoadInt(), QQmlJSTypePropagator::generate_LoadLocal(), QQmlJSTypePropagator::generate_LoadName(), QQmlJSCodeGenerator::generate_LoadNull(), QQmlJSTypePropagator::generate_LoadNull(), QQmlJSCodeGenerator::generate_LoadQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_LoadQmlContextPropertyLookup(), QQmlJSCodeGenerator::generate_LoadRuntimeString(), QQmlJSTypePropagator::generate_LoadRuntimeString(), QQmlJSCodeGenerator::generate_LoadTrue(), QQmlJSTypePropagator::generate_LoadTrue(), QQmlJSCodeGenerator::generate_LoadUndefined(), QQmlJSTypePropagator::generate_LoadUndefined(), QQmlJSCodeGenerator::generate_LoadZero(), QQmlJSTypePropagator::generate_LoadZero(), QQmlJSCodeGenerator::generate_Mod(), QQmlJSCodeGenerator::generate_MoveConst(), QQmlJSTypePropagator::generate_MoveConst(), QQmlJSCodeGenerator::generate_Ret(), QQmlJSTypePropagator::generate_Ret(), QQmlJSCodeGenerator::generate_SetLookup(), QQmlJSCodeGenerator::generate_StoreElement(), QQmlJSTypePropagator::generate_StoreElement(), QQmlJSTypePropagator::generate_StoreNameCommon(), QQmlJSCodeGenerator::generate_StoreNameSloppy(), QQmlJSTypePropagator::generate_StoreProperty(), QQmlJSCodeGenerator::generate_ThrowException(), QQmlJSTypePropagator::generate_ThrowException(), QQmlJSTypePropagator::generate_TypeofName(), QQmlJSTypePropagator::generate_TypeofValue(), QQmlJSCodeGenerator::generateReturnError(), QQmlJSCodeGenerator::getLookupPreparation(), QQmlJSCodeGenerator::metaObject(), QQmlJSCodeGenerator::metaType(), QQmlJSCodeGenerator::run(), QQmlJSStorageGeneralizer::run(), QQmlJSCodeGenerator::setLookupPreparation(), QQmlJSCodeGenerator::shouldMoveRegister(), and QQmlJSCodeGenerator::startInstruction().


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