Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QV4::Compiler::Codegen::Reference Struct Reference

#include <qv4codegen_p.h>

Collaboration diagram for QV4::Compiler::Codegen::Reference:

Classes

union  [union].__unnamed0__

Public Types

enum  Type {
  Invalid , Accumulator , Super , SuperProperty ,
  StackSlot , ScopedLocal , Name , Member ,
  Subscript , Import , LastLValue = Import , Const
}

Public Member Functions

bool isLValue () const
 Reference (Codegen *cg, Type tt=Invalid)
 Reference (const QString &namename=QString())
 Reference (const Reference &)=default
 Reference (Reference &&)=default
Reference & operator= (const Reference &)=default
Reference & operator= (Reference &&)=default
bool operator== (const Reference &other) const
bool operator!= (const Reference &other) const
bool isValid () const
bool loadTriggersSideEffect () const
bool isConstant () const
bool isAccumulator () const
bool isSuper () const
bool isSuperProperty () const
bool isStackSlot () const
bool isRegister () const
RValue asRValue () const
Reference asLValue () const
Q_REQUIRED_RESULT Reference storeOnStack () const
void storeOnStack (int tempIndex) const
Q_REQUIRED_RESULT Reference storeRetainAccumulator () const
Reference storeConsumeAccumulator () const
Q_REQUIRED_RESULT Reference baseObject () const
bool storeWipesAccumulator () const
void loadInAccumulator () const
int nameAsIndex () const
Moth::StackSlot stackSlot () const
void tdzCheck () const
void checkTDZBeforeAssignment () const

Static Public Member Functions

static Reference fromAccumulator (Codegen *cg)
static Reference fromSuper (Codegen *cg)
static Reference fromStackSlot (Codegen *cg, int tempIndex=-1, bool isLocal=false)
static Reference fromScopedLocal (Codegen *cg, int indexindex, int scope)
static Reference fromImport (Codegen *cg, int indexindex)
static Reference fromName (Codegen *cg, const QString &namename)
static Reference fromMember (const Reference &baseRef, const QString &namename, QQmlJS::SourceLocation sourceLocation=QQmlJS::SourceLocation(), bool isOptional=false, std::vector< Moth::BytecodeGenerator::Jump > *optionalChainJumpsToPatch=nullptr)
static Reference fromSuperProperty (const Reference &property)
static Reference fromSubscript (const Reference &baseRef, const Reference &subscript)
static Reference fromConst (Codegen *cg, QV4::ReturnedValue constant)
static Reference fromThis (Codegen *cg)
static Q_REQUIRED_RESULT Reference storeConstOnStack (Codegen *cg, QV4::ReturnedValue constant)
static void storeConstOnStack (Codegen *cg, QV4::ReturnedValue constant, int stackSlot)

Public Attributes

enum QV4::Compiler::Codegen::Reference::Type type = Invalid
union  
QString name
Codegen * codegen = nullptr
quint32 isArgOrEval:1
quint32 isReadonly:1
quint32 isReferenceToConst:1
quint32 requiresTDZCheck:1
quint32 subscriptRequiresTDZCheck:1
quint32 stackSlotIsLocalOrArgument:1
quint32 isVolatile:1
quint32 global:1
quint32 qmlGlobal:1
quint32 throwsReferenceError:1
quint32 subscriptLoadedForCall:1
quint32 isOptional: 1
quint32 hasSavedCallBaseSlot: 1
QQmlJS::SourceLocation sourceLocation = QQmlJS::SourceLocation()
std::vector< Moth::BytecodeGenerator::Jump > * optionalChainJumpsToPatch = nullptr
int savedCallBaseSlot = -1
int savedCallPropertyNameIndex = -1

Detailed Description

Definition at line 170 of file qv4codegen_p.h.

Member Enumeration Documentation

◆ Type

Enumerator
Invalid 
Accumulator 
Super 
SuperProperty 
StackSlot 
ScopedLocal 
Name 
Member 
Subscript 
Import 
LastLValue 
Const 

Definition at line 171 of file qv4codegen_p.h.

Constructor & Destructor Documentation

◆ Reference() [1/4]

QV4::Compiler::Codegen::Reference::Reference ( Codegen * cg,
Type t = Invalid )
inline

Definition at line 188 of file qv4codegen_p.h.

◆ Reference() [2/4]

QV4::Compiler::Codegen::Reference::Reference ( const QString & name = QString())
inline

Definition at line 194 of file qv4codegen_p.h.

◆ Reference() [3/4]

QV4::Compiler::Codegen::Reference::Reference ( const Reference & )
default

◆ Reference() [4/4]

QV4::Compiler::Codegen::Reference::Reference ( Reference && )
default

Member Function Documentation

◆ asLValue()

Codegen::Reference Codegen::Reference::asLValue ( ) const

Definition at line 4554 of file qv4codegen.cpp.

◆ asRValue()

Codegen::RValue Codegen::Reference::asRValue ( ) const

Definition at line 4537 of file qv4codegen.cpp.

◆ baseObject()

Codegen::Reference Codegen::Reference::baseObject ( ) const

Definition at line 4588 of file qv4codegen.cpp.

◆ checkTDZBeforeAssignment()

void Codegen::Reference::checkTDZBeforeAssignment ( ) const

Definition at line 4670 of file qv4codegen.cpp.

◆ fromAccumulator()

Reference QV4::Compiler::Codegen::Reference::fromAccumulator ( Codegen * cg)
inlinestatic

Definition at line 242 of file qv4codegen_p.h.

◆ fromConst()

Reference QV4::Compiler::Codegen::Reference::fromConst ( Codegen * cg,
QV4::ReturnedValue constant )
inlinestatic

Definition at line 304 of file qv4codegen_p.h.

◆ fromImport()

Reference QV4::Compiler::Codegen::Reference::fromImport ( Codegen * cg,
int index )
inlinestatic

Definition at line 262 of file qv4codegen_p.h.

◆ fromMember()

Reference QV4::Compiler::Codegen::Reference::fromMember ( const Reference & baseRef,
const QString & name,
QQmlJS::SourceLocation sourceLocation = QQmlJS::SourceLocation(),
bool isOptional = false,
std::vector< Moth::BytecodeGenerator::Jump > * optionalChainJumpsToPatch = nullptr )
inlinestatic

Definition at line 273 of file qv4codegen_p.h.

◆ fromName()

Reference QV4::Compiler::Codegen::Reference::fromName ( Codegen * cg,
const QString & name )
inlinestatic

Definition at line 267 of file qv4codegen_p.h.

◆ fromScopedLocal()

Reference QV4::Compiler::Codegen::Reference::fromScopedLocal ( Codegen * cg,
int index,
int scope )
inlinestatic

Definition at line 256 of file qv4codegen_p.h.

◆ fromStackSlot()

Reference QV4::Compiler::Codegen::Reference::fromStackSlot ( Codegen * cg,
int tempIndex = -1,
bool isLocal = false )
inlinestatic

Definition at line 248 of file qv4codegen_p.h.

◆ fromSubscript()

Reference QV4::Compiler::Codegen::Reference::fromSubscript ( const Reference & baseRef,
const Reference & subscript )
inlinestatic

Definition at line 295 of file qv4codegen_p.h.

◆ fromSuper()

Reference QV4::Compiler::Codegen::Reference::fromSuper ( Codegen * cg)
inlinestatic

Definition at line 245 of file qv4codegen_p.h.

◆ fromSuperProperty()

Reference QV4::Compiler::Codegen::Reference::fromSuperProperty ( const Reference & property)
inlinestatic

Definition at line 288 of file qv4codegen_p.h.

◆ fromThis()

Reference QV4::Compiler::Codegen::Reference::fromThis ( Codegen * cg)
inlinestatic

Definition at line 310 of file qv4codegen_p.h.

◆ isAccumulator()

bool QV4::Compiler::Codegen::Reference::isAccumulator ( ) const
inline

Definition at line 234 of file qv4codegen_p.h.

◆ isConstant()

bool QV4::Compiler::Codegen::Reference::isConstant ( ) const
inline

Definition at line 233 of file qv4codegen_p.h.

◆ isLValue()

bool QV4::Compiler::Codegen::Reference::isLValue ( ) const
inline

Definition at line 186 of file qv4codegen_p.h.

◆ isRegister()

bool QV4::Compiler::Codegen::Reference::isRegister ( ) const
inline

Definition at line 238 of file qv4codegen_p.h.

◆ isStackSlot()

bool QV4::Compiler::Codegen::Reference::isStackSlot ( ) const
inline

Definition at line 237 of file qv4codegen_p.h.

◆ isSuper()

bool QV4::Compiler::Codegen::Reference::isSuper ( ) const
inline

Definition at line 235 of file qv4codegen_p.h.

◆ isSuperProperty()

bool QV4::Compiler::Codegen::Reference::isSuperProperty ( ) const
inline

Definition at line 236 of file qv4codegen_p.h.

◆ isValid()

bool QV4::Compiler::Codegen::Reference::isValid ( ) const
inline

Definition at line 221 of file qv4codegen_p.h.

◆ loadInAccumulator()

void Codegen::Reference::loadInAccumulator ( ) const

Definition at line 4798 of file qv4codegen.cpp.

◆ loadTriggersSideEffect()

bool QV4::Compiler::Codegen::Reference::loadTriggersSideEffect ( ) const
inline

Definition at line 222 of file qv4codegen_p.h.

◆ nameAsIndex()

int QV4::Compiler::Codegen::Reference::nameAsIndex ( ) const
inline

Definition at line 338 of file qv4codegen_p.h.

◆ operator!=()

bool QV4::Compiler::Codegen::Reference::operator!= ( const Reference & other) const
inline

Definition at line 218 of file qv4codegen_p.h.

◆ operator=() [1/2]

Reference & QV4::Compiler::Codegen::Reference::operator= ( const Reference & )
default

◆ operator=() [2/2]

Reference & QV4::Compiler::Codegen::Reference::operator= ( Reference && )
default

◆ operator==()

bool Codegen::Reference::operator== ( const Reference & other) const

Definition at line 4505 of file qv4codegen.cpp.

◆ stackSlot()

Moth::StackSlot QV4::Compiler::Codegen::Reference::stackSlot ( ) const
inline

Definition at line 343 of file qv4codegen_p.h.

◆ storeConstOnStack() [1/2]

Q_REQUIRED_RESULT Reference QV4::Compiler::Codegen::Reference::storeConstOnStack ( Codegen * cg,
QV4::ReturnedValue constant )
inlinestatic

Definition at line 322 of file qv4codegen_p.h.

◆ storeConstOnStack() [2/2]

void QV4::Compiler::Codegen::Reference::storeConstOnStack ( Codegen * cg,
QV4::ReturnedValue constant,
int stackSlot )
inlinestatic

Definition at line 325 of file qv4codegen_p.h.

◆ storeConsumeAccumulator()

Codegen::Reference Codegen::Reference::storeConsumeAccumulator ( ) const

Definition at line 4582 of file qv4codegen.cpp.

◆ storeOnStack() [1/2]

Codegen::Reference Codegen::Reference::storeOnStack ( ) const

Definition at line 4610 of file qv4codegen.cpp.

◆ storeOnStack() [2/2]

void Codegen::Reference::storeOnStack ( int tempIndex) const

Definition at line 4613 of file qv4codegen.cpp.

◆ storeRetainAccumulator()

Codegen::Reference Codegen::Reference::storeRetainAccumulator ( ) const

Definition at line 4681 of file qv4codegen.cpp.

◆ storeWipesAccumulator()

bool Codegen::Reference::storeWipesAccumulator ( ) const

Definition at line 4697 of file qv4codegen.cpp.

◆ tdzCheck()

void QV4::Compiler::Codegen::Reference::tdzCheck ( ) const
inline

Definition at line 349 of file qv4codegen_p.h.

Member Data Documentation

◆ @201165256340250247366272254000104204142224342154

◆ codegen

Codegen* QV4::Compiler::Codegen::Reference::codegen = nullptr

Definition at line 380 of file qv4codegen_p.h.

◆ global

quint32 QV4::Compiler::Codegen::Reference::global

Definition at line 389 of file qv4codegen_p.h.

◆ hasSavedCallBaseSlot

quint32 QV4::Compiler::Codegen::Reference::hasSavedCallBaseSlot

Definition at line 394 of file qv4codegen_p.h.

◆ isArgOrEval

quint32 QV4::Compiler::Codegen::Reference::isArgOrEval

Definition at line 382 of file qv4codegen_p.h.

◆ isOptional

quint32 QV4::Compiler::Codegen::Reference::isOptional

Definition at line 393 of file qv4codegen_p.h.

◆ isReadonly

quint32 QV4::Compiler::Codegen::Reference::isReadonly

Definition at line 383 of file qv4codegen_p.h.

◆ isReferenceToConst

quint32 QV4::Compiler::Codegen::Reference::isReferenceToConst

Definition at line 384 of file qv4codegen_p.h.

◆ isVolatile

quint32 QV4::Compiler::Codegen::Reference::isVolatile

Definition at line 388 of file qv4codegen_p.h.

◆ name

QString QV4::Compiler::Codegen::Reference::name

◆ optionalChainJumpsToPatch

std::vector<Moth::BytecodeGenerator::Jump>* QV4::Compiler::Codegen::Reference::optionalChainJumpsToPatch = nullptr

Definition at line 396 of file qv4codegen_p.h.

◆ qmlGlobal

quint32 QV4::Compiler::Codegen::Reference::qmlGlobal

Definition at line 390 of file qv4codegen_p.h.

◆ requiresTDZCheck

quint32 QV4::Compiler::Codegen::Reference::requiresTDZCheck

Definition at line 385 of file qv4codegen_p.h.

◆ savedCallBaseSlot

int QV4::Compiler::Codegen::Reference::savedCallBaseSlot = -1

Definition at line 397 of file qv4codegen_p.h.

◆ savedCallPropertyNameIndex

int QV4::Compiler::Codegen::Reference::savedCallPropertyNameIndex = -1

Definition at line 398 of file qv4codegen_p.h.

◆ sourceLocation

QQmlJS::SourceLocation QV4::Compiler::Codegen::Reference::sourceLocation = QQmlJS::SourceLocation()

Definition at line 395 of file qv4codegen_p.h.

◆ stackSlotIsLocalOrArgument

quint32 QV4::Compiler::Codegen::Reference::stackSlotIsLocalOrArgument

Definition at line 387 of file qv4codegen_p.h.

◆ subscriptLoadedForCall

quint32 QV4::Compiler::Codegen::Reference::subscriptLoadedForCall

Definition at line 392 of file qv4codegen_p.h.

◆ subscriptRequiresTDZCheck

quint32 QV4::Compiler::Codegen::Reference::subscriptRequiresTDZCheck

Definition at line 386 of file qv4codegen_p.h.

◆ throwsReferenceError

quint32 QV4::Compiler::Codegen::Reference::throwsReferenceError

Definition at line 391 of file qv4codegen_p.h.

◆ type

enum QV4::Compiler::Codegen::Reference::Type QV4::Compiler::Codegen::Reference::type = Invalid

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