aboutsummaryrefslogtreecommitdiffstats
path: root/tools/qmllint/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/qmllint/main.cpp')
-rw-r--r--tools/qmllint/main.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/qmllint/main.cpp b/tools/qmllint/main.cpp
index 56f72dd020..232b31934e 100644
--- a/tools/qmllint/main.cpp
+++ b/tools/qmllint/main.cpp
@@ -62,11 +62,13 @@ static bool lint_file(const QString &filename, const bool silent, const bool war
QQmlJS::Lexer lexer(&engine);
QFileInfo info(filename);
- bool isJavaScript = info.suffix().toLower() == QLatin1String("js");
+ const QString lowerSuffix = info.suffix().toLower();
+ const bool isJavaScript = (lowerSuffix == QLatin1String("js") || lowerSuffix == QLatin1String("mjs"));
+ const bool isESModule = lowerSuffix == QLatin1String("mjs");
lexer.setCode(code, /*line = */ 1, /*qmlMode=*/ !isJavaScript);
QQmlJS::Parser parser(&engine);
- bool success = isJavaScript ? parser.parseProgram() : parser.parse();
+ bool success = isJavaScript ? (isESModule ? parser.parseModule() : parser.parseProgram()) : parser.parse();
if (!success && !silent) {
const auto diagnosticMessages = parser.diagnosticMessages();