initial import
[vuplus_webkit] / Source / JavaScriptCore / tests / mozilla / js1_2 / function / regexparg-1.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:          regexparg-1.js
24     Description:        
25
26     Regression test for 
27     http://scopus/bugsplat/show_bug.cgi?id=122787
28     Passing a regular expression as the first constructor argument fails
29
30     Author:             christine@netscape.com
31     Date:               15 June 1998
32 */
33
34     var SECTION = "JS_1.2";
35     var VERSION = "JS_1.2";
36     startTest();
37     var TITLE   = "The variable statment";
38
39     writeHeaderToLog( SECTION + " "+ TITLE);
40
41     var testcases = new Array();
42
43     function f(x) {return x;}
44
45     x = f(/abc/);
46
47     testcases[tc++] = new TestCase( SECTION,
48        "function f(x) {return x;}; f()",
49        void 0,
50        f() );
51
52     testcases[tc++] = new TestCase( SECTION,
53         "f(\"hi\")",
54         "hi",
55         f("hi") );
56
57     testcases[tc++] = new TestCase( SECTION,
58         "new f(/abc/) +''",
59         "/abc/",
60         new f(/abc/) +"" );
61
62     testcases[tc++] = new TestCase( SECTION,
63          "f(/abc/)+'')",
64          "/abc/",
65          f(/abc/) +'');    
66         
67     testcases[tc++] = new TestCase( SECTION,
68         "typeof f(/abc/)",
69         "function",
70         typeof f(/abc/) );
71
72     testcases[tc++] = new TestCase( SECTION,
73         "typeof new f(/abc/)",
74         "function",
75         typeof new f(/abc/) );
76
77     testcases[tc++] = new TestCase( SECTION,
78          "x = new f(/abc/); x(\"hi\")",
79          null,
80          x("hi") );
81
82
83  // js> x()
84     test();
85
86 function test() {
87     for ( tc=0; tc < testcases.length; tc++ ) {
88         testcases[tc].passed = writeTestCaseResult(
89                             testcases[tc].expect,
90                             testcases[tc].actual,
91                             testcases[tc].description +" = "+
92                             testcases[tc].actual );
93
94         testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
95     }
96     stopTest();
97     return ( testcases );
98 }