diff options
Diffstat (limited to 'Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/dowhile-007.js')
-rw-r--r-- | Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/dowhile-007.js | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/dowhile-007.js b/Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/dowhile-007.js new file mode 100644 index 0000000..849e70e --- /dev/null +++ b/Source/JavaScriptCore/tests/mozilla/ecma_2/Statements/dowhile-007.js @@ -0,0 +1,94 @@ +/** + * 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 ); +} |