4
* Description: while statement
6
* Author: christine@netscape.com
9
var SECTION = "while-004";
10
var VERSION = "ECMA_2";
11
var TITLE = "while statement";
12
var BUGNUMBER="316725";
15
writeHeaderToLog( SECTION + " "+ TITLE);
18
var testcases = new Array();
29
* Break out of a while by calling return.
31
* Tests: 12.6.2 step 6.
38
result = "fail: hit code after return statement";
43
function DoWhile_1() {
44
description = "return statement in a while block";
48
testcases[tc++] = new TestCase(
50
"DoWhile_1" + description,
56
* While with a labeled continue statement. Verify that statements
57
* after the continue statement are not evaluated.
59
* Tests: 12.6.2 step 8.
62
function DoWhile_2() {
63
var description = "while with a labeled continue statement";
65
var result2 = "fail: did not execute code after loop, but inside label";
73
result1 = "failed: hit code after continue statement";
77
testcases[tc++] = new TestCase(
79
"DoWhile_2: " +description + " - code inside the loop, before the continue should be executed ("+j+")",
83
testcases[tc++] = new TestCase(
85
"DoWhile_2: " +description +" - code after labeled continue should not be executed",
89
testcases[tc++] = new TestCase(
91
"DoWhile_2: " +description +" - code after loop but inside label should be executed",
97
* While with a labeled break.
100
function DoWhile_3() {
101
var description = "while with a labeled break statement";
102
var result1 = "pass";
103
var result2 = "pass";
104
var result3 = "fail: did not get to code after label";
109
result1 = "fail: got to code after a break";
111
result2 = "fail: got to code outside of loop but inside label";
116
testcases[tc++] = new TestCase(
118
"DoWhile_3: " +description +" - verify break out of loop",
123
testcases[tc++] = new TestCase(
125
"DoWhile_3: " +description +" - verify break out of label",
129
testcases[tc++] = new TestCase(
131
"DoWhile_3: " +description + " - verify correct exit from label",
138
* Labled while with an unlabeled break
141
function DoWhile_4() {
142
var description = "labeled while with an unlabeled break";
143
var result1 = "pass";
144
var result2 = "pass";
145
var result3 = "fail: did not evaluate statement after label";
150
result1 = "fail: got to code after the break";
152
result2 = "fail: broke out of while, but not out of label";
156
testcases[tc++] = new TestCase(
158
"DoWhile_4: " +description +" - verify break out of while loop",
162
testcases[tc++] = new TestCase(
164
"DoWhile_4: " +description + " - verify break out of label",
168
testcases[tc++] = new TestCase(
170
"DoWhile_4: " +description +" - verify that statements after label are evaluated",
176
* in this case, should behave the same way as
180
function DoWhile_5() {
181
var description = "while with a labeled continue statement";
182
var result1 = "pass";
183
var result2 = "fail: did not execute code after loop, but inside label";
191
result1 = "failed: hit code after continue statement";
196
testcases[tc++] = new TestCase(
198
"DoWhile_5: " +description + " - continue should not execute statements above the loop",
202
testcases[tc++] = new TestCase(
204
"DoWhile_5: " +description +" - code after labeled continue should not be executed",
208
testcases[tc++] = new TestCase(
210
"DoWhile_5: " +description +" - code after loop but inside label should be executed",