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 (at) 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 } 95