/** * File Name: dowhile-007 * ECMA Section: * Description: do...while statements * * A general do...while test. * * Author: christine@netscape.com * Date: 26 August 1998 */ var SECTION = "dowhile-007"; var VERSION = "ECMA_2"; var TITLE = "do...while"; startTest(); writeHeaderToLog( SECTION + " "+ TITLE); var tc = 0; var testcases = new Array(); DoWhile( new DoWhileObject( false, false, false, false )); DoWhile( new DoWhileObject( true, false, false, false )); DoWhile( new DoWhileObject( true, true, false, false )); DoWhile( new DoWhileObject( true, true, true, false )); DoWhile( new DoWhileObject( true, true, true, true )); DoWhile( new DoWhileObject( false, false, false, true )); DoWhile( new DoWhileObject( false, false, true, true )); DoWhile( new DoWhileObject( false, true, true, true )); DoWhile( new DoWhileObject( false, false, true, false )); test(); function DoWhileObject( out1, out2, out3, in1 ) { this.breakOutOne = out1; this.breakOutTwo = out2; this.breakOutThree = out3; this.breakIn = in1; } function DoWhile( object ) { result1 = false; result2 = false; result3 = false; result4 = false; outie: do { if ( object.breakOutOne ) { break outie; } result1 = true; innie: do { if ( object.breakOutTwo ) { break outie; } result2 = true; if ( object.breakIn ) { break innie; } result3 = true; } while ( false ); if ( object.breakOutThree ) { break outie; } result4 = true; } while ( false ); testcases[tc++] = new TestCase( SECTION, "break one: ", (object.breakOutOne) ? false : true, result1 ); testcases[tc++] = new TestCase( SECTION, "break two: ", (object.breakOutOne||object.breakOutTwo) ? false : true, result2 ); testcases[tc++] = new TestCase( SECTION, "break three: ", (object.breakOutOne||object.breakOutTwo||object.breakIn) ? false : true, result3 ); testcases[tc++] = new TestCase( SECTION, "break four: ", (object.breakOutOne||object.breakOutTwo||object.breakOutThree) ? false: true, result4 ); }