summaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/switch.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/switch.js')
-rw-r--r--deps/v8/test/mjsunit/switch.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/switch.js b/deps/v8/test/mjsunit/switch.js
index 6a61fe5940..4722e9e5d8 100644
--- a/deps/v8/test/mjsunit/switch.js
+++ b/deps/v8/test/mjsunit/switch.js
@@ -460,3 +460,58 @@ function test_switches(opt) {
test_switches(false);
test_switches(true);
+
+
+// Test labeled and anonymous breaks in switch statements
+(function test_switch_break() {
+ A: for (var i = 1; i < 10; i++) {
+ switch (i) {
+ case 1:
+ break A;
+ }
+ }
+ assertEquals(1, i);
+
+ for (var i = 1; i < 10; i++) {
+ B: switch (i) {
+ case 1:
+ break B;
+ }
+ }
+ assertEquals(10, i);
+
+ for (var i = 1; i < 10; i++) {
+ switch (i) {
+ case 1:
+ break;
+ }
+ }
+ assertEquals(10, i);
+
+ switch (1) {
+ case 1:
+ C: for (var i = 1; i < 10; i++) {
+ break C;
+ }
+ i = 2;
+ }
+ assertEquals(2, i);
+
+ switch (1) {
+ case 1:
+ for (var i = 1; i < 10; i++) {
+ break;
+ }
+ i = 2;
+ }
+ assertEquals(2, i);
+
+ D: switch (1) {
+ case 1:
+ for (var i = 1; i < 10; i++) {
+ break D;
+ }
+ i = 2;
+ }
+ assertEquals(1, i);
+})();