• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/**
2 *  File Name:          dowhile-005
3 *  ECMA Section:
4 *  Description:        do...while statements
5 *
6 *  Test a labeled do...while.  Break out of the loop with no label
7 *  should break out of the loop, but not out of the label.
8 *
9 *  Currently causes an infinite loop in the monkey.  Uncomment the
10 *  print statement below and it works OK.
11 *
12 *  Author:             christine@netscape.com
13 *  Date:               26 August 1998
14 */
15    var SECTION = "dowhile-005";
16    var VERSION = "ECMA_2";
17    var TITLE   = "do...while with a labeled continue statement";
18    var BUGNUMBER = "316293";
19
20    startTest();
21    writeHeaderToLog( SECTION + " "+ TITLE);
22
23    var tc = 0;
24    var testcases = new Array();
25
26    NestedLabel();
27
28
29    test();
30
31    function NestedLabel() {
32        i = 0;
33        result1 = "pass";
34        result2 = "fail: did not hit code after inner loop";
35        result3 = "pass";
36
37        outer: {
38            do {
39                inner: {
40//                    print( i );
41                    break inner;
42                    result1 = "fail: did break out of inner label";
43                  }
44                result2 = "pass";
45                break outer;
46                print (i);
47            } while ( i++ < 100 );
48
49        }
50
51        result3 = "fail: did not break out of outer label";
52
53        testcases[tc++] = new TestCase(
54            SECTION,
55            "number of loop iterations",
56            0,
57            i );
58
59        testcases[tc++] = new TestCase(
60            SECTION,
61            "break out of inner loop",
62            "pass",
63            result1 );
64
65        testcases[tc++] = new TestCase(
66            SECTION,
67            "break out of outer loop",
68            "pass",
69            result2 );
70    }