aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2019-07-24 08:42:17 +0200
committerFabian Kosmale <fabian.kosmale@qt.io>2019-07-26 11:14:35 +0200
commitcbe445dd915760d81a467b5285bacd208e44e365 (patch)
treee8dccb850c61cc9a080b746c1eb1b94fcdd77912 /tools
parent66368ffdd93e63a182aa6961f821ca14290ecf80 (diff)
linter: Cover all supported JavaScript functions
+ qDebug/commented out code cleanup Change-Id: Id6a4410391eed2fbf6ff0dd7aaffa1de4d5b892c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'tools')
-rw-r--r--tools/qmllint/findunqualified.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/tools/qmllint/findunqualified.cpp b/tools/qmllint/findunqualified.cpp
index 69e1473975..0d1cbf5823 100644
--- a/tools/qmllint/findunqualified.cpp
+++ b/tools/qmllint/findunqualified.cpp
@@ -38,6 +38,7 @@
#include <private/qqmljsast_p.h>
#include <private/qqmljslexer_p.h>
#include <private/qqmljsparser_p.h>
+#include <private/qv4codegen_p.h>
QDebug &operator<<(QDebug dbg, const QQmlJS::AST::SourceLocation &loc);
@@ -225,8 +226,7 @@ FindUnqualifiedIDVisitor::localQmlFile2FakeMetaObject(QString filePath)
break;
}
case UiObjectMember::Kind_UiEnumDeclaration: {
- auto enumDeclaration = static_cast<UiEnumDeclaration *>(initMembers->member);
- qDebug() << "enumdecl" << enumDeclaration->name;
+ // nothing to do
break;
}
case UiObjectMember::Kind_UiObjectBinding: {
@@ -235,8 +235,6 @@ FindUnqualifiedIDVisitor::localQmlFile2FakeMetaObject(QString filePath)
}
case UiObjectMember::Kind_UiObjectDefinition: {
// creates nothing accessible
- /*auto objectDefinition = static_cast<UiObjectDefinition*>(initMembers->member);
- qDebug() << "objdef" << objectDefinition->qualifiedTypeNameId->name;*/
break;
}
case UiObjectMember::Kind_UiPublicMember: {
@@ -549,15 +547,19 @@ FindUnqualifiedIDVisitor::FindUnqualifiedIDVisitor(QStringList const &qmltypeDir
m_colorOut.insertColorMapping(Normal, ColorOutput::DefaultColor);
m_colorOut.insertColorMapping(Hint, ColorOutput::GreenForeground);
QLatin1String jsGlobVars[] = {
- QLatin1String ("Array"), QLatin1String("Boolean"), QLatin1String("Date"), QLatin1String("Function"), QLatin1String("Math"), QLatin1String("Number"), QLatin1String("Object"), QLatin1String("RegExp"), QLatin1String("String"),
- QLatin1String("Error"), QLatin1String("EvalError"), QLatin1String("RangeError"), QLatin1String("ReferenceError"), QLatin1String("SyntaxError"), QLatin1String("TypeError"), QLatin1String("URIError"),
- QLatin1String("encodeURI"), QLatin1String("encodeURIComponent"), QLatin1String("decodeURI"), QLatin1String("decodeURIComponent"), QLatin1String("escape"), QLatin1String("unescape"),
- QLatin1String("isFinite"), QLatin1String("isNanN"), QLatin1String("parseFloat"), QLatin1String("parseInt"),
- QLatin1String("eval"), QLatin1String("console"), QLatin1String("print"), QLatin1String("gc"),
+ /* Not listed on the MDN page; browser and QML extensions: */
+ // console/debug api
+ QLatin1String("console"), QLatin1String("print"),
+ // garbage collector
+ QLatin1String("gc"),
+ // i18n
QLatin1String("qsTr"), QLatin1String("qsTrId"), QLatin1String("QT_TR_NOOP"), QLatin1String("QT_TRANSLATE_NOOP"), QLatin1String("QT_TRID_NOOP"),
- QLatin1String("XMLHttpRequest"), QLatin1String("JSON"), QLatin1String("Promise"),
- QLatin1String("undefined")
+ // XMLHttpRequest
+ QLatin1String("XMLHttpRequest")
};
+ for (const char **globalName = QV4::Compiler::Codegen::s_globalNames; *globalName != nullptr; ++globalName) {
+ m_currentScope->insertJSIdentifier(QString::fromLatin1(*globalName), QQmlJS::AST::VariableScope::Const);
+ }
for (const auto& jsGlobVar: jsGlobVars)
m_currentScope->insertJSIdentifier(jsGlobVar, QQmlJS::AST::VariableScope::Const);
}
@@ -597,7 +599,6 @@ void FindUnqualifiedIDVisitor::visitFunctionExpressionHelper(QQmlJS::AST::Functi
m_currentScope->insertJSIdentifier(name, VariableScope::Const);
}
}
- // qDebug() << fexpr->firstSourceLocation() << "function expression" << fexpr->name;
QString name = fexpr->name.toString();
if (name.isEmpty())
name = "<anon>";