aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/jsruntime/qv4urlobject.cpp6
-rw-r--r--tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp13
2 files changed, 14 insertions, 5 deletions
diff --git a/src/qml/jsruntime/qv4urlobject.cpp b/src/qml/jsruntime/qv4urlobject.cpp
index 7e52c63248..6f9a9ecb69 100644
--- a/src/qml/jsruntime/qv4urlobject.cpp
+++ b/src/qml/jsruntime/qv4urlobject.cpp
@@ -659,12 +659,8 @@ ReturnedValue UrlCtor::virtualCallAsConstructor(const FunctionObject *that, cons
Scope scope(v4);
ScopedValue arg1(scope, argv[0]);
- String *arg1StringValue = arg1->stringValue();
- if (arg1StringValue == nullptr)
- return v4->throwTypeError(QLatin1String("Invalid parameter provided"));
-
- QString arg1String = arg1StringValue->toQString();
+ QString arg1String = arg1->toQString();
QString urlString;
if (argc == 2) {
diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
index 9b750d5399..0865628061 100644
--- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
+++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
@@ -335,6 +335,9 @@ private slots:
void qualifiedScopeInCustomParser();
void checkUncreatableNoReason();
+
+ void checkURLtoURLObject();
+
private:
QQmlEngine engine;
QStringList defaultImportPathList;
@@ -5929,6 +5932,16 @@ void tst_qqmllanguage::checkUncreatableNoReason()
QCOMPARE(c.errors().first().description(), QString("Type cannot be created in QML."));
}
+void tst_qqmllanguage::checkURLtoURLObject()
+{
+ QQmlEngine engine;
+ QString qml = QString("import QtQuick 2.0\nItem { property url source: 'file:///foo/bar/'; "
+ "Component.onCompleted: { new URL(parent.source); } }");
+ QQmlComponent c(&engine);
+ c.setData(qml.toUtf8(), QUrl::fromLocalFile(QDir::currentPath()));
+ QCOMPARE(c.errors().count(), 0);
+}
+
QTEST_MAIN(tst_qqmllanguage)
#include "tst_qqmllanguage.moc"