diff options
| author | Ulf Hermann <ulf.hermann@qt.io> | 2025-06-13 15:05:01 +0200 |
|---|---|---|
| committer | Ulf Hermann <ulf.hermann@qt.io> | 2025-06-18 08:05:17 +0200 |
| commit | 1c6a6659177fb5fac4aa49e89912df4564f6ec80 (patch) | |
| tree | a4210de614aee058be3f677e97be5400d58392dd /tools/qmljs/qmljs.cpp | |
| parent | 6204cf5bbd199005c8c79448b1d7055dbd7fadfb (diff) | |
QtQml: Don't use loadModule in qmljs
We need to get rid of it. Use the type loader instead.
Change-Id: I63be8eab38401feed4e6461b03804e8335f41899
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Diffstat (limited to 'tools/qmljs/qmljs.cpp')
| -rw-r--r-- | tools/qmljs/qmljs.cpp | 55 |
1 files changed, 33 insertions, 22 deletions
diff --git a/tools/qmljs/qmljs.cpp b/tools/qmljs/qmljs.cpp index 728aa00cda..b583d6fa3a 100644 --- a/tools/qmljs/qmljs.cpp +++ b/tools/qmljs/qmljs.cpp @@ -1,29 +1,31 @@ // Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 -#include "private/qv4object_p.h" -#include "private/qv4runtime_p.h" -#include "private/qv4functionobject_p.h" -#include "private/qv4errorobject_p.h" -#include "private/qv4globalobject_p.h" -#include "private/qv4codegen_p.h" -#include "private/qv4objectproto_p.h" -#include "private/qv4mm_p.h" -#include "private/qv4context_p.h" -#include "private/qv4script_p.h" -#include "private/qv4string_p.h" -#include "private/qv4module_p.h" -#include "private/qqmlbuiltinfunctions_p.h" - -#include <QtCore/QCoreApplication> -#include <QtCore/QFile> -#include <QtCore/QFileInfo> -#include <QtCore/QDateTime> -#include <QtCore/qcommandlineparser.h> +#include <private/qqmlbuiltinfunctions_p.h> +#include <private/qqmljsast_p.h> #include <private/qqmljsengine_p.h> #include <private/qqmljslexer_p.h> #include <private/qqmljsparser_p.h> -#include <private/qqmljsast_p.h> +#include <private/qqmlscriptblob_p.h> +#include <private/qqmltypeloader_p.h> +#include <private/qv4codegen_p.h> +#include <private/qv4context_p.h> +#include <private/qv4errorobject_p.h> +#include <private/qv4functionobject_p.h> +#include <private/qv4globalobject_p.h> +#include <private/qv4mm_p.h> +#include <private/qv4module_p.h> +#include <private/qv4object_p.h> +#include <private/qv4objectproto_p.h> +#include <private/qv4runtime_p.h> +#include <private/qv4script_p.h> +#include <private/qv4string_p.h> + +#include <QtCore/qcommandlineparser.h> +#include <QtCore/qcoreapplication.h> +#include <QtCore/qdatetime.h> +#include <QtCore/qfile.h> +#include <QtCore/qfileinfo.h> #include <iostream> @@ -103,11 +105,20 @@ int main(int argc, char *argv[]) for (const QString &fn : args) { QV4::ScopedValue result(scope); if (runAsModule) { - if (auto module - = vm.loadModule(QUrl::fromLocalFile(QFileInfo(fn).absoluteFilePath()))) { + QV4::ScopedValue result(scope); + QUrl url = QUrl::fromLocalFile(QFileInfo(fn).absoluteFilePath()); + if (!fn.endsWith(QLatin1String(".mjs"))) + url.setFragment(QLatin1String("module")); + + QQmlRefPointer<QQmlScriptBlob> blob = vm.typeLoader()->getScript(url); + if (blob->isComplete()) { + const auto module + = vm.executableCompilationUnit(blob->scriptData()->compilationUnit()); if (module->instantiate()) module->evaluate(); } else { + // Local URL is loaded synchronously. + Q_ASSERT(blob->isError()); vm.throwError(QStringLiteral("Could not load module file")); } } else { |
