]> git.saurik.com Git - apple/javascriptcore.git/blob - tests/mozilla/ecma_2/Statements/dowhile-002.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / mozilla / ecma_2 / Statements / dowhile-002.js
1 /**
2 * File Name: dowhile-002
3 * ECMA Section:
4 * Description: do...while statements
5 *
6 * Verify that code after a labeled break is not executed. Verify that
7 * a labeled break breaks you out of the whole labeled block, and not
8 * just the current iteration statement.
9 *
10 * Author: christine@netscape.com
11 * Date: 11 August 1998
12 */
13 var SECTION = "dowhile-002";
14 var VERSION = "ECMA_2";
15 var TITLE = "do...while with a labeled continue statement";
16
17 startTest();
18 writeHeaderToLog( SECTION + " "+ TITLE);
19
20 var tc = 0;
21 var testcases = new Array();
22
23 LabeledContinue( 0, 1 );
24 LabeledContinue( 1, 1 );
25 LabeledContinue( -1, 1 );
26 LabeledContinue( 5, 5 );
27
28 test();
29
30 // The labeled statment contains statements after the labeled break.
31 // Verify that the statements after the break are not executed.
32
33 function LabeledContinue( limit, expect ) {
34 i = 0;
35 result1 = "pass";
36 result2 = "pass";
37
38 woohoo: {
39 do {
40 i++;
41 if ( ! (i < limit) ) {
42 break woohoo;
43 result1 = "fail: evaluated statement after a labeled break";
44 }
45 } while ( true );
46
47 result2 = "failed: broke out of loop, but not out of labeled block";
48 }
49
50 testcases[tc++] = new TestCase(
51 SECTION,
52 "do while ( " + i +" < " + limit +" )",
53 expect,
54 i );
55
56 testcases[tc++] = new TestCase(
57 SECTION,
58 "breaking out of a do... while loop",
59 "pass",
60 result1 );
61
62
63 testcases[tc++] = new TestCase(
64 SECTION,
65 "breaking out of a labeled do...while loop",
66 "pass",
67 result2 );
68 }