| /* -*- tab-width: 2; indent-tabs-mode: nil; js-indent-level: 2 -*- */ |
| /* This Source Code Form is subject to the terms of the Mozilla Public |
| * License, v. 2.0. If a copy of the MPL was not distributed with this |
| * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
| |
| |
| /** |
| * 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); |
| |
| 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 |
| |
| new TestCase( |
| SECTION, |
| "verify that while expression was evaluated (should be "+ |
| object.whileExpression +")", |
| "pass", |
| (object.whileExpression == expression || |
| ( isNaN(object.whileExpression) && isNaN(expression) ) |
| ) ? "pass" : "fail" ); |
| |
| new TestCase( |
| SECTION, |
| object.description, |
| "pass", |
| result ); |
| } |