aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qjsengine/tst_qjsengine.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-02-21 15:48:39 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-03-03 08:12:53 +0100
commit8048d8215ca61c38f1263b93cd41b04e2c66165d (patch)
tree9f9e162741a2fa447e42513f7bd05e222b232911 /tests/auto/qml/qjsengine/tst_qjsengine.cpp
parent3b416a69869c8a1b8cdc802a77201066280c9026 (diff)
Fix a crash in the register allocator
The base for an indexed access can be a constant. Change-Id: Icc529c02fb0ff2ac30d6f40088781b6ecfba81fc Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'tests/auto/qml/qjsengine/tst_qjsengine.cpp')
-rw-r--r--tests/auto/qml/qjsengine/tst_qjsengine.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
index a11185431b..53e86268a6 100644
--- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp
+++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
@@ -148,6 +148,7 @@ private slots:
void arrayPop_QTBUG_35979();
void regexpLastMatch();
+ void indexedAccesses();
signals:
void testSignal();
@@ -2869,6 +2870,19 @@ void tst_QJSEngine::regexpLastMatch()
}
+void tst_QJSEngine::indexedAccesses()
+{
+ QJSEngine engine;
+ QJSValue v = engine.evaluate("function foo() { return 1[1] } foo()");
+ QVERIFY(v.isUndefined());
+ v = engine.evaluate("function foo() { return /x/[1] } foo()");
+ QVERIFY(v.isUndefined());
+ v = engine.evaluate("function foo() { return \"xy\"[1] } foo()");
+ QVERIFY(v.isString());
+ v = engine.evaluate("function foo() { return \"xy\"[2] } foo()");
+ QVERIFY(v.isUndefined());
+}
+
QTEST_MAIN(tst_QJSEngine)
#include "tst_qjsengine.moc"