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

#include <qv4codegen_p.h>

Inheritance diagram for QV4::Compiler::Codegen:
Collaboration diagram for QV4::Compiler::Codegen:

Classes

class  VolatileMemoryLocations
class  RValue
struct  Reference
struct  RegisterScope
struct  ObjectPropertyValue
class  Result
struct  Arguments
struct  OptionalChainState
class  TailCallBlocker
class  VolatileMemoryLocationScanner

Public Types

enum  ErrorType { NoError , SyntaxError , ReferenceError }

Public Member Functions

 Codegen (QV4::Compiler::JSUnitGenerator *jsUnitGenerator, bool strict, CodegenWarningInterface *iface=defaultCodegenWarningInterface(), bool storeSourceLocations=false)
void generateFromProgram (const QString &sourceCode, QQmlJS::AST::Program *ast, Module *module, ContextType contextType=ContextType::Global)
void generateFromModule (const QString &sourceCode, QQmlJS::AST::ESModule *ast, Module *module)
void generateFromModule (const Value &value, Module *module)
ContextenterBlock (QQmlJS::AST::Node *node)
int leaveBlock ()
int registerString (const QString &name)
int registerConstant (QV4::ReturnedValue v)
int registerGetterLookup (int nameIndex, JSUnitGenerator::LookupMode mode)
int registerSetterLookup (int nameIndex)
int registerGlobalGetterLookup (int nameIndex, JSUnitGenerator::LookupMode mode)
int registerQmlContextPropertyGetterLookup (int nameIndex, JSUnitGenerator::LookupMode mode)
int defineFunction (const QString &name, QQmlJS::AST::Node *ast, QQmlJS::AST::FormalParameterList *formals, QQmlJS::AST::StatementList *body)
ErrorType errorType () const
bool hasError () const
QQmlJS::DiagnosticMessage error () const
QUrl url () const
Reference binopHelper (QQmlJS::AST::BinaryExpression *ast, QSOperator::Op oper, Reference &left, Reference &right)
Reference jumpBinop (QSOperator::Op oper, Reference &left, Reference &right)
Arguments pushArgs (QQmlJS::AST::ArgumentList *args)
void handleCall (Reference &base, Arguments calldata, int slotForFunction, int slotForThisObject, bool optional=false)
Arguments pushTemplateArgs (QQmlJS::AST::TemplateLiteral *args)
bool handleTaggedTemplate (Reference base, QQmlJS::AST::TaggedTemplate *ast)
void createTemplateObject (QQmlJS::AST::TemplateLiteral *t)
void setUseFastLookups (bool b)
void handleTryCatch (QQmlJS::AST::TryStatement *ast)
void handleTryFinally (QQmlJS::AST::TryStatement *ast)
Reference referenceForName (const QString &name, bool lhs, const QQmlJS::SourceLocation &accessLocation=QQmlJS::SourceLocation())
QQmlRefPointer< QV4::CompiledData::CompilationUnitgenerateCompilationUnit (bool generateUnitData=true)
ContextcurrentContext () const
BytecodeGeneratorgenerator () const
void loadClosure (int index)
Modulemodule () const
BytecodeGenerator::Label returnLabel ()

Static Public Member Functions

static bool isNameGlobal (QAnyStringView name)
static void forEachGlobalName (qxp::function_ref< void(QLatin1StringView)> &&handler)
static QQmlRefPointer< QV4::CompiledData::CompilationUnitcompileModule (bool debugMode, const QString &url, const QString &sourceCode, const QDateTime &sourceTimeStamp, QList< QQmlJS::DiagnosticMessage > *diagnostics)
static const QV4::CompiledData::UnitgenerateNativeModuleUnitData (bool debugMode, const QString &url, const QV4::Value &value)

Protected Types

enum  Format { ex , cx , nx }
enum  UnaryOperation {
  UPlus , UMinus , PreIncrement , PreDecrement ,
  PostIncrement , PostDecrement , Not , Compl
}
using BytecodeGenerator = QV4::Moth::BytecodeGenerator
using Instruction = QV4::Moth::Instruction

Protected Member Functions

void enterContext (QQmlJS::AST::Node *node)
int leaveContext ()
void leaveLoop ()
Reference unop (UnaryOperation op, const Reference &expr)
void addCJump ()
void statement (QQmlJS::AST::Statement *ast)
void statement (QQmlJS::AST::ExpressionNode *ast)
void condition (QQmlJS::AST::ExpressionNode *ast, const BytecodeGenerator::Label *iftrue, const BytecodeGenerator::Label *iffalse, bool trueBlockFollowsCondition)
Reference expression (QQmlJS::AST::ExpressionNode *ast, const QString &name=QString())
void accept (QQmlJS::AST::Node *node)
void program (QQmlJS::AST::Program *ast)
void statementList (QQmlJS::AST::StatementList *ast)
void variableDeclaration (QQmlJS::AST::PatternElement *ast)
void variableDeclarationList (QQmlJS::AST::VariableDeclarationList *ast)
Reference targetForPatternElement (QQmlJS::AST::PatternElement *p)
void initializeAndDestructureBindingElement (QQmlJS::AST::PatternElement *e, const Reference &baseRef=Reference(), bool isDefinition=false)
void destructurePropertyList (const Reference &object, QQmlJS::AST::PatternPropertyList *bindingList, bool isDefinition=false)
void destructureElementList (const Reference &array, QQmlJS::AST::PatternElementList *bindingList, bool isDefinition=false)
void destructurePattern (QQmlJS::AST::Pattern *p, const Reference &rhs)
Reference referenceForPropertyName (const Codegen::Reference &object, QQmlJS::AST::PropertyName *name)
void emitReturn (const Reference &expr)
bool visit (QQmlJS::AST::ArgumentList *ast) override
bool visit (QQmlJS::AST::CaseBlock *ast) override
bool visit (QQmlJS::AST::CaseClause *ast) override
bool visit (QQmlJS::AST::CaseClauses *ast) override
bool visit (QQmlJS::AST::Catch *ast) override
bool visit (QQmlJS::AST::DefaultClause *ast) override
bool visit (QQmlJS::AST::Elision *ast) override
bool visit (QQmlJS::AST::Finally *ast) override
bool visit (QQmlJS::AST::FormalParameterList *ast) override
bool visit (QQmlJS::AST::Program *ast) override
bool visit (QQmlJS::AST::StatementList *ast) override
bool visit (QQmlJS::AST::UiArrayMemberList *ast) override
bool visit (QQmlJS::AST::UiImport *ast) override
bool visit (QQmlJS::AST::UiHeaderItemList *ast) override
bool visit (QQmlJS::AST::UiPragmaValueList *ast) override
bool visit (QQmlJS::AST::UiPragma *ast) override
bool visit (QQmlJS::AST::UiObjectInitializer *ast) override
bool visit (QQmlJS::AST::UiObjectMemberList *ast) override
bool visit (QQmlJS::AST::UiParameterList *ast) override
bool visit (QQmlJS::AST::UiProgram *ast) override
bool visit (QQmlJS::AST::UiQualifiedId *ast) override
bool visit (QQmlJS::AST::VariableDeclarationList *ast) override
bool visit (QQmlJS::AST::PatternElement *ast) override
bool visit (QQmlJS::AST::PatternElementList *ast) override
bool visit (QQmlJS::AST::PatternProperty *ast) override
bool visit (QQmlJS::AST::PatternPropertyList *ast) override
bool visit (QQmlJS::AST::ExportDeclaration *ast) override
bool visit (QQmlJS::AST::TypeAnnotation *ast) override
bool visit (QQmlJS::AST::ArrayPattern *ast) override
bool visit (QQmlJS::AST::ArrayMemberExpression *ast) override
bool visit (QQmlJS::AST::BinaryExpression *ast) override
bool visit (QQmlJS::AST::CallExpression *ast) override
void endVisit (QQmlJS::AST::CallExpression *ast) override
bool visit (QQmlJS::AST::CommaExpression *ast) override
bool visit (QQmlJS::AST::ConditionalExpression *ast) override
bool visit (QQmlJS::AST::DeleteExpression *ast) override
void endVisit (QQmlJS::AST::DeleteExpression *ast) override
bool visit (QQmlJS::AST::FalseLiteral *ast) override
bool visit (QQmlJS::AST::SuperLiteral *ast) override
bool visit (QQmlJS::AST::FieldMemberExpression *ast) override
void endVisit (QQmlJS::AST::FieldMemberExpression *ast) override
bool visit (QQmlJS::AST::TaggedTemplate *ast) override
bool visit (QQmlJS::AST::FunctionExpression *ast) override
bool visit (QQmlJS::AST::IdentifierExpression *ast) override
bool visit (QQmlJS::AST::NestedExpression *ast) override
bool visit (QQmlJS::AST::NewExpression *ast) override
bool visit (QQmlJS::AST::NewMemberExpression *ast) override
bool visit (QQmlJS::AST::NotExpression *ast) override
bool visit (QQmlJS::AST::NullExpression *ast) override
bool visit (QQmlJS::AST::NumericLiteral *ast) override
bool visit (QQmlJS::AST::ObjectPattern *ast) override
bool visit (QQmlJS::AST::PostDecrementExpression *ast) override
bool visit (QQmlJS::AST::PostIncrementExpression *ast) override
bool visit (QQmlJS::AST::PreDecrementExpression *ast) override
bool visit (QQmlJS::AST::PreIncrementExpression *ast) override
bool visit (QQmlJS::AST::RegExpLiteral *ast) override
bool visit (QQmlJS::AST::StringLiteral *ast) override
bool visit (QQmlJS::AST::TemplateLiteral *ast) override
bool visit (QQmlJS::AST::ThisExpression *ast) override
bool visit (QQmlJS::AST::TildeExpression *ast) override
bool visit (QQmlJS::AST::TrueLiteral *ast) override
bool visit (QQmlJS::AST::TypeOfExpression *ast) override
bool visit (QQmlJS::AST::UnaryMinusExpression *ast) override
bool visit (QQmlJS::AST::UnaryPlusExpression *ast) override
bool visit (QQmlJS::AST::VoidExpression *ast) override
bool visit (QQmlJS::AST::FunctionDeclaration *ast) override
bool visit (QQmlJS::AST::YieldExpression *ast) override
bool visit (QQmlJS::AST::ClassExpression *ast) override
bool visit (QQmlJS::AST::ClassDeclaration *ast) override
bool visit (QQmlJS::AST::Block *ast) override
bool visit (QQmlJS::AST::BreakStatement *ast) override
bool visit (QQmlJS::AST::ContinueStatement *ast) override
bool visit (QQmlJS::AST::DebuggerStatement *ast) override
bool visit (QQmlJS::AST::DoWhileStatement *ast) override
bool visit (QQmlJS::AST::EmptyStatement *ast) override
bool visit (QQmlJS::AST::ExpressionStatement *ast) override
bool visit (QQmlJS::AST::ForEachStatement *ast) override
bool visit (QQmlJS::AST::ForStatement *ast) override
bool visit (QQmlJS::AST::IfStatement *ast) override
bool visit (QQmlJS::AST::LabelledStatement *ast) override
bool visit (QQmlJS::AST::ReturnStatement *ast) override
bool visit (QQmlJS::AST::SwitchStatement *ast) override
bool visit (QQmlJS::AST::ThrowStatement *ast) override
bool visit (QQmlJS::AST::TryStatement *ast) override
bool visit (QQmlJS::AST::VariableStatement *ast) override
bool visit (QQmlJS::AST::WhileStatement *ast) override
bool visit (QQmlJS::AST::WithStatement *ast) override
bool visit (QQmlJS::AST::UiArrayBinding *ast) override
bool visit (QQmlJS::AST::UiObjectBinding *ast) override
bool visit (QQmlJS::AST::UiObjectDefinition *ast) override
bool visit (QQmlJS::AST::UiPublicMember *ast) override
bool visit (QQmlJS::AST::UiScriptBinding *ast) override
bool visit (QQmlJS::AST::UiSourceElement *ast) override
bool throwSyntaxErrorOnEvalOrArgumentsInStrictMode (const Reference &r, const QQmlJS::SourceLocation &loc)
virtual void throwSyntaxError (const QQmlJS::SourceLocation &loc, const QString &detail)
virtual void throwReferenceError (const QQmlJS::SourceLocation &loc, const QString &detail)
void throwRecursionDepthError () override
void setExprResult (const Reference &result)
void setExprResult (Reference &&result)
Reference exprResult () const
void clearExprResultName ()
bool exprAccept (Format f)
const ResultcurrentExpr () const
void pushExpr (Result &&expr)
void pushExpr (const Result &expr)
void pushExpr (const QString &name=QString())
Result popExpr ()
Reference popResult ()
Protected Member Functions inherited from QQmlJS::AST::Visitor
 Visitor (quint16 parentRecursionDepth=0)
bool preVisit (Node *) override
void postVisit (Node *) override
Protected Member Functions inherited from QQmlJS::AST::BaseVisitor
 BaseVisitor (quint16 parentRecursionDepth=0)
virtual ~BaseVisitor ()
quint16 recursionDepth () const

Protected Attributes

std::vector< Resultm_expressions
VolatileMemoryLocations _volatileMemoryLocations
Module_module
int _returnAddress
Context_context
Context_functionContext = nullptr
QQmlJS::AST::LabelledStatement_labelledStatement
QV4::Compiler::JSUnitGeneratorjsUnitGenerator
BytecodeGeneratorbytecodeGenerator = nullptr
Moth::BytecodeGenerator::Label_returnLabel = nullptr
bool _strictMode
bool useFastLookups = true
bool requiresReturnValue = false
bool insideSwitch = false
bool inFormalParameterList = false
bool functionEndsWithReturn = false
bool _tailCallsAreAllowed = true
bool storeSourceLocations = false
QSet< QQmlJS::AST::Node * > m_seenOptionalChainNodes
std::stack< OptionalChainStatem_optionalChainsStates
ControlFlowcontrolFlow = nullptr
bool _fileNameIsUrl
ErrorType _errorType = NoError
QQmlJS::DiagnosticMessage _error
CodegenWarningInterface_interface
Protected Attributes inherited from QQmlJS::AST::BaseVisitor
quint16 m_recursionDepth = 0

Friends

class ScanFunctions
struct ControlFlow
struct ControlFlowCatch
struct ControlFlowFinally

Detailed Description

Definition at line 72 of file qv4codegen_p.h.

Member Typedef Documentation

◆ BytecodeGenerator

◆ Instruction

Definition at line 76 of file qv4codegen_p.h.

Member Enumeration Documentation

◆ ErrorType

Enumerator
NoError 
SyntaxError 
ReferenceError 

Definition at line 709 of file qv4codegen_p.h.

◆ Format

Enumerator
ex 
cx 
nx 

Definition at line 423 of file qv4codegen_p.h.

◆ UnaryOperation

Enumerator
UPlus 
UMinus 
PreIncrement 
PreDecrement 
PostIncrement 
PostDecrement 
Not 
Compl 

Definition at line 511 of file qv4codegen_p.h.

Constructor & Destructor Documentation

◆ Codegen()

Codegen::Codegen ( QV4::Compiler::JSUnitGenerator * jsUnitGenerator,
bool strict,
CodegenWarningInterface * iface = defaultCodegenWarningInterface(),
bool storeSourceLocations = false )

Definition at line 103 of file qv4codegen.cpp.

Member Function Documentation

◆ accept()

void QV4::Compiler::Codegen::accept ( QQmlJS::AST::Node * node)
inlineprotected

Definition at line 573 of file qv4codegen_p.h.

◆ addCJump()

void Codegen::addCJump ( )
protected

Definition at line 439 of file qv4codegen.cpp.

◆ binopHelper()

Codegen::Reference Codegen::binopHelper ( QQmlJS::AST::BinaryExpression * ast,
QSOperator::Op oper,
Reference & left,
Reference & right )

Definition at line 1631 of file qv4codegen.cpp.

◆ clearExprResultName()

void QV4::Compiler::Codegen::clearExprResultName ( )
inlineprotected

Definition at line 772 of file qv4codegen_p.h.

◆ compileModule()

QQmlRefPointer< QV4::CompiledData::CompilationUnit > Codegen::compileModule ( bool debugMode,
const QString & url,
const QString & sourceCode,
const QDateTime & sourceTimeStamp,
QList< QQmlJS::DiagnosticMessage > * diagnostics )
static

Definition at line 4216 of file qv4codegen.cpp.

◆ condition()

void Codegen::condition ( QQmlJS::AST::ExpressionNode * ast,
const BytecodeGenerator::Label * iftrue,
const BytecodeGenerator::Label * iffalse,
bool trueBlockFollowsCondition )
protected

Definition at line 483 of file qv4codegen.cpp.

◆ createTemplateObject()

void Codegen::createTemplateObject ( QQmlJS::AST::TemplateLiteral * t)

Definition at line 2648 of file qv4codegen.cpp.

◆ currentContext()

Context * QV4::Compiler::Codegen::currentContext ( ) const
inline

Definition at line 750 of file qv4codegen_p.h.

◆ currentExpr()

const Result & QV4::Compiler::Codegen::currentExpr ( ) const
inlineprotected

Definition at line 776 of file qv4codegen_p.h.

◆ defineFunction()

int Codegen::defineFunction ( const QString & name,
QQmlJS::AST::Node * ast,
QQmlJS::AST::FormalParameterList * formals,
QQmlJS::AST::StatementList * body )

Definition at line 3379 of file qv4codegen.cpp.

◆ destructureElementList()

void Codegen::destructureElementList ( const Reference & array,
QQmlJS::AST::PatternElementList * bindingList,
bool isDefinition = false )
protected

Definition at line 767 of file qv4codegen.cpp.

◆ destructurePattern()

void Codegen::destructurePattern ( QQmlJS::AST::Pattern * p,
const Reference & rhs )
protected

Definition at line 855 of file qv4codegen.cpp.

◆ destructurePropertyList()

void Codegen::destructurePropertyList ( const Reference & object,
QQmlJS::AST::PatternPropertyList * bindingList,
bool isDefinition = false )
protected

Definition at line 747 of file qv4codegen.cpp.

◆ emitReturn()

void Codegen::emitReturn ( const Reference & expr)
protected

Definition at line 3878 of file qv4codegen.cpp.

◆ endVisit() [1/3]

void Codegen::endVisit ( QQmlJS::AST::CallExpression * ast)
overrideprotected

Definition at line 2123 of file qv4codegen.cpp.

◆ endVisit() [2/3]

void Codegen::endVisit ( QQmlJS::AST::DeleteExpression * ast)
overrideprotected

Definition at line 2423 of file qv4codegen.cpp.

◆ endVisit() [3/3]

void Codegen::endVisit ( QQmlJS::AST::FieldMemberExpression * ast)
overrideprotected

Definition at line 2594 of file qv4codegen.cpp.

◆ enterBlock()

Context * Codegen::enterBlock ( QQmlJS::AST::Node * node)

Definition at line 315 of file qv4codegen.cpp.

◆ enterContext()

void Codegen::enterContext ( QQmlJS::AST::Node * node)
protected

Definition at line 301 of file qv4codegen.cpp.

◆ error()

QQmlJS::DiagnosticMessage Codegen::error ( ) const

Definition at line 4202 of file qv4codegen.cpp.

◆ errorType()

ErrorType QV4::Compiler::Codegen::errorType ( ) const
inline

Definition at line 715 of file qv4codegen_p.h.

◆ exprAccept()

bool QV4::Compiler::Codegen::exprAccept ( Format f)
inlineprotected

Definition at line 774 of file qv4codegen_p.h.

◆ expression()

Reference QV4::Compiler::Codegen::expression ( QQmlJS::AST::ExpressionNode * ast,
const QString & name = QString() )
inlineprotected

Definition at line 563 of file qv4codegen_p.h.

◆ exprResult()

Reference QV4::Compiler::Codegen::exprResult ( ) const
inlineprotected

Definition at line 771 of file qv4codegen_p.h.

◆ forEachGlobalName()

void Codegen::forEachGlobalName ( qxp::function_ref< void(QLatin1StringView)> && handler)
static

Definition at line 194 of file qv4codegen.cpp.

◆ generateCompilationUnit()

QQmlRefPointer< QV4::CompiledData::CompilationUnit > Codegen::generateCompilationUnit ( bool generateUnitData = true)

Definition at line 4207 of file qv4codegen.cpp.

◆ generateFromModule() [1/2]

void Codegen::generateFromModule ( const QString & sourceCode,
QQmlJS::AST::ESModule * ast,
Module * module )

Definition at line 217 of file qv4codegen.cpp.

◆ generateFromModule() [2/2]

void Codegen::generateFromModule ( const Value & value,
Module * module )

Definition at line 255 of file qv4codegen.cpp.

◆ generateFromProgram()

void Codegen::generateFromProgram ( const QString & sourceCode,
QQmlJS::AST::Program * ast,
Module * module,
ContextType contextType = ContextType::Global )

Definition at line 200 of file qv4codegen.cpp.

◆ generateNativeModuleUnitData()

const QV4::CompiledData::Unit * Codegen::generateNativeModuleUnitData ( bool debugMode,
const QString & url,
const QV4::Value & value )
static

Definition at line 4258 of file qv4codegen.cpp.

◆ generator()

BytecodeGenerator * QV4::Compiler::Codegen::generator ( ) const
inline

Definition at line 751 of file qv4codegen_p.h.

◆ handleCall()

void Codegen::handleCall ( Reference & base,
Arguments calldata,
int slotForFunction,
int slotForThisObject,
bool optional = false )

Definition at line 2128 of file qv4codegen.cpp.

◆ handleTaggedTemplate()

bool Codegen::handleTaggedTemplate ( Reference base,
QQmlJS::AST::TaggedTemplate * ast )

Definition at line 2608 of file qv4codegen.cpp.

◆ handleTryCatch()

void Codegen::handleTryCatch ( QQmlJS::AST::TryStatement * ast)

Definition at line 4019 of file qv4codegen.cpp.

◆ handleTryFinally()

void Codegen::handleTryFinally ( QQmlJS::AST::TryStatement * ast)

Definition at line 4031 of file qv4codegen.cpp.

◆ hasError()

bool QV4::Compiler::Codegen::hasError ( ) const
inline

Definition at line 716 of file qv4codegen_p.h.

◆ initializeAndDestructureBindingElement()

void Codegen::initializeAndDestructureBindingElement ( QQmlJS::AST::PatternElement * e,
const Reference & baseRef = Reference(),
bool isDefinition = false )
protected

Definition at line 663 of file qv4codegen.cpp.

◆ isNameGlobal()

bool Codegen::isNameGlobal ( QAnyStringView name)
static

Definition at line 189 of file qv4codegen.cpp.

◆ jumpBinop()

Codegen::Reference Codegen::jumpBinop ( QSOperator::Op oper,
Reference & left,
Reference & right )

Definition at line 1902 of file qv4codegen.cpp.

◆ leaveBlock()

int QV4::Compiler::Codegen::leaveBlock ( )
inline

Definition at line 507 of file qv4codegen_p.h.

◆ leaveContext()

int Codegen::leaveContext ( )
protected

Definition at line 307 of file qv4codegen.cpp.

◆ leaveLoop()

void QV4::Compiler::Codegen::leaveLoop ( )
protected

◆ loadClosure()

void Codegen::loadClosure ( int index)

Definition at line 2753 of file qv4codegen.cpp.

◆ module()

Module * QV4::Compiler::Codegen::module ( ) const
inline

Definition at line 755 of file qv4codegen_p.h.

◆ popExpr()

Result QV4::Compiler::Codegen::popExpr ( )
inlineprotected

Definition at line 782 of file qv4codegen_p.h.

◆ popResult()

Reference QV4::Compiler::Codegen::popResult ( )
inlineprotected

Definition at line 789 of file qv4codegen_p.h.

◆ program()

void Codegen::program ( QQmlJS::AST::Program * ast)
protected

Definition at line 512 of file qv4codegen.cpp.

◆ pushArgs()

Codegen::Arguments Codegen::pushArgs ( QQmlJS::AST::ArgumentList * args)

Definition at line 2224 of file qv4codegen.cpp.

◆ pushExpr() [1/3]

void QV4::Compiler::Codegen::pushExpr ( const QString & name = QString())
inlineprotected

Definition at line 780 of file qv4codegen_p.h.

◆ pushExpr() [2/3]

void QV4::Compiler::Codegen::pushExpr ( const Result & expr)
inlineprotected

Definition at line 779 of file qv4codegen_p.h.

◆ pushExpr() [3/3]

void QV4::Compiler::Codegen::pushExpr ( Result && expr)
inlineprotected

Definition at line 778 of file qv4codegen_p.h.

◆ pushTemplateArgs()

Codegen::Arguments Codegen::pushTemplateArgs ( QQmlJS::AST::TemplateLiteral * args)

Definition at line 2267 of file qv4codegen.cpp.

◆ referenceForName()

Codegen::Reference Codegen::referenceForName ( const QString & name,
bool lhs,
const QQmlJS::SourceLocation & accessLocation = QQmlJS::SourceLocation() )

Definition at line 2682 of file qv4codegen.cpp.

◆ referenceForPropertyName()

Codegen::Reference Codegen::referenceForPropertyName ( const Codegen::Reference & object,
QQmlJS::AST::PropertyName * name )
protected

Definition at line 730 of file qv4codegen.cpp.

◆ registerConstant()

int QV4::Compiler::Codegen::registerConstant ( QV4::ReturnedValue v)
inline

Definition at line 530 of file qv4codegen_p.h.

◆ registerGetterLookup()

int QV4::Compiler::Codegen::registerGetterLookup ( int nameIndex,
JSUnitGenerator::LookupMode mode )
inline

Definition at line 534 of file qv4codegen_p.h.

◆ registerGlobalGetterLookup()

int QV4::Compiler::Codegen::registerGlobalGetterLookup ( int nameIndex,
JSUnitGenerator::LookupMode mode )
inline

Definition at line 542 of file qv4codegen_p.h.

◆ registerQmlContextPropertyGetterLookup()

int QV4::Compiler::Codegen::registerQmlContextPropertyGetterLookup ( int nameIndex,
JSUnitGenerator::LookupMode mode )
inline

Definition at line 546 of file qv4codegen_p.h.

◆ registerSetterLookup()

int QV4::Compiler::Codegen::registerSetterLookup ( int nameIndex)
inline

Definition at line 538 of file qv4codegen_p.h.

◆ registerString()

int QV4::Compiler::Codegen::registerString ( const QString & name)
inline

Definition at line 527 of file qv4codegen_p.h.

◆ returnLabel()

BytecodeGenerator::Label QV4::Compiler::Codegen::returnLabel ( )
inline

Definition at line 757 of file qv4codegen_p.h.

◆ setExprResult() [1/2]

void QV4::Compiler::Codegen::setExprResult ( const Reference & result)
inlineprotected

Definition at line 769 of file qv4codegen_p.h.

◆ setExprResult() [2/2]

void QV4::Compiler::Codegen::setExprResult ( Reference && result)
inlineprotected

Definition at line 770 of file qv4codegen_p.h.

◆ setUseFastLookups()

void QV4::Compiler::Codegen::setUseFastLookups ( bool b)
inline

Definition at line 731 of file qv4codegen_p.h.

◆ statement() [1/2]

void Codegen::statement ( QQmlJS::AST::ExpressionNode * ast)
protected

Definition at line 459 of file qv4codegen.cpp.

◆ statement() [2/2]

void Codegen::statement ( QQmlJS::AST::Statement * ast)
protected

Definition at line 446 of file qv4codegen.cpp.

◆ statementList()

void Codegen::statementList ( QQmlJS::AST::StatementList * ast)
protected

Definition at line 576 of file qv4codegen.cpp.

◆ targetForPatternElement()

Codegen::Reference Codegen::targetForPatternElement ( QQmlJS::AST::PatternElement * p)
protected

Definition at line 646 of file qv4codegen.cpp.

◆ throwRecursionDepthError()

void QV4::Compiler::Codegen::throwRecursionDepthError ( )
inlineoverrideprotectedvirtual

Implements QQmlJS::AST::BaseVisitor.

Definition at line 702 of file qv4codegen_p.h.

◆ throwReferenceError()

void Codegen::throwReferenceError ( const QQmlJS::SourceLocation & loc,
const QString & detail )
protectedvirtual

Reimplemented in QV4::RuntimeCodegen.

Definition at line 4197 of file qv4codegen.cpp.

◆ throwSyntaxError()

void Codegen::throwSyntaxError ( const QQmlJS::SourceLocation & loc,
const QString & detail )
protectedvirtual

Reimplemented in QV4::RuntimeCodegen.

Definition at line 4192 of file qv4codegen.cpp.

◆ throwSyntaxErrorOnEvalOrArgumentsInStrictMode()

bool Codegen::throwSyntaxErrorOnEvalOrArgumentsInStrictMode ( const Reference & r,
const QQmlJS::SourceLocation & loc )
protected

Definition at line 4164 of file qv4codegen.cpp.

◆ unop()

Codegen::Reference Codegen::unop ( UnaryOperation op,
const Reference & expr )
protected

Definition at line 321 of file qv4codegen.cpp.

◆ url()

QUrl Codegen::url ( ) const

Definition at line 4384 of file qv4codegen.cpp.

◆ variableDeclaration()

void Codegen::variableDeclaration ( QQmlJS::AST::PatternElement * ast)
protected

Definition at line 623 of file qv4codegen.cpp.

◆ variableDeclarationList()

void Codegen::variableDeclarationList ( QQmlJS::AST::VariableDeclarationList * ast)
protected

Definition at line 639 of file qv4codegen.cpp.

◆ visit() [1/90]

bool Codegen::visit ( QQmlJS::AST::ArgumentList * ast)
overrideprotected

Definition at line 867 of file qv4codegen.cpp.

◆ visit() [2/90]

bool Codegen::visit ( QQmlJS::AST::ArrayMemberExpression * ast)
overrideprotected

Definition at line 1319 of file qv4codegen.cpp.

◆ visit() [3/90]

bool Codegen::visit ( QQmlJS::AST::ArrayPattern * ast)
overrideprotected

Definition at line 1161 of file qv4codegen.cpp.

◆ visit() [4/90]

bool Codegen::visit ( QQmlJS::AST::BinaryExpression * ast)
overrideprotected

Definition at line 1398 of file qv4codegen.cpp.

◆ visit() [5/90]

bool Codegen::visit ( QQmlJS::AST::Block * ast)
overrideprotected

Definition at line 3534 of file qv4codegen.cpp.

◆ visit() [6/90]

bool Codegen::visit ( QQmlJS::AST::BreakStatement * ast)
overrideprotected

Definition at line 3546 of file qv4codegen.cpp.

◆ visit() [7/90]

bool Codegen::visit ( QQmlJS::AST::CallExpression * ast)
overrideprotected

Definition at line 2022 of file qv4codegen.cpp.

◆ visit() [8/90]

bool Codegen::visit ( QQmlJS::AST::CaseBlock * ast)
overrideprotected

Definition at line 872 of file qv4codegen.cpp.

◆ visit() [9/90]

bool Codegen::visit ( QQmlJS::AST::CaseClause * ast)
overrideprotected

Definition at line 877 of file qv4codegen.cpp.

◆ visit() [10/90]

bool Codegen::visit ( QQmlJS::AST::CaseClauses * ast)
overrideprotected

Definition at line 882 of file qv4codegen.cpp.

◆ visit() [11/90]

bool Codegen::visit ( QQmlJS::AST::Catch * ast)
overrideprotected

Definition at line 887 of file qv4codegen.cpp.

◆ visit() [12/90]

bool Codegen::visit ( QQmlJS::AST::ClassDeclaration * ast)
overrideprotected

Definition at line 1139 of file qv4codegen.cpp.

◆ visit() [13/90]

bool Codegen::visit ( QQmlJS::AST::ClassExpression * ast)
overrideprotected

Definition at line 1033 of file qv4codegen.cpp.

◆ visit() [14/90]

bool Codegen::visit ( QQmlJS::AST::CommaExpression * ast)
overrideprotected

Definition at line 1148 of file qv4codegen.cpp.

◆ visit() [15/90]

bool Codegen::visit ( QQmlJS::AST::ConditionalExpression * ast)
overrideprotected

Definition at line 2291 of file qv4codegen.cpp.

◆ visit() [16/90]

bool Codegen::visit ( QQmlJS::AST::ContinueStatement * ast)
overrideprotected

Definition at line 3571 of file qv4codegen.cpp.

◆ visit() [17/90]

bool Codegen::visit ( QQmlJS::AST::DebuggerStatement * ast)
overrideprotected

Definition at line 3598 of file qv4codegen.cpp.

◆ visit() [18/90]

bool Codegen::visit ( QQmlJS::AST::DefaultClause * ast)
overrideprotected

Definition at line 892 of file qv4codegen.cpp.

◆ visit() [19/90]

bool Codegen::visit ( QQmlJS::AST::DeleteExpression * ast)
overrideprotected

Definition at line 2326 of file qv4codegen.cpp.

◆ visit() [20/90]

bool Codegen::visit ( QQmlJS::AST::DoWhileStatement * ast)
overrideprotected

Definition at line 3604 of file qv4codegen.cpp.

◆ visit() [21/90]

bool Codegen::visit ( QQmlJS::AST::Elision * ast)
overrideprotected

Definition at line 897 of file qv4codegen.cpp.

◆ visit() [22/90]

bool Codegen::visit ( QQmlJS::AST::EmptyStatement * ast)
overrideprotected

Definition at line 3644 of file qv4codegen.cpp.

◆ visit() [23/90]

bool Codegen::visit ( QQmlJS::AST::ExportDeclaration * ast)
overrideprotected

Definition at line 937 of file qv4codegen.cpp.

◆ visit() [24/90]

bool Codegen::visit ( QQmlJS::AST::ExpressionStatement * ast)
overrideprotected

Definition at line 3649 of file qv4codegen.cpp.

◆ visit() [25/90]

bool Codegen::visit ( QQmlJS::AST::FalseLiteral * ast)
overrideprotected

Definition at line 2427 of file qv4codegen.cpp.

◆ visit() [26/90]

bool Codegen::visit ( QQmlJS::AST::FieldMemberExpression * ast)
overrideprotected

Definition at line 2545 of file qv4codegen.cpp.

◆ visit() [27/90]

bool Codegen::visit ( QQmlJS::AST::Finally * ast)
overrideprotected

Definition at line 902 of file qv4codegen.cpp.

◆ visit() [28/90]

bool Codegen::visit ( QQmlJS::AST::ForEachStatement * ast)
overrideprotected

Definition at line 3668 of file qv4codegen.cpp.

◆ visit() [29/90]

bool Codegen::visit ( QQmlJS::AST::FormalParameterList * ast)
overrideprotected

Definition at line 907 of file qv4codegen.cpp.

◆ visit() [30/90]

bool Codegen::visit ( QQmlJS::AST::ForStatement * ast)
overrideprotected

Definition at line 3767 of file qv4codegen.cpp.

◆ visit() [31/90]

bool Codegen::visit ( QQmlJS::AST::FunctionDeclaration * ast)
overrideprotected

Definition at line 3259 of file qv4codegen.cpp.

◆ visit() [32/90]

bool Codegen::visit ( QQmlJS::AST::FunctionExpression * ast)
overrideprotected

Definition at line 2665 of file qv4codegen.cpp.

◆ visit() [33/90]

bool Codegen::visit ( QQmlJS::AST::IdentifierExpression * ast)
overrideprotected

Definition at line 2764 of file qv4codegen.cpp.

◆ visit() [34/90]

bool Codegen::visit ( QQmlJS::AST::IfStatement * ast)
overrideprotected

Definition at line 3811 of file qv4codegen.cpp.

◆ visit() [35/90]

bool Codegen::visit ( QQmlJS::AST::LabelledStatement * ast)
overrideprotected

Definition at line 3843 of file qv4codegen.cpp.

◆ visit() [36/90]

bool Codegen::visit ( QQmlJS::AST::NestedExpression * ast)
overrideprotected

Definition at line 2773 of file qv4codegen.cpp.

◆ visit() [37/90]

bool Codegen::visit ( QQmlJS::AST::NewExpression * ast)
overrideprotected

Definition at line 2822 of file qv4codegen.cpp.

◆ visit() [38/90]

bool Codegen::visit ( QQmlJS::AST::NewMemberExpression * ast)
overrideprotected

Definition at line 2842 of file qv4codegen.cpp.

◆ visit() [39/90]

bool Codegen::visit ( QQmlJS::AST::NotExpression * ast)
overrideprotected

Definition at line 2862 of file qv4codegen.cpp.

◆ visit() [40/90]

bool Codegen::visit ( QQmlJS::AST::NullExpression * ast)
overrideprotected

Definition at line 2872 of file qv4codegen.cpp.

◆ visit() [41/90]

bool Codegen::visit ( QQmlJS::AST::NumericLiteral * ast)
overrideprotected

Definition at line 2885 of file qv4codegen.cpp.

◆ visit() [42/90]

bool Codegen::visit ( QQmlJS::AST::ObjectPattern * ast)
overrideprotected

Definition at line 2894 of file qv4codegen.cpp.

◆ visit() [43/90]

bool Codegen::visit ( QQmlJS::AST::PatternElement * ast)
overrideprotected

Definition at line 917 of file qv4codegen.cpp.

◆ visit() [44/90]

bool Codegen::visit ( QQmlJS::AST::PatternElementList * ast)
overrideprotected

Definition at line 922 of file qv4codegen.cpp.

◆ visit() [45/90]

bool Codegen::visit ( QQmlJS::AST::PatternProperty * ast)
overrideprotected

Definition at line 927 of file qv4codegen.cpp.

◆ visit() [46/90]

bool Codegen::visit ( QQmlJS::AST::PatternPropertyList * ast)
overrideprotected

Definition at line 932 of file qv4codegen.cpp.

◆ visit() [47/90]

bool Codegen::visit ( QQmlJS::AST::PostDecrementExpression * ast)
overrideprotected

Definition at line 3006 of file qv4codegen.cpp.

◆ visit() [48/90]

bool Codegen::visit ( QQmlJS::AST::PostIncrementExpression * ast)
overrideprotected

Definition at line 3026 of file qv4codegen.cpp.

◆ visit() [49/90]

bool Codegen::visit ( QQmlJS::AST::PreDecrementExpression * ast)
overrideprotected

Definition at line 3045 of file qv4codegen.cpp.

◆ visit() [50/90]

bool Codegen::visit ( QQmlJS::AST::PreIncrementExpression * ast)
overrideprotected

Definition at line 3063 of file qv4codegen.cpp.

◆ visit() [51/90]

bool Codegen::visit ( QQmlJS::AST::Program * ast)
overrideprotected

Definition at line 912 of file qv4codegen.cpp.

◆ visit() [52/90]

bool Codegen::visit ( QQmlJS::AST::RegExpLiteral * ast)
overrideprotected

Definition at line 3082 of file qv4codegen.cpp.

◆ visit() [53/90]

bool Codegen::visit ( QQmlJS::AST::ReturnStatement * ast)
overrideprotected

Definition at line 3891 of file qv4codegen.cpp.

◆ visit() [54/90]

bool Codegen::visit ( QQmlJS::AST::StatementList * ast)
overrideprotected

Definition at line 973 of file qv4codegen.cpp.

◆ visit() [55/90]

bool Codegen::visit ( QQmlJS::AST::StringLiteral * ast)
overrideprotected

Definition at line 3098 of file qv4codegen.cpp.

◆ visit() [56/90]

bool Codegen::visit ( QQmlJS::AST::SuperLiteral * ast)
overrideprotected

Definition at line 2436 of file qv4codegen.cpp.

◆ visit() [57/90]

bool Codegen::visit ( QQmlJS::AST::SwitchStatement * ast)
overrideprotected

Definition at line 3914 of file qv4codegen.cpp.

◆ visit() [58/90]

bool Codegen::visit ( QQmlJS::AST::TaggedTemplate * ast)
overrideprotected

Definition at line 2599 of file qv4codegen.cpp.

◆ visit() [59/90]

bool Codegen::visit ( QQmlJS::AST::TemplateLiteral * ast)
overrideprotected

Definition at line 3113 of file qv4codegen.cpp.

◆ visit() [60/90]

bool Codegen::visit ( QQmlJS::AST::ThisExpression * ast)
overrideprotected

Definition at line 3160 of file qv4codegen.cpp.

◆ visit() [61/90]

bool Codegen::visit ( QQmlJS::AST::ThrowStatement * ast)
overrideprotected

Definition at line 4001 of file qv4codegen.cpp.

◆ visit() [62/90]

bool Codegen::visit ( QQmlJS::AST::TildeExpression * ast)
overrideprotected

Definition at line 3180 of file qv4codegen.cpp.

◆ visit() [63/90]

bool Codegen::visit ( QQmlJS::AST::TrueLiteral * ast)
overrideprotected

Definition at line 3190 of file qv4codegen.cpp.

◆ visit() [64/90]

bool Codegen::visit ( QQmlJS::AST::TryStatement * ast)
overrideprotected

Definition at line 4046 of file qv4codegen.cpp.

◆ visit() [65/90]

bool Codegen::visit ( QQmlJS::AST::TypeAnnotation * ast)
overrideprotected

Definition at line 967 of file qv4codegen.cpp.

◆ visit() [66/90]

bool Codegen::visit ( QQmlJS::AST::TypeOfExpression * ast)
overrideprotected

Definition at line 3199 of file qv4codegen.cpp.

◆ visit() [67/90]

bool Codegen::visit ( QQmlJS::AST::UiArrayBinding * ast)
overrideprotected

Definition at line 4128 of file qv4codegen.cpp.

◆ visit() [68/90]

bool Codegen::visit ( QQmlJS::AST::UiArrayMemberList * ast)
overrideprotected

Definition at line 978 of file qv4codegen.cpp.

◆ visit() [69/90]

bool Codegen::visit ( QQmlJS::AST::UiHeaderItemList * ast)
overrideprotected

Definition at line 988 of file qv4codegen.cpp.

◆ visit() [70/90]

bool Codegen::visit ( QQmlJS::AST::UiImport * ast)
overrideprotected

Definition at line 983 of file qv4codegen.cpp.

◆ visit() [71/90]

bool Codegen::visit ( QQmlJS::AST::UiObjectBinding * ast)
overrideprotected

Definition at line 4134 of file qv4codegen.cpp.

◆ visit() [72/90]

bool Codegen::visit ( QQmlJS::AST::UiObjectDefinition * ast)
overrideprotected

Definition at line 4140 of file qv4codegen.cpp.

◆ visit() [73/90]

bool Codegen::visit ( QQmlJS::AST::UiObjectInitializer * ast)
overrideprotected

Definition at line 1003 of file qv4codegen.cpp.

◆ visit() [74/90]

bool Codegen::visit ( QQmlJS::AST::UiObjectMemberList * ast)
overrideprotected

Definition at line 1008 of file qv4codegen.cpp.

◆ visit() [75/90]

bool Codegen::visit ( QQmlJS::AST::UiParameterList * ast)
overrideprotected

Definition at line 1013 of file qv4codegen.cpp.

◆ visit() [76/90]

bool Codegen::visit ( QQmlJS::AST::UiPragma * ast)
overrideprotected

Definition at line 998 of file qv4codegen.cpp.

◆ visit() [77/90]

bool Codegen::visit ( QQmlJS::AST::UiPragmaValueList * ast)
overrideprotected

Definition at line 993 of file qv4codegen.cpp.

◆ visit() [78/90]

bool Codegen::visit ( QQmlJS::AST::UiProgram * ast)
overrideprotected

Definition at line 1018 of file qv4codegen.cpp.

◆ visit() [79/90]

bool Codegen::visit ( QQmlJS::AST::UiPublicMember * ast)
overrideprotected

Definition at line 4146 of file qv4codegen.cpp.

◆ visit() [80/90]

bool Codegen::visit ( QQmlJS::AST::UiQualifiedId * ast)
overrideprotected

Definition at line 1023 of file qv4codegen.cpp.

◆ visit() [81/90]

bool Codegen::visit ( QQmlJS::AST::UiScriptBinding * ast)
overrideprotected

Definition at line 4152 of file qv4codegen.cpp.

◆ visit() [82/90]

bool Codegen::visit ( QQmlJS::AST::UiSourceElement * ast)
overrideprotected

Definition at line 4158 of file qv4codegen.cpp.

◆ visit() [83/90]

bool Codegen::visit ( QQmlJS::AST::UnaryMinusExpression * ast)
overrideprotected

Definition at line 3226 of file qv4codegen.cpp.

◆ visit() [84/90]

bool Codegen::visit ( QQmlJS::AST::UnaryPlusExpression * ast)
overrideprotected

Definition at line 3236 of file qv4codegen.cpp.

◆ visit() [85/90]

bool Codegen::visit ( QQmlJS::AST::VariableDeclarationList * ast)
overrideprotected

Definition at line 1028 of file qv4codegen.cpp.

◆ visit() [86/90]

bool Codegen::visit ( QQmlJS::AST::VariableStatement * ast)
overrideprotected

Definition at line 4062 of file qv4codegen.cpp.

◆ visit() [87/90]

bool Codegen::visit ( QQmlJS::AST::VoidExpression * ast)
overrideprotected

Definition at line 3246 of file qv4codegen.cpp.

◆ visit() [88/90]

bool Codegen::visit ( QQmlJS::AST::WhileStatement * ast)
overrideprotected

Definition at line 4071 of file qv4codegen.cpp.

◆ visit() [89/90]

bool Codegen::visit ( QQmlJS::AST::WithStatement * ast)
overrideprotected

Definition at line 4103 of file qv4codegen.cpp.

◆ visit() [90/90]

bool Codegen::visit ( QQmlJS::AST::YieldExpression * ast)
overrideprotected

Definition at line 3273 of file qv4codegen.cpp.

◆ ControlFlow

friend struct ControlFlow
friend

Definition at line 765 of file qv4codegen_p.h.

◆ ControlFlowCatch

friend struct ControlFlowCatch
friend

Definition at line 766 of file qv4codegen_p.h.

◆ ControlFlowFinally

friend struct ControlFlowFinally
friend

Definition at line 767 of file qv4codegen_p.h.

◆ ScanFunctions

friend class ScanFunctions
friend

Definition at line 764 of file qv4codegen_p.h.

Member Data Documentation

◆ _context

Context* QV4::Compiler::Codegen::_context
protected

Definition at line 799 of file qv4codegen_p.h.

◆ _error

QQmlJS::DiagnosticMessage QV4::Compiler::Codegen::_error
protected

Definition at line 827 of file qv4codegen_p.h.

◆ _errorType

ErrorType QV4::Compiler::Codegen::_errorType = NoError
protected

Definition at line 826 of file qv4codegen_p.h.

◆ _fileNameIsUrl

bool QV4::Compiler::Codegen::_fileNameIsUrl
protected

Definition at line 825 of file qv4codegen_p.h.

◆ _functionContext

Context* QV4::Compiler::Codegen::_functionContext = nullptr
protected

Definition at line 800 of file qv4codegen_p.h.

◆ _interface

CodegenWarningInterface* QV4::Compiler::Codegen::_interface
protected

Definition at line 828 of file qv4codegen_p.h.

◆ _labelledStatement

QQmlJS::AST::LabelledStatement* QV4::Compiler::Codegen::_labelledStatement
protected

Definition at line 801 of file qv4codegen_p.h.

◆ _module

Module* QV4::Compiler::Codegen::_module
protected

Definition at line 797 of file qv4codegen_p.h.

◆ _returnAddress

int QV4::Compiler::Codegen::_returnAddress
protected

Definition at line 798 of file qv4codegen_p.h.

◆ _returnLabel

Moth::BytecodeGenerator::Label* QV4::Compiler::Codegen::_returnLabel = nullptr
protected

Definition at line 804 of file qv4codegen_p.h.

◆ _strictMode

bool QV4::Compiler::Codegen::_strictMode
protected

Definition at line 805 of file qv4codegen_p.h.

◆ _tailCallsAreAllowed

bool QV4::Compiler::Codegen::_tailCallsAreAllowed = true
protected

Definition at line 811 of file qv4codegen_p.h.

◆ _volatileMemoryLocations

VolatileMemoryLocations QV4::Compiler::Codegen::_volatileMemoryLocations
protected

Definition at line 796 of file qv4codegen_p.h.

◆ bytecodeGenerator

BytecodeGenerator* QV4::Compiler::Codegen::bytecodeGenerator = nullptr
protected

Definition at line 803 of file qv4codegen_p.h.

◆ controlFlow

ControlFlow* QV4::Compiler::Codegen::controlFlow = nullptr
protected

Definition at line 823 of file qv4codegen_p.h.

◆ functionEndsWithReturn

bool QV4::Compiler::Codegen::functionEndsWithReturn = false
protected

Definition at line 810 of file qv4codegen_p.h.

◆ inFormalParameterList

bool QV4::Compiler::Codegen::inFormalParameterList = false
protected

Definition at line 809 of file qv4codegen_p.h.

◆ insideSwitch

bool QV4::Compiler::Codegen::insideSwitch = false
protected

Definition at line 808 of file qv4codegen_p.h.

◆ jsUnitGenerator

QV4::Compiler::JSUnitGenerator* QV4::Compiler::Codegen::jsUnitGenerator
protected

Definition at line 802 of file qv4codegen_p.h.

◆ m_expressions

std::vector<Result> QV4::Compiler::Codegen::m_expressions
protected

Definition at line 795 of file qv4codegen_p.h.

◆ m_optionalChainsStates

std::stack<OptionalChainState> QV4::Compiler::Codegen::m_optionalChainsStates
protected

Definition at line 821 of file qv4codegen_p.h.

◆ m_seenOptionalChainNodes

QSet<QQmlJS::AST::Node*> QV4::Compiler::Codegen::m_seenOptionalChainNodes
protected

Definition at line 820 of file qv4codegen_p.h.

◆ requiresReturnValue

bool QV4::Compiler::Codegen::requiresReturnValue = false
protected

Definition at line 807 of file qv4codegen_p.h.

◆ storeSourceLocations

bool QV4::Compiler::Codegen::storeSourceLocations = false
protected

Definition at line 812 of file qv4codegen_p.h.

◆ useFastLookups

bool QV4::Compiler::Codegen::useFastLookups = true
protected

Definition at line 806 of file qv4codegen_p.h.


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