diff options
-rw-r--r-- | src/qml/parser/qqmljslexer.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qml/qjsengine/tst_qjsengine.cpp | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/qml/parser/qqmljslexer.cpp b/src/qml/parser/qqmljslexer.cpp index 69e73f1374..ae016076b8 100644 --- a/src/qml/parser/qqmljslexer.cpp +++ b/src/qml/parser/qqmljslexer.cpp @@ -823,7 +823,7 @@ int Lexer::scanString(ScanStringMode mode) if (_engine) { while (_codePtr <= _endPtr) { - if (isLineTerminator()) { + if (isLineTerminator() && quote != QLatin1Char('`')) { if (qmlMode()) break; _errorCode = IllegalCharacter; diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp index e4bf2ff1aa..b9050fad73 100644 --- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp +++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp @@ -216,6 +216,7 @@ private slots: void functionToString(); void protoChanges_QTBUG68369(); + void multilineStrings(); signals: void testSignal(); @@ -4265,6 +4266,17 @@ void tst_QJSEngine::protoChanges_QTBUG68369() QVERIFY(ok.toBool() == true); } +void tst_QJSEngine::multilineStrings() +{ + QJSEngine engine; + QJSValue result = engine.evaluate( + "var x = `a\nb`; x;" + ); + QVERIFY(result.isString()); + QVERIFY(result.toString() == QStringLiteral("a\nb")); + +} + QTEST_MAIN(tst_QJSEngine) #include "tst_qjsengine.moc" |