![]() |
Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
|
#include <qv4compilercontext_p.h>
Classes | |
| struct | KeyValuePair |
| struct | Member |
| class | PropertyDependencyMap |
| struct | ResolvedName |
| class | SmallSet |
| struct | SourceLocationTable |
Public Types | |
| enum | MemberType { UndefinedMember , ThisFunctionName , VariableDefinition , VariableDeclaration , FunctionDefinition } |
| enum class | UsesArgumentsObject : quint8 { Unknown , NotUsed , Used } |
| typedef QMap< QString, Member > | MemberMap |
Public Member Functions | |
| Context (Context *parent, ContextType type) | |
| bool | hasArgument (const QString &name) const |
| int | findArgument (const QString &name, bool *isInjected) const |
| Member | findMember (const QString &name) const |
| bool | memberInfo (const QString &name, const Member **m) const |
| bool | requiresImplicitReturnValue () const |
| void | addUsedVariable (const QString &name) |
| bool | addLocalVar (const QString &name, MemberType contextType, QQmlJS::AST::VariableScope scope, QQmlJS::AST::FunctionExpression *function=nullptr, const QQmlJS::SourceLocation &declarationLocation=QQmlJS::SourceLocation(), bool isInjected=false) |
| ResolvedName | resolveName (const QString &name, const QQmlJS::SourceLocation &accessLocation) |
| void | emitBlockHeader (Compiler::Codegen *codegen) |
| void | emitBlockFooter (Compiler::Codegen *codegen) |
| void | setupFunctionIndices (Moth::BytecodeGenerator *bytecodeGenerator) |
| bool | canHaveTailCalls () const |
| bool | isCaseBlock () const |
Definition at line 134 of file qv4compilercontext_p.h.
Definition at line 173 of file qv4compilercontext_p.h.
| enum QV4::Compiler::Context::MemberType |
| Enumerator | |
|---|---|
| UndefinedMember | |
| ThisFunctionName | |
| VariableDefinition | |
| VariableDeclaration | |
| FunctionDefinition | |
Definition at line 143 of file qv4compilercontext_p.h.
|
strong |
| Enumerator | |
|---|---|
| Unknown | |
| NotUsed | |
| Used | |
Definition at line 215 of file qv4compilercontext_p.h.
|
inline |
Definition at line 267 of file qv4compilercontext_p.h.
References contextType, isStrict, and parent.
| bool Context::addLocalVar | ( | const QString & | name, |
| MemberType | contextType, | ||
| QQmlJS::AST::VariableScope | scope, | ||
| QQmlJS::AST::FunctionExpression * | function = nullptr, | ||
| const QQmlJS::SourceLocation & | declarationLocation = QQmlJS::SourceLocation(), | ||
| bool | isInjected = false ) |
Definition at line 54 of file qv4compilercontext.cpp.
References FunctionDefinition, QV4::Compiler::Context::Member::isInjected, members, parent, and QV4::Compiler::Context::Member::type.
Definition at line 320 of file qv4compilercontext_p.h.
|
inline |
Definition at line 356 of file qv4compilercontext_p.h.
References QV4::Compiler::Block, canHaveTailCalls(), contextType, QV4::Compiler::Function, isGenerator, isStrict, and parent.
Referenced by canHaveTailCalls().
| void Context::emitBlockFooter | ( | Compiler::Codegen * | codegen | ) |
Definition at line 287 of file qv4compilercontext.cpp.
References requiresExecutionContext.
| void Context::emitBlockHeader | ( | Compiler::Codegen * | codegen | ) |
Definition at line 175 of file qv4compilercontext.cpp.
References QV4::Compiler::Binding, QV4::Compiler::Block, blockIndex, contextType, QV4::Compiler::ESModule, QV4::Compiler::Eval, QV4::Compiler::Function, QV4::Compiler::Global, innerFunctionAccessesNewTarget, innerFunctionAccessesThis, isCatchBlock, isStrict, members, nRegisters, registerOffset, requiresExecutionContext, QV4::Compiler::ScriptImportedByQML, setupFunctionIndices(), sizeOfRegisterTemporalDeadZone, Used, usesArgumentsObject, and usesThis.
|
inline |
Definition at line 280 of file qv4compilercontext_p.h.
Definition at line 293 of file qv4compilercontext_p.h.
|
inline |
Definition at line 275 of file qv4compilercontext_p.h.
|
inline |
Definition at line 367 of file qv4compilercontext_p.h.
Referenced by resolveName().
Definition at line 302 of file qv4compilercontext_p.h.
References members.
|
inline |
Definition at line 314 of file qv4compilercontext_p.h.
References QV4::Compiler::Binding, contextType, QV4::Compiler::Eval, QV4::Compiler::Global, and QV4::Compiler::ScriptImportedByQML.
| Context::ResolvedName Context::resolveName | ( | const QString & | name, |
| const QQmlJS::SourceLocation & | accessLocation ) |
Definition at line 94 of file qv4compilercontext.cpp.
References argumentsCanEscape, QV4::Compiler::Binding, QV4::Compiler::Block, QV4::Compiler::Context::Member::canEscape, contextType, QV4::Compiler::ESModule, QV4::Compiler::Eval, QV4::Compiler::Context::ResolvedName::Global, hasDirectEval, QV4::Compiler::Context::ResolvedName::Import, QV4::Compiler::Context::Member::index, QV4::Compiler::Context::ResolvedName::index, QV4::Compiler::Context::ResolvedName::isArgOrEval, isCaseBlock(), QV4::Compiler::Context::ResolvedName::isConst, QV4::Compiler::Context::Member::isInjected, QV4::Compiler::Context::ResolvedName::isInjected, isStrict, isWithBlock, QV4::Compiler::Context::ResolvedName::Local, QV4::Compiler::Context::ResolvedName::memberType, parent, QV4::Compiler::Context::ResolvedName::QmlGlobal, requiresExecutionContext, QV4::Compiler::Context::ResolvedName::requiresTDZCheck, QV4::Compiler::Context::ResolvedName::scope, QV4::Compiler::ScriptImportedByQML, QV4::Compiler::Context::ResolvedName::Stack, QV4::Compiler::Context::Member::type, QV4::Compiler::Context::ResolvedName::type, and UndefinedMember.
| void Context::setupFunctionIndices | ( | Moth::BytecodeGenerator * | bytecodeGenerator | ) |
Definition at line 304 of file qv4compilercontext.cpp.
References QV4::Compiler::Binding, QV4::Compiler::Block, contextType, QV4::Moth::BytecodeGenerator::currentRegister(), QV4::Compiler::ESModule, QV4::Compiler::Eval, firstTemporalDeadZoneRegister, QV4::Compiler::Function, QV4::Compiler::Global, members, QV4::Moth::BytecodeGenerator::newRegister(), QV4::Moth::BytecodeGenerator::newRegisterArray(), nRegisters, registerOffset, QV4::Compiler::ScriptImportedByQML, sizeOfLocalTemporalDeadZone, and sizeOfRegisterTemporalDeadZone.
Referenced by emitBlockHeader().
| bool QV4::Compiler::Context::allVarsEscape = false |
Definition at line 199 of file qv4compilercontext_p.h.
| QQmlJS::AST::BoundNames QV4::Compiler::Context::arguments |
Definition at line 178 of file qv4compilercontext_p.h.
|
mutable |
Definition at line 208 of file qv4compilercontext_p.h.
Referenced by resolveName().
| int QV4::Compiler::Context::blockIndex = -1 |
Definition at line 141 of file qv4compilercontext_p.h.
Referenced by emitBlockHeader().
| QString QV4::Compiler::Context::caughtVariable |
Definition at line 212 of file qv4compilercontext_p.h.
| QByteArray QV4::Compiler::Context::code |
Definition at line 188 of file qv4compilercontext_p.h.
| int QV4::Compiler::Context::column = 0 |
Definition at line 138 of file qv4compilercontext_p.h.
Referenced by testing.tools.encode_pdf_filter._Ascii85DecodePdfStream::close().
| ContextType QV4::Compiler::Context::contextType |
Definition at line 223 of file qv4compilercontext_p.h.
Referenced by Context(), canHaveTailCalls(), emitBlockHeader(), requiresImplicitReturnValue(), resolveName(), and setupFunctionIndices().
| ControlFlow* QV4::Compiler::Context::controlFlow = nullptr |
Definition at line 187 of file qv4compilercontext_p.h.
| QVector<ExportEntry> QV4::Compiler::Context::exportEntries |
Definition at line 183 of file qv4compilercontext_p.h.
| int QV4::Compiler::Context::firstTemporalDeadZoneRegister = 0 |
Definition at line 196 of file qv4compilercontext_p.h.
Referenced by setupFunctionIndices().
| QQmlJS::AST::FormalParameterList* QV4::Compiler::Context::formals = nullptr |
Definition at line 177 of file qv4compilercontext_p.h.
| int QV4::Compiler::Context::functionIndex = -1 |
Definition at line 140 of file qv4compilercontext_p.h.
| bool QV4::Compiler::Context::hasDirectEval = false |
Definition at line 198 of file qv4compilercontext_p.h.
Referenced by resolveName().
| bool QV4::Compiler::Context::hasNestedFunctions = false |
Definition at line 200 of file qv4compilercontext_p.h.
| QVector<ImportEntry> QV4::Compiler::Context::importEntries |
Definition at line 182 of file qv4compilercontext_p.h.
| bool QV4::Compiler::Context::innerFunctionAccessesNewTarget = false |
Definition at line 206 of file qv4compilercontext_p.h.
Referenced by emitBlockHeader().
| bool QV4::Compiler::Context::innerFunctionAccessesThis = false |
Definition at line 205 of file qv4compilercontext_p.h.
Referenced by emitBlockHeader().
| bool QV4::Compiler::Context::isArrowFunction = false |
Definition at line 202 of file qv4compilercontext_p.h.
| bool QV4::Compiler::Context::isCatchBlock = false |
Definition at line 211 of file qv4compilercontext_p.h.
Referenced by emitBlockHeader().
| bool QV4::Compiler::Context::isGenerator = false |
Definition at line 203 of file qv4compilercontext_p.h.
Referenced by canHaveTailCalls().
| bool QV4::Compiler::Context::isStrict = false |
Definition at line 201 of file qv4compilercontext_p.h.
Referenced by Context(), canHaveTailCalls(), emitBlockHeader(), and resolveName().
| bool QV4::Compiler::Context::isWithBlock = false |
Definition at line 210 of file qv4compilercontext_p.h.
Referenced by resolveName().
| std::vector<unsigned> QV4::Compiler::Context::labelInfo |
Definition at line 191 of file qv4compilercontext_p.h.
| QQmlJS::SourceLocation QV4::Compiler::Context::lastBlockInitializerLocation |
Definition at line 213 of file qv4compilercontext_p.h.
| int QV4::Compiler::Context::line = 0 |
Definition at line 137 of file qv4compilercontext_p.h.
| QVector<CompiledData::CodeOffsetToLineAndStatement> QV4::Compiler::Context::lineAndStatementNumberMapping |
Definition at line 189 of file qv4compilercontext_p.h.
| QString QV4::Compiler::Context::localNameForDefaultExport |
Definition at line 184 of file qv4compilercontext_p.h.
| QStringList QV4::Compiler::Context::locals |
Definition at line 180 of file qv4compilercontext_p.h.
| MemberMap QV4::Compiler::Context::members |
Definition at line 175 of file qv4compilercontext_p.h.
Referenced by addLocalVar(), emitBlockHeader(), findMember(), memberInfo(), and setupFunctionIndices().
| QStringList QV4::Compiler::Context::moduleRequests |
Definition at line 181 of file qv4compilercontext_p.h.
| QString QV4::Compiler::Context::name |
Definition at line 136 of file qv4compilercontext_p.h.
Referenced by testing.tools.encode_pdf_filter._PdfStream::RegisterByName().
Definition at line 185 of file qv4compilercontext_p.h.
| int QV4::Compiler::Context::nRegisters = 0 |
Definition at line 193 of file qv4compilercontext_p.h.
Referenced by emitBlockHeader(), and setupFunctionIndices().
| Context* QV4::Compiler::Context::parent |
Definition at line 135 of file qv4compilercontext_p.h.
Referenced by Context(), addLocalVar(), canHaveTailCalls(), findMember(), and resolveName().
| int QV4::Compiler::Context::registerCountInFunction = 0 |
Definition at line 139 of file qv4compilercontext_p.h.
| int QV4::Compiler::Context::registerOffset = -1 |
Definition at line 194 of file qv4compilercontext_p.h.
Referenced by emitBlockHeader(), and setupFunctionIndices().
| bool QV4::Compiler::Context::requiresExecutionContext = false |
Definition at line 209 of file qv4compilercontext_p.h.
Referenced by emitBlockFooter(), emitBlockHeader(), and resolveName().
| bool QV4::Compiler::Context::returnsClosure = false |
Definition at line 207 of file qv4compilercontext_p.h.
| QQmlJS::AST::Type* QV4::Compiler::Context::returnType = nullptr |
Definition at line 179 of file qv4compilercontext_p.h.
| int QV4::Compiler::Context::sizeOfLocalTemporalDeadZone = 0 |
Definition at line 195 of file qv4compilercontext_p.h.
Referenced by setupFunctionIndices().
| int QV4::Compiler::Context::sizeOfRegisterTemporalDeadZone = 0 |
Definition at line 197 of file qv4compilercontext_p.h.
Referenced by emitBlockHeader(), and setupFunctionIndices().
| std::unique_ptr<SourceLocationTable> QV4::Compiler::Context::sourceLocationTable |
Definition at line 190 of file qv4compilercontext_p.h.
Definition at line 176 of file qv4compilercontext_p.h.
| UsesArgumentsObject QV4::Compiler::Context::usesArgumentsObject = UsesArgumentsObject::Unknown |
Definition at line 221 of file qv4compilercontext_p.h.
Referenced by emitBlockHeader().
| bool QV4::Compiler::Context::usesThis = false |
Definition at line 204 of file qv4compilercontext_p.h.
Referenced by emitBlockHeader().