initial import
[vuplus_webkit] / Source / JavaScriptCore / tests / mozilla / ecma / Array / 15.4-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:          15.4-1.js
24     ECMA Section:       15.4 Array Objects
25
26     Description:        Every Array object has a length property whose value
27                         is always an integer with positive sign and less than
28                         Math.pow(2,32).
29
30     Author:             christine@netscape.com
31     Date:               28 october 1997
32
33 */
34     var SECTION = "15.4-1";
35     var VERSION = "ECMA_1";
36     startTest();
37     var TITLE   = "Array Objects";
38
39     writeHeaderToLog( SECTION + " "+ TITLE);
40
41     var testcases = getTestCases();
42     test();
43
44 function getTestCases() {
45     var array = new Array();
46     var item = 0;
47
48     array[item++] = new TestCase(   SECTION,
49                                     "var myarr = new Array(); myarr[Math.pow(2,32)-2]='hi'; myarr[Math.pow(2,32)-2]",
50                                     "hi",
51                                     eval("var myarr = new Array(); myarr[Math.pow(2,32)-2]='hi'; myarr[Math.pow(2,32)-2]")
52                                 );
53     array[item++] = new TestCase(   SECTION,
54                                     "var myarr = new Array(); myarr[Math.pow(2,32)-2]='hi'; myarr.length",
55                                     (Math.pow(2,32)-1),
56                                     eval("var myarr = new Array(); myarr[Math.pow(2,32)-2]='hi'; myarr.length")
57                                 );
58     array[item++] = new TestCase(   SECTION,
59                                     "var myarr = new Array(); myarr[Math.pow(2,32)-3]='hi'; myarr[Math.pow(2,32)-3]",
60                                     "hi",
61                                     eval("var myarr = new Array(); myarr[Math.pow(2,32)-3]='hi'; myarr[Math.pow(2,32)-3]")
62                                 );
63     array[item++] = new TestCase(   SECTION,
64                                     "var myarr = new Array(); myarr[Math.pow(2,32)-3]='hi'; myarr.length",
65                                     (Math.pow(2,32)-2),
66                                     eval("var myarr = new Array(); myarr[Math.pow(2,32)-3]='hi'; myarr.length")
67                                 );
68
69     array[item++] = new TestCase(   SECTION,
70                                     "var myarr = new Array(); myarr[Math.pow(2,31)-2]='hi'; myarr[Math.pow(2,31)-2]",
71                                     "hi",
72                                     eval("var myarr = new Array(); myarr[Math.pow(2,31)-2]='hi'; myarr[Math.pow(2,31)-2]")
73                                 );
74     array[item++] = new TestCase(   SECTION,
75                                     "var myarr = new Array(); myarr[Math.pow(2,31)-2]='hi'; myarr.length",
76                                     (Math.pow(2,31)-1),
77                                     eval("var myarr = new Array(); myarr[Math.pow(2,31)-2]='hi'; myarr.length")
78                                 );
79
80     array[item++] = new TestCase(   SECTION,
81                                     "var myarr = new Array(); myarr[Math.pow(2,31)-1]='hi'; myarr[Math.pow(2,31)-1]",
82                                     "hi",
83                                     eval("var myarr = new Array(); myarr[Math.pow(2,31)-1]='hi'; myarr[Math.pow(2,31)-1]")
84                                 );
85     array[item++] = new TestCase(   SECTION,
86                                     "var myarr = new Array(); myarr[Math.pow(2,31)-1]='hi'; myarr.length",
87                                     (Math.pow(2,31)),
88                                     eval("var myarr = new Array(); myarr[Math.pow(2,31)-1]='hi'; myarr.length")
89                                 );
90
91
92     array[item++] = new TestCase(   SECTION,
93                                     "var myarr = new Array(); myarr[Math.pow(2,31)]='hi'; myarr[Math.pow(2,31)]",
94                                     "hi",
95                                     eval("var myarr = new Array(); myarr[Math.pow(2,31)]='hi'; myarr[Math.pow(2,31)]")
96                                 );
97     array[item++] = new TestCase(   SECTION,
98                                     "var myarr = new Array(); myarr[Math.pow(2,31)]='hi'; myarr.length",
99                                     (Math.pow(2,31)+1),
100                                     eval("var myarr = new Array(); myarr[Math.pow(2,31)]='hi'; myarr.length")
101                                 );
102
103     array[item++] = new TestCase(   SECTION,
104                                     "var myarr = new Array(); myarr[Math.pow(2,30)-2]='hi'; myarr[Math.pow(2,30)-2]",
105                                     "hi",
106                                     eval("var myarr = new Array(); myarr[Math.pow(2,30)-2]='hi'; myarr[Math.pow(2,30)-2]")
107                                 );
108     array[item++] = new TestCase(   SECTION,
109                                     "var myarr = new Array(); myarr[Math.pow(2,30)-2]='hi'; myarr.length",
110                                     (Math.pow(2,30)-1),
111                                     eval("var myarr = new Array(); myarr[Math.pow(2,30)-2]='hi'; myarr.length")
112                                 );
113     return ( array );
114 }
115 function test() {
116     for ( tc=0; tc < testcases.length; tc++ ) {
117         testcases[tc].passed = writeTestCaseResult(
118                             testcases[tc].expect,
119                             testcases[tc].actual,
120                             testcases[tc].description +" = "+ testcases[tc].actual );
121
122         testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value ";
123     }
124     stopTest();
125     return ( testcases );
126 }