aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/jsruntime/qv4arraydata.cpp2
-rw-r--r--tests/auto/qml/qjsengine/tst_qjsengine.cpp1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp
index 9156a94e09..13a7bb281b 100644
--- a/src/qml/jsruntime/qv4arraydata.cpp
+++ b/src/qml/jsruntime/qv4arraydata.cpp
@@ -580,6 +580,8 @@ uint ArrayData::append(Object *obj, const ArrayObject *otherObj, uint n)
if (other->isSparse())
obj->initSparseArray();
+ else
+ obj->arrayCreate();
uint oldSize = obj->getLength();
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
index 53e86268a6..263dd0f963 100644
--- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp
+++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
@@ -1011,6 +1011,7 @@ void tst_QJSEngine::evaluate_data()
QTest::newRow("/a/g") << QString("/a/g") << -1 << false << -1;
QTest::newRow("/a/gim") << QString("/a/gim") << -1 << false << -1;
QTest::newRow("/a/gimp") << QString("/a/gimp") << 1 << true << 1;
+ QTest::newRow("empty-array-concat") << QString("var a = []; var b = [1]; var c = a.concat(b); ") << 1 << false << -1;
}
void tst_QJSEngine::evaluate()