initial import
[vuplus_webkit] / Source / JavaScriptCore / tests / mozilla / js1_3 / Script / function-002.js
1 /* The contents of this file are subject to the Netscape Public
2  * License Version 1.1 (the "License"); you may not use this file
3  * except in compliance with the License. You may obtain a copy of
4  * the License at http://www.mozilla.org/NPL/
5  *
6  * Software distributed under the License is distributed on an "AS
7  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
8  * implied. See the License for the specific language governing
9  * rights and limitations under the License.
10  *
11  * The Original Code is Mozilla Communicator client code, released March
12  * 31, 1998.
13  *
14  * The Initial Developer of the Original Code is Netscape Communications
15  * Corporation. Portions created by Netscape are
16  * Copyright (C) 1998 Netscape Communications Corporation. All
17  * Rights Reserved.
18  *
19  * Contributor(s): 
20  * 
21  */
22 /**
23     File Name:          function-002.js
24     Section:
25     Description:
26
27     http://scopus.mcom.com/bugsplat/show_bug.cgi?id=249579
28
29     function definitions in conditional statements should be allowed.
30
31     Author:             christine@netscape.com
32     Date:               12 november 1997
33 */
34     var SECTION = "function-002";
35     var VERSION = "JS1_3";
36     var TITLE   = "Regression test for 249579";
37     var BUGNUMBER="249579";
38
39     startTest();
40     writeHeaderToLog( SECTION + " "+ TITLE);
41
42     var testcases = new Array();
43
44     testcases[tc++] = new TestCase(
45         SECTION,
46         "0?function(){}:0",
47         0,
48         0?function(){}:0 );
49
50
51     bar = true;
52     foo = bar ? function () { return true; } : function() { return false; };
53
54     testcases[tc++] = new TestCase(
55         SECTION,
56         "bar = true; foo = bar ? function () { return true; } : function() { return false; }; foo()",
57         true,
58         foo() );
59
60
61     test();
62
63 function test() {
64     for ( tc=0; tc < testcases.length; tc++ ) {
65         testcases[tc].passed = writeTestCaseResult(
66                             testcases[tc].expect,
67                             testcases[tc].actual,
68                             testcases[tc].description +" = "+
69                             testcases[tc].actual );
70
71         testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
72     }
73     stopTest();
74     return ( testcases );
75 }