/** | |
* File Name: while-002 | |
* ECMA Section: | |
* Description: while statement | |
* | |
* Verify that the while statement is not executed if the while expression is | |
* false | |
* | |
* Author: christine@netscape.com | |
* Date: 11 August 1998 | |
*/ | |
var SECTION = "while-002"; | |
var VERSION = "ECMA_2"; | |
var TITLE = "while statement"; | |
startTest(); | |
writeHeaderToLog( SECTION + " "+ TITLE); | |
var tc = 0; | |
var testcases = new Array(); | |
DoWhile( new DoWhileObject( | |
"while expression is null", | |
null, | |
"result = \"fail: should not have evaluated statements in while block;break" | |
) ); | |
DoWhile( new DoWhileObject( | |
"while expression is undefined", | |
void 0, | |
"result = \"fail: should not have evaluated statements in while block; break" | |
)); | |
DoWhile( new DoWhileObject( | |
"while expression is 0", | |
0, | |
"result = \"fail: should not have evaluated statements in while block; break;" | |
)); | |
DoWhile( new DoWhileObject( | |
"while expression is eval(\"\")", | |
eval(""), | |
"result = \"fail: should not have evaluated statements in while block; break" | |
)); | |
DoWhile( new DoWhileObject( | |
"while expression is NaN", | |
NaN, | |
"result = \"fail: should not have evaluated statements in while block; break" | |
)); | |
test(); | |
function DoWhileObject( d, e, s ) { | |
this.description = d; | |
this.whileExpression = e; | |
this.statements = s; | |
} | |
function DoWhile( object ) { | |
result = "pass"; | |
while ( expression = object.whileExpression ) { | |
eval( object.statements ); | |
} | |
// verify that the while expression was evaluated | |
testcases[tc++] = new TestCase( | |
SECTION, | |
"verify that while expression was evaluated (should be "+ | |
object.whileExpression +")", | |
"pass", | |
(object.whileExpression == expression || | |
( isNaN(object.whileExpression) && isNaN(expression) ) | |
) ? "pass" : "fail" ); | |
testcases[tc++] = new TestCase( | |
SECTION, | |
object.description, | |
"pass", | |
result ); | |
} |