]> git.saurik.com Git - apple/javascriptcore.git/blob - tests/mozilla/ecma_2/Statements/dowhile-007.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / mozilla / ecma_2 / Statements / dowhile-007.js
1 /**
2 * File Name: dowhile-007
3 * ECMA Section:
4 * Description: do...while statements
5 *
6 * A general do...while test.
7 *
8 * Author: christine@netscape.com
9 * Date: 26 August 1998
10 */
11 var SECTION = "dowhile-007";
12 var VERSION = "ECMA_2";
13 var TITLE = "do...while";
14
15 startTest();
16 writeHeaderToLog( SECTION + " "+ TITLE);
17
18 var tc = 0;
19 var testcases = new Array();
20
21 DoWhile( new DoWhileObject( false, false, false, false ));
22 DoWhile( new DoWhileObject( true, false, false, false ));
23 DoWhile( new DoWhileObject( true, true, false, false ));
24 DoWhile( new DoWhileObject( true, true, true, false ));
25 DoWhile( new DoWhileObject( true, true, true, true ));
26 DoWhile( new DoWhileObject( false, false, false, true ));
27 DoWhile( new DoWhileObject( false, false, true, true ));
28 DoWhile( new DoWhileObject( false, true, true, true ));
29 DoWhile( new DoWhileObject( false, false, true, false ));
30
31 test();
32
33 function DoWhileObject( out1, out2, out3, in1 ) {
34 this.breakOutOne = out1;
35 this.breakOutTwo = out2;
36 this.breakOutThree = out3;
37 this.breakIn = in1;
38 }
39 function DoWhile( object ) {
40 result1 = false;
41 result2 = false;
42 result3 = false;
43 result4 = false;
44
45 outie:
46 do {
47 if ( object.breakOutOne ) {
48 break outie;
49 }
50 result1 = true;
51
52 innie:
53 do {
54 if ( object.breakOutTwo ) {
55 break outie;
56 }
57 result2 = true;
58
59 if ( object.breakIn ) {
60 break innie;
61 }
62 result3 = true;
63
64 } while ( false );
65 if ( object.breakOutThree ) {
66 break outie;
67 }
68 result4 = true;
69 } while ( false );
70
71 testcases[tc++] = new TestCase(
72 SECTION,
73 "break one: ",
74 (object.breakOutOne) ? false : true,
75 result1 );
76
77 testcases[tc++] = new TestCase(
78 SECTION,
79 "break two: ",
80 (object.breakOutOne||object.breakOutTwo) ? false : true,
81 result2 );
82
83 testcases[tc++] = new TestCase(
84 SECTION,
85 "break three: ",
86 (object.breakOutOne||object.breakOutTwo||object.breakIn) ? false : true,
87 result3 );
88
89 testcases[tc++] = new TestCase(
90 SECTION,
91 "break four: ",
92 (object.breakOutOne||object.breakOutTwo||object.breakOutThree) ? false: true,
93 result4 );
94 }