]> git.saurik.com Git - apple/javascriptcore.git/blame - tests/mozilla/ecma_2/Statements/while-002.js
JavaScriptCore-576.tar.gz
[apple/javascriptcore.git] / tests / mozilla / ecma_2 / Statements / while-002.js
CommitLineData
b37bf2e1
A
1/**
2 * File Name: while-002
3 * ECMA Section:
4 * Description: while statement
5 *
6 * Verify that the while statement is not executed if the while expression is
7 * false
8 *
9 * Author: christine@netscape.com
10 * Date: 11 August 1998
11 */
12 var SECTION = "while-002";
13 var VERSION = "ECMA_2";
14 var TITLE = "while statement";
15
16 startTest();
17 writeHeaderToLog( SECTION + " "+ TITLE);
18
19 var tc = 0;
20 var testcases = new Array();
21
22 DoWhile( new DoWhileObject(
23 "while expression is null",
24 null,
25 "result = \"fail: should not have evaluated statements in while block;break"
26 ) );
27
28 DoWhile( new DoWhileObject(
29 "while expression is undefined",
30 void 0,
31 "result = \"fail: should not have evaluated statements in while block; break"
32 ));
33
34 DoWhile( new DoWhileObject(
35 "while expression is 0",
36 0,
37 "result = \"fail: should not have evaluated statements in while block; break;"
38 ));
39
40 DoWhile( new DoWhileObject(
41 "while expression is eval(\"\")",
42 eval(""),
43 "result = \"fail: should not have evaluated statements in while block; break"
44 ));
45
46 DoWhile( new DoWhileObject(
47 "while expression is NaN",
48 NaN,
49 "result = \"fail: should not have evaluated statements in while block; break"
50 ));
51
52 test();
53
54 function DoWhileObject( d, e, s ) {
55 this.description = d;
56 this.whileExpression = e;
57 this.statements = s;
58 }
59
60 function DoWhile( object ) {
61 result = "pass";
62
63 while ( expression = object.whileExpression ) {
64 eval( object.statements );
65 }
66
67 // verify that the while expression was evaluated
68
69 testcases[tc++] = new TestCase(
70 SECTION,
71 "verify that while expression was evaluated (should be "+
72 object.whileExpression +")",
73 "pass",
74 (object.whileExpression == expression ||
75 ( isNaN(object.whileExpression) && isNaN(expression) )
76 ) ? "pass" : "fail" );
77
78 testcases[tc++] = new TestCase(
79 SECTION,
80 object.description,
81 "pass",
82 result );
83 }