diff options
Diffstat (limited to 'src/qml')
-rw-r--r-- | src/qml/compiler/qqmlirbuilder.cpp | 14 | ||||
-rw-r--r-- | src/qml/compiler/qqmlirbuilder_p.h | 10 | ||||
-rw-r--r-- | src/qml/qml/qqmltypeloader.cpp | 5 |
3 files changed, 13 insertions, 16 deletions
diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp index 4a1b27d7aa..1b07fda1fd 100644 --- a/src/qml/compiler/qqmlirbuilder.cpp +++ b/src/qml/compiler/qqmlirbuilder.cpp @@ -322,16 +322,16 @@ Document::Document(bool debugMode) { } -ScriptDirectivesCollector::ScriptDirectivesCollector(QQmlJS::Engine *engine, QV4::Compiler::JSUnitGenerator *unitGenerator) - : engine(engine) - , jsGenerator(unitGenerator) - , hasPragmaLibrary(false) +ScriptDirectivesCollector::ScriptDirectivesCollector(Document *doc) + : document(doc) + , engine(&doc->jsParserEngine) + , jsGenerator(&doc->jsGenerator) { } void ScriptDirectivesCollector::pragmaLibrary() { - hasPragmaLibrary = true; + document->jsModule.unitFlags |= QV4::CompiledData::Unit::IsSharedLibrary; } void ScriptDirectivesCollector::importFile(const QString &jsfile, const QString &module, int lineNumber, int column) @@ -342,7 +342,7 @@ void ScriptDirectivesCollector::importFile(const QString &jsfile, const QString import->qualifierIndex = jsGenerator->registerString(module); import->location.line = lineNumber; import->location.column = column; - imports << import; + document->imports << import; } void ScriptDirectivesCollector::importModule(const QString &uri, const QString &version, const QString &module, int lineNumber, int column) @@ -358,7 +358,7 @@ void ScriptDirectivesCollector::importModule(const QString &uri, const QString & import->qualifierIndex = jsGenerator->registerString(module); import->location.line = lineNumber; import->location.column = column; - imports << import; + document->imports << import; } IRBuilder::IRBuilder(const QSet<QString> &illegalNames) diff --git a/src/qml/compiler/qqmlirbuilder_p.h b/src/qml/compiler/qqmlirbuilder_p.h index c2cf18e3c4..689b232b1c 100644 --- a/src/qml/compiler/qqmlirbuilder_p.h +++ b/src/qml/compiler/qqmlirbuilder_p.h @@ -462,14 +462,14 @@ struct Q_QML_PRIVATE_EXPORT Document static void removeScriptPragmas(QString &script); }; -struct Q_QML_PRIVATE_EXPORT ScriptDirectivesCollector : public QQmlJS::Directives +class Q_QML_PRIVATE_EXPORT ScriptDirectivesCollector : public QQmlJS::Directives { - ScriptDirectivesCollector(QQmlJS::Engine *engine, QV4::Compiler::JSUnitGenerator *unitGenerator); - + QmlIR::Document *document; QQmlJS::Engine *engine; QV4::Compiler::JSUnitGenerator *jsGenerator; - QList<const QV4::CompiledData::Import *> imports; - bool hasPragmaLibrary; + +public: + ScriptDirectivesCollector(QmlIR::Document *doc); void pragmaLibrary() override; void importFile(const QString &jsfile, const QString &module, int lineNumber, int column) override; diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp index 9856a0be80..d7bd882356 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -3021,7 +3021,7 @@ void QQmlScriptBlob::dataReceived(const SourceCodeData &data) return; } - QmlIR::ScriptDirectivesCollector collector(&irUnit.jsParserEngine, &irUnit.jsGenerator); + QmlIR::ScriptDirectivesCollector collector(&irUnit); QList<QQmlError> errors; QQmlRefPointer<QV4::CompiledData::CompilationUnit> unit = QV4::Script::precompile( @@ -3037,9 +3037,6 @@ void QQmlScriptBlob::dataReceived(const SourceCodeData &data) unit.adopt(new QV4::CompiledData::CompilationUnit); } irUnit.javaScriptCompilationUnit = unit; - irUnit.imports = collector.imports; - if (collector.hasPragmaLibrary) - irUnit.jsModule.unitFlags |= QV4::CompiledData::Unit::IsSharedLibrary; QmlIR::QmlUnitGenerator qmlGenerator; QV4::CompiledData::Unit *unitData = qmlGenerator.generate(irUnit); |