diff options
-rw-r--r-- | src/qml/jsruntime/qv4urlobject.cpp | 6 | ||||
-rw-r--r-- | tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp | 13 |
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" |