![]() |
Qt 6.x
The Qt SDK
|
#include <qv4compiler_p.h>
Classes | |
struct | MemberInfo |
Public Types | |
enum | LookupMode { LookupForStorage , LookupForCall } |
enum | GeneratorOption { GenerateWithStringTable , GenerateWithoutStringTable } |
Static Public Member Functions | |
static void | generateUnitChecksum (CompiledData::Unit *unit) |
Public Attributes | |
StringTableGenerator | stringTable |
QString | codeGeneratorName |
Definition at line 72 of file qv4compiler_p.h.
Enumerator | |
---|---|
GenerateWithStringTable | |
GenerateWithoutStringTable |
Definition at line 108 of file qv4compiler_p.h.
Enumerator | |
---|---|
LookupForStorage | |
LookupForCall |
Definition at line 73 of file qv4compiler_p.h.
QV4::Compiler::JSUnitGenerator::JSUnitGenerator | ( | Module * | module | ) |
Definition at line 113 of file qv4compiler.cpp.
References registerString().
QV4::ReturnedValue QV4::Compiler::JSUnitGenerator::constant | ( | int | idx | ) | const |
Definition at line 195 of file qv4compiler.cpp.
Referenced by QQmlJSCodeGenerator::generate_LoadConst(), QQmlJSTypePropagator::generate_LoadConst(), QQmlJSCodeGenerator::generate_MoveConst(), and QQmlJSTypePropagator::generate_MoveConst().
QV4::CompiledData::Unit * QV4::Compiler::JSUnitGenerator::generateUnit | ( | GeneratorOption | option = GenerateWithStringTable | ) |
Definition at line 252 of file qv4compiler.cpp.
References QV4::CompiledData::Unit::blockTableSize, QV4::CompiledData::Unit::classTableSize, QV4::CompiledData::ExportEntry::exportName, function, QV4::CompiledData::Unit::functionTableSize, i, QV4::CompiledData::ExportEntry::importName, QV4::CompiledData::ImportEntry::importName, QV4::CompiledData::Unit::indexOfRootFunction, QV4::CompiledData::ExportEntry::localName, QV4::CompiledData::ImportEntry::localName, QV4::CompiledData::ExportEntry::location, QV4::CompiledData::ImportEntry::location, QV4::CompiledData::ExportEntry::moduleRequest, QV4::CompiledData::ImportEntry::moduleRequest, QV4::CompiledData::Unit::offsetToBlockTable, QV4::CompiledData::Unit::offsetToClassTable, QV4::CompiledData::Unit::offsetToConstantTable, QV4::CompiledData::Unit::offsetToFunctionTable, QV4::CompiledData::Unit::offsetToImportEntryTable, QV4::CompiledData::Unit::offsetToIndirectExportEntryTable, QV4::CompiledData::Unit::offsetToJSClassTable, QV4::CompiledData::Unit::offsetToLocalExportEntryTable, QV4::CompiledData::Unit::offsetToLookupTable, QV4::CompiledData::Unit::offsetToModuleRequestTable, QV4::CompiledData::Unit::offsetToRegexpTable, QV4::CompiledData::Unit::offsetToStarExportEntryTable, QV4::CompiledData::Unit::offsetToTemplateObjectTable, QV4::CompiledData::Unit::offsetToTranslationTable, Q_ALLOCA_VAR, request, QV4::CompiledData::Unit::templateObjectTableSize, and QV4::CompiledData::Unit::unitSize.
Referenced by QV4::Compiler::Codegen::generateCompilationUnit().
|
static |
Definition at line 94 of file qv4compiler.cpp.
References checksum(), hash, QCryptographicHash::Md5, QV4::CompiledData::Unit::md5Checksum, Q_ASSERT, and QV4::CompiledData::Unit::unitSize.
Referenced by QmlIR::QmlUnitGenerator::generate().
|
inline |
Definition at line 85 of file qv4compiler_p.h.
QString QV4::Compiler::JSUnitGenerator::jsClassMember | ( | int | jsClassId, |
int | member | ||
) | const |
Definition at line 235 of file qv4compiler.cpp.
References jsClassMembersOffset, members(), QV4::CompiledData::JSClass::nMembers, and Q_ASSERT.
Referenced by QQmlJSCodeGenerator::generate_DefineObjectLiteral().
int QV4::Compiler::JSUnitGenerator::jsClassSize | ( | int | jsClassId | ) | const |
Definition at line 227 of file qv4compiler.cpp.
References QV4::CompiledData::JSClass::nMembers.
Referenced by QQmlJSCodeGenerator::generate_DefineObjectLiteral(), and QQmlJSTypePropagator::generate_DefineObjectLiteral().
|
inline |
Definition at line 95 of file qv4compiler_p.h.
Referenced by QQmlJSTypePropagator::generate_CallGlobalLookup(), QQmlJSShadowCheck::generate_CallProperty(), QQmlJSShadowCheck::generate_CallPropertyLookup(), QQmlJSTypePropagator::generate_CallQmlContextPropertyLookup(), QQmlJSCodeGenerator::generate_GetLookup(), QQmlJSShadowCheck::generate_GetLookup(), QQmlJSTypePropagator::generate_GetLookup(), QQmlJSCodeGenerator::generate_SetLookup(), and QQmlJSShadowCheck::generate_SetLookup().
|
inline |
Definition at line 94 of file qv4compiler_p.h.
Referenced by QQmlJSCodeGenerator::generate_CallPropertyLookup(), QQmlJSTypePropagator::generate_CallPropertyLookup(), QQmlJSCodeGenerator::generate_CallQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_LoadGlobalLookup(), QQmlJSCodeGenerator::generate_LoadQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_LoadQmlContextPropertyLookup(), and QQmlJSTypePropagator::generate_SetLookup().
int QV4::Compiler::JSUnitGenerator::registerConstant | ( | QV4::ReturnedValue | v | ) |
Definition at line 186 of file qv4compiler.cpp.
Referenced by QV4::Compiler::Codegen::registerConstant(), QQmlTypeCompiler::registerConstant(), and QmlIR::IRBuilder::setBindingValue().
int QV4::Compiler::JSUnitGenerator::registerGetterLookup | ( | const QString & | name, |
LookupMode | mode | ||
) |
Definition at line 120 of file qv4compiler.cpp.
Referenced by QV4::Compiler::Codegen::registerGetterLookup().
int QV4::Compiler::JSUnitGenerator::registerGetterLookup | ( | int | nameIndex, |
LookupMode | mode | ||
) |
Definition at line 132 of file qv4compiler.cpp.
References lookupMode(), and QV4::CompiledData::Lookup::Type_Getter.
int QV4::Compiler::JSUnitGenerator::registerGlobalGetterLookup | ( | int | nameIndex, |
LookupMode | mode | ||
) |
Definition at line 152 of file qv4compiler.cpp.
References lookupMode(), and QV4::CompiledData::Lookup::Type_GlobalGetter.
Referenced by QV4::Compiler::Codegen::registerGlobalGetterLookup().
int QV4::Compiler::JSUnitGenerator::registerJSClass | ( | const QStringList & | members | ) |
Definition at line 204 of file qv4compiler.cpp.
References QV4::CompiledData::JSClass::calculateSize(), jsClassMembersOffset, members(), QV4::CompiledData::JSClass::nMembers, QV4::CompiledData::JSClassMember::set(), and QCborArray::size().
Referenced by QV4::Compiler::Codegen::visit().
int QV4::Compiler::JSUnitGenerator::registerQmlContextPropertyGetterLookup | ( | int | nameIndex, |
LookupMode | mode | ||
) |
Definition at line 159 of file qv4compiler.cpp.
References lookupMode(), and QV4::CompiledData::Lookup::Type_QmlContextPropertyGetter.
Referenced by QV4::Compiler::Codegen::registerQmlContextPropertyGetterLookup().
int QV4::Compiler::JSUnitGenerator::registerRegExp | ( | QQmlJS::AST::RegExpLiteral * | regexp | ) |
Definition at line 168 of file qv4compiler.cpp.
References QQmlJS::AST::RegExpLiteral::flags, QQmlJS::AST::RegExpLiteral::pattern, QV4::CompiledData::RegExp::RegExp_Global, QQmlJS::Lexer::RegExp_Global, QV4::CompiledData::RegExp::RegExp_IgnoreCase, QQmlJS::Lexer::RegExp_IgnoreCase, QV4::CompiledData::RegExp::RegExp_Multiline, QQmlJS::Lexer::RegExp_Multiline, QV4::CompiledData::RegExp::RegExp_Sticky, QQmlJS::Lexer::RegExp_Sticky, QV4::CompiledData::RegExp::RegExp_Unicode, QQmlJS::Lexer::RegExp_Unicode, and QStringView::toString().
Referenced by QV4::Compiler::Codegen::visit().
int QV4::Compiler::JSUnitGenerator::registerSetterLookup | ( | const QString & | name | ) |
Definition at line 139 of file qv4compiler.cpp.
Referenced by QV4::Compiler::Codegen::registerSetterLookup().
int QV4::Compiler::JSUnitGenerator::registerSetterLookup | ( | int | nameIndex | ) |
Definition at line 144 of file qv4compiler.cpp.
References QV4::CompiledData::Lookup::Mode_ForStorage, and QV4::CompiledData::Lookup::Type_Setter.
|
inline |
Definition at line 84 of file qv4compiler_p.h.
References str.
Referenced by JSUnitGenerator(), QmlIR::ScriptDirectivesCollector::importFile(), QmlIR::ScriptDirectivesCollector::importModule(), QV4::Compiler::Codegen::registerString(), QmlIR::Document::registerString(), QQmlTypeCompiler::registerString(), and QmlIR::IRBuilder::tryGeneratingTranslationBinding().
int QV4::Compiler::JSUnitGenerator::registerTranslation | ( | const CompiledData::TranslationData & | translation | ) |
Definition at line 246 of file qv4compiler.cpp.
Referenced by QmlIR::IRBuilder::tryGeneratingTranslationBinding().
|
inline |
Definition at line 86 of file qv4compiler_p.h.
Referenced by QQmlJSTypePropagator::generate_CallName(), QQmlJSTypePropagator::generate_CallProperty(), QQmlJSCodeGenerator::generate_CallPropertyLookup(), QQmlJSCodeGenerator::generate_CallQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_DeadTemporalZoneCheck(), QQmlJSTypePropagator::generate_LoadName(), QQmlJSShadowCheck::generate_LoadProperty(), QQmlJSTypePropagator::generate_LoadProperty(), QQmlJSCodeGenerator::generate_LoadQmlContextPropertyLookup(), QQmlJSTypePropagator::generate_LoadQmlContextPropertyLookup(), QQmlJSCodeGenerator::generate_LoadRuntimeString(), QQmlJSTypePropagator::generate_StoreNameCommon(), QQmlJSCodeGenerator::generate_StoreNameSloppy(), QQmlJSTypePropagator::generate_StoreProperty(), QQmlJSShadowCheck::generate_StoreProperty(), QmlIR::Document::stringAt(), QV4::Compiler::Codegen::throwSyntaxErrorOnEvalOrArgumentsInStrictMode(), and QmlIR::IRBuilder::visit().
Definition at line 602 of file qv4compiler.cpp.
References QV4::Compiler::Context::blockIndex, i, QV4::Compiler::Context::locals, QV4::CompiledData::Block::localsOffset, QV4::CompiledData::Block::nLocals, qDebug, qEnvironmentVariableIsSet(), QtPrivate::roundUpToMultipleOf(), QV4::CompiledData::Block::sizeOfLocalTemporalDeadZone, and QV4::Compiler::Context::sizeOfLocalTemporalDeadZone.
Definition at line 525 of file qv4compiler.cpp.
References QList< T >::at(), QV4::CompiledData::Class::constructorFunction, QV4::CompiledData::Method::function, QV4::CompiledData::Method::Getter, i, method, QV4::CompiledData::Class::methodTable(), QV4::CompiledData::Class::methodTableOffset, QV4::CompiledData::Method::name, QV4::CompiledData::Class::nameIndex, QV4::CompiledData::Class::nMethods, QV4::CompiledData::Class::nStaticMethods, output, qDebug, qEnvironmentVariableIsSet(), QV4::CompiledData::Method::Setter, QList< T >::size(), and QV4::CompiledData::Method::type.
Definition at line 427 of file qv4compiler.cpp.
References QV4::Compiler::Context::arguments, QList< T >::at(), QV4::Compiler::Context::code, QV4::Compiler::Context::column, QByteArray::constData(), QV4::Compiler::Context::firstTemporalDeadZoneRegister, QV4::Compiler::Context::formals, function, i, QmlIR::Parameter::initType(), QV4::Compiler::Context::innerFunctionAccessesNewTarget, QV4::Compiler::Context::innerFunctionAccessesThis, QV4::CompiledData::Function::IsArrowFunction, QV4::Compiler::Context::isArrowFunction, QV4::CompiledData::Function::IsClosureWrapper, QV4::CompiledData::Function::IsGenerator, QV4::Compiler::Context::isGenerator, QV4::CompiledData::Function::IsStrict, QV4::Compiler::Context::isStrict, QV4::Compiler::Context::labelInfo, QQmlJS::AST::FormalParameterList::length(), QV4::Compiler::Context::line, QV4::Compiler::Context::lineAndStatementNumberMapping, QV4::Compiler::Context::locals, QV4::Compiler::Context::name, QV4::CompiledData::Parameter::nameIndex, QV4::Compiler::Context::nestedContexts, Q_ASSERT, QV4::Compiler::Context::registerCountInFunction, QV4::Compiler::Context::returnsClosure, QV4::Compiler::Context::returnType, QtPrivate::roundUpToMultipleOf(), QByteArray::size(), QList< T >::size(), QV4::Compiler::Context::sizeOfLocalTemporalDeadZone, QV4::Compiler::Context::sizeOfRegisterTemporalDeadZone, and str.
void QV4::Compiler::JSUnitGenerator::writeTemplateObject | ( | char * | f, |
const TemplateObject & | o | ||
) |
Definition at line 574 of file qv4compiler.cpp.
References i, qDebug, qEnvironmentVariableIsSet(), QV4::CompiledData::TemplateObject::rawStringIndexAt(), QV4::CompiledData::TemplateObject::size, and QV4::CompiledData::TemplateObject::stringIndexAt().
QString QV4::Compiler::JSUnitGenerator::codeGeneratorName |
Definition at line 120 of file qv4compiler_p.h.
Referenced by QV4::Compiler::Codegen::Codegen().
StringTableGenerator QV4::Compiler::JSUnitGenerator::stringTable |
Definition at line 119 of file qv4compiler_p.h.
Referenced by QQmlIRLoader::load(), QQmlTypeData::stringAt(), and QQmlTypeCompiler::stringPool().