aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/parser/qqmljslexer.cpp2
-rw-r--r--tests/auto/qml/qjsengine/tst_qjsengine.cpp12
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"