From 7c83628f5e594cc91f4e3bfde32d0062f85d5ec4 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Mon, 28 Nov 2011 09:37:03 +0100 Subject: Fix the evaluation of JS switch statements in QML bindings. Task-number: QTBUG-17012 Change-Id: Ic132cf63ed08592fec9c759df1b8b4d5830acea6 Reviewed-by: Kent Hansen --- .../data/switchStatement.1.qml | 33 ++++++++++++++++++++++ .../data/switchStatement.2.qml | 33 ++++++++++++++++++++++ .../data/switchStatement.3.qml | 33 ++++++++++++++++++++++ .../data/switchStatement.4.qml | 31 ++++++++++++++++++++ .../data/switchStatement.5.qml | 12 ++++++++ 5 files changed, 142 insertions(+) create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.1.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.2.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.3.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.4.qml create mode 100644 tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.5.qml (limited to 'tests/auto/declarative/qdeclarativeecmascript/data') diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.1.qml new file mode 100644 index 0000000000..3c7870839d --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.1.qml @@ -0,0 +1,33 @@ +import Qt.test 1.0 + +MyQmlObject { + value: { + var value = 0 + switch (stringProperty) { + case "A": + value = value + 1 + value = value + 1 + /* should fall through */ + case "S": + value = value + 1 + value = value + 1 + value = value + 1 + break; + case "D": { // with curly braces + value = value + 1 + value = value + 1 + value = value + 1 + break; + } + case "F": { + value = value + 1 + value = value + 1 + value = value + 1 + } + /* should fall through */ + default: + value = value + 1 + } + } +} + diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.2.qml new file mode 100644 index 0000000000..928d36be1f --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.2.qml @@ -0,0 +1,33 @@ +import Qt.test 1.0 + +MyQmlObject { + value: { + var value = 0 + switch (stringProperty) { + case "A": + value = value + 1 + value = value + 1 + /* should fall through */ + case "S": + value = value + 1 + value = value + 1 + value = value + 1 + break; + default: + value = value + 1 + case "D": { // with curly braces + value = value + 1 + value = value + 1 + value = value + 1 + break; + } + case "F": { + value = value + 1 + value = value + 1 + value = value + 1 + } + /* should fall through */ + } + } +} + diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.3.qml new file mode 100644 index 0000000000..5b05d88767 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.3.qml @@ -0,0 +1,33 @@ +import Qt.test 1.0 + +MyQmlObject { + value: { + var value = 0 + switch (stringProperty) { + default: + value = value + 1 + case "A": + value = value + 1 + value = value + 1 + /* should fall through */ + case "S": + value = value + 1 + value = value + 1 + value = value + 1 + break; + case "D": { // with curly braces + value = value + 1 + value = value + 1 + value = value + 1 + break; + } + case "F": { + value = value + 1 + value = value + 1 + value = value + 1 + } + /* should fall through */ + } + } +} + diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.4.qml b/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.4.qml new file mode 100644 index 0000000000..43ba199a04 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.4.qml @@ -0,0 +1,31 @@ +import Qt.test 1.0 + +MyQmlObject { + value: { + var value = 0 + switch (stringProperty) { + case "A": + value = value + 1 + value = value + 1 + /* should fall through */ + case "S": + value = value + 1 + value = value + 1 + value = value + 1 + break; + case "D": { // with curly braces + value = value + 1 + value = value + 1 + value = value + 1 + break; + } + case "F": { + value = value + 1 + value = value + 1 + value = value + 1 + } + /* should fall through */ + } + } +} + diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.5.qml b/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.5.qml new file mode 100644 index 0000000000..e0fc62e392 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/switchStatement.5.qml @@ -0,0 +1,12 @@ +import Qt.test 1.0 + +MyQmlObject { + value: { + var value = 0 + switch (stringProperty) { + default: + value = value + 1 + } + } +} + -- cgit v1.2.3