]>
git.saurik.com Git - apple/javascriptcore.git/blob - tests/mozilla/ecma/Date/15.9.5.37-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/
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.
11 * The Original Code is Mozilla Communicator client code, released March
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
23 File Name: 15.9.5.37-1.js
24 ECMA Section: 15.9.5.37 Date.prototype.setUTCFullYear(year [, mon [, date ]] )
27 If mon is not specified, this behaves as if mon were specified with the
28 value getUTCMonth( ). If date is not specified, this behaves as if date
29 were specified with the value getUTCDate( ).
31 1. Let t be this time value; but if this time value is NaN, let t be +0.
32 2. Call ToNumber(year).
33 3. If mon is not specified, compute MonthFromTime(t); otherwise, call
35 4. If date is not specified, compute DateFromTime(t); otherwise, call
37 5. Compute MakeDay(Result(2), Result(3), Result(4)).
38 6. Compute MakeDate(Result(5), TimeWithinDay(t)).
39 7. Set the [[Value]] property of the this value to TimeClip(Result(6)).
40 8. Return the value of the [[Value]] property of the this value.
42 Author: christine@netscape.com
43 Date: 12 november 1997
45 Added some Year 2000 test cases.
47 var SECTION
= "15.9.5.37-1";
48 var VERSION
= "ECMA_1";
51 writeHeaderToLog( SECTION
+ " Date.prototype.setUTCFullYear(year [, mon [, date ]] )");
57 for ( tc
=0; tc
< testcases
.length
; tc
++ ) {
58 testcases
[tc
].passed
= writeTestCaseResult(
61 testcases
[tc
].description
+" = "+
62 testcases
[tc
].actual
);
64 testcases
[tc
].reason
+= ( testcases
[tc
].passed
) ? "" : "wrong value ";
70 function getTestCases() {
74 addNewTestCase( "TDATE = new Date(0);(TDATE).setUTCFullYear(1970);TDATE",
75 UTCDateFromTime(SetUTCFullYear(0,1970)),
76 LocalDateFromTime(SetUTCFullYear(0,1970)) );
78 addNewTestCase( "TDATE = new Date(0);(TDATE).setUTCFullYear(1971);TDATE",
79 UTCDateFromTime(SetUTCFullYear(0,1971)),
80 LocalDateFromTime(SetUTCFullYear(0,1971)) );
82 addNewTestCase( "TDATE = new Date(0);(TDATE).setUTCFullYear(1972);TDATE",
83 UTCDateFromTime(SetUTCFullYear(0,1972)),
84 LocalDateFromTime(SetUTCFullYear(0,1972)) );
86 addNewTestCase( "TDATE = new Date(0);(TDATE).setUTCFullYear(1968);TDATE",
87 UTCDateFromTime(SetUTCFullYear(0,1968)),
88 LocalDateFromTime(SetUTCFullYear(0,1968)) );
90 addNewTestCase( "TDATE = new Date(0);(TDATE).setUTCFullYear(1969);TDATE",
91 UTCDateFromTime(SetUTCFullYear(0,1969)),
92 LocalDateFromTime(SetUTCFullYear(0,1969)) );
94 addNewTestCase( "TDATE = new Date(0);(TDATE).setUTCFullYear(1969);TDATE",
95 UTCDateFromTime(SetUTCFullYear(0,1969)),
96 LocalDateFromTime(SetUTCFullYear(0,1969)) );
100 addNewTestCase( "TDATE = new Date(0); TDATE.setUTCFullYear(2000);TDATE",
101 UTCDateFromTime(SetUTCFullYear(0,2000)),
102 LocalDateFromTime(SetUTCFullYear(0,2000)) );
104 addNewTestCase( "TDATE = new Date(0); TDATE.setUTCFullYear(2001);TDATE",
105 UTCDateFromTime(SetUTCFullYear(0,2001)),
106 LocalDateFromTime(SetUTCFullYear(0,2001)) );
108 addNewTestCase( "TDATE = new Date(0); TDATE.setUTCFullYear(1999);TDATE",
109 UTCDateFromTime(SetUTCFullYear(0,1999)),
110 LocalDateFromTime(SetUTCFullYear(0,1999)) );
112 // Dates around 29 February 2000
114 var UTC_FEB_29_1972 = TIME_1970 + TimeInYear(1970) + TimeInYear(1971) +
115 31*msPerDay + 28*msPerDay;
117 var PST_FEB_29_1972 = UTC_FEB_29_1972 - TZ_DIFF * msPerHour;
119 addNewTestCase( "TDATE = new Date("+UTC_FEB_29_1972+"); "+
120 "TDATE.setUTCFullYear(2000);TDATE",
121 UTCDateFromTime(SetUTCFullYear(UTC_FEB_29_1972,2000)),
122 LocalDateFromTime(SetUTCFullYear(UTC_FEB_29_1972,2000)) );
124 addNewTestCase( "TDATE = new Date("+PST_FEB_29_1972+"); "+
125 "TDATE.setUTCFullYear(2000);TDATE",
126 UTCDateFromTime(SetUTCFullYear(PST_FEB_29_1972,2000)),
127 LocalDateFromTime(SetUTCFullYear(PST_FEB_29_1972,2000)) );
131 addNewTestCase( "TDATE = new Date(0); TDATE.setUTCFullYear(2005);TDATE",
132 UTCDateFromTime(SetUTCFullYear(0,2005)),
133 LocalDateFromTime(SetUTCFullYear(0,2005)) );
135 addNewTestCase( "TDATE = new Date(0); TDATE.setUTCFullYear(2004);TDATE",
136 UTCDateFromTime(SetUTCFullYear(0,2004)),
137 LocalDateFromTime(SetUTCFullYear(0,2004)) );
139 addNewTestCase( "TDATE = new Date(0); TDATE.setUTCFullYear(2006);TDATE",
140 UTCDateFromTime(SetUTCFullYear(0,2006)),
141 LocalDateFromTime(SetUTCFullYear(0,2006)) );
145 addNewTestCase( "TDATE = new Date(0); TDATE.setUTCFullYear(1900);TDATE",
146 UTCDateFromTime(SetUTCFullYear(0,1900)),
147 LocalDateFromTime(SetUTCFullYear(0,1900)) );
149 addNewTestCase( "TDATE = new Date(0); TDATE.setUTCFullYear(1899);TDATE",
150 UTCDateFromTime(SetUTCFullYear(0,1899)),
151 LocalDateFromTime(SetUTCFullYear(0,1899)) );
153 addNewTestCase( "TDATE = new Date(0); TDATE.setUTCFullYear(1901);TDATE",
154 UTCDateFromTime(SetUTCFullYear(0,1901)),
155 LocalDateFromTime(SetUTCFullYear(0,1901)) );
159 function addNewTestCase( DateString
, UTCDate
, LocalDate
) {
160 DateCase
= eval( DateString
);
162 var item
= testcases
.length
;
164 // fixed_year = ( ExpectDate.year >=1900 || ExpectDate.year < 2000 ) ? ExpectDate.year - 1900 : ExpectDate.year;
166 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getTime()", UTCDate
.value
, DateCase
.getTime() );
167 testcases
[item
++] = new TestCase( SECTION
, DateString
+".valueOf()", UTCDate
.value
, DateCase
.valueOf() );
169 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCFullYear()", UTCDate
.year
, DateCase
.getUTCFullYear() );
170 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCMonth()", UTCDate
.month
, DateCase
.getUTCMonth() );
171 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCDate()", UTCDate
.date
, DateCase
.getUTCDate() );
172 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCDay()", UTCDate
.day
, DateCase
.getUTCDay() );
173 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCHours()", UTCDate
.hours
, DateCase
.getUTCHours() );
174 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCMinutes()", UTCDate
.minutes
,DateCase
.getUTCMinutes() );
175 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCSeconds()", UTCDate
.seconds
,DateCase
.getUTCSeconds() );
176 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getUTCMilliseconds()", UTCDate
.ms
, DateCase
.getUTCMilliseconds() );
178 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getFullYear()", LocalDate
.year
, DateCase
.getFullYear() );
179 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getMonth()", LocalDate
.month
, DateCase
.getMonth() );
180 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getDate()", LocalDate
.date
, DateCase
.getDate() );
181 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getDay()", LocalDate
.day
, DateCase
.getDay() );
182 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getHours()", LocalDate
.hours
, DateCase
.getHours() );
183 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getMinutes()", LocalDate
.minutes
, DateCase
.getMinutes() );
184 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getSeconds()", LocalDate
.seconds
, DateCase
.getSeconds() );
185 testcases
[item
++] = new TestCase( SECTION
, DateString
+".getMilliseconds()", LocalDate
.ms
, DateCase
.getMilliseconds() );
187 DateCase
.toString
= Object
.prototype.toString
;
189 testcases
[item
++] = new TestCase( SECTION
,
190 DateString
+".toString=Object.prototype.toString;"+DateString
+".toString()",
192 DateCase
.toString() );
204 function LocalDateFromTime(t
) {
206 return ( MyDateFromTime(t
) );
208 function UTCDateFromTime(t
) {
209 return ( MyDateFromTime(t
) );
211 function MyDateFromTime( t
) {
212 var d
= new MyDate();
213 d
.year
= YearFromTime(t
);
214 d
.month
= MonthFromTime(t
);
215 d
.date
= DateFromTime(t
);
216 d
.hours
= HourFromTime(t
);
217 d
.minutes
= MinFromTime(t
);
218 d
.seconds
= SecFromTime(t
);
219 d
.ms
= msFromTime(t
);
221 d
.time
= MakeTime( d
.hours
, d
.minutes
, d
.seconds
, d
.ms
);
222 d
.value
= TimeClip( MakeDate( MakeDay( d
.year
, d
.month
, d
.date
), d
.time
) );
223 d
.day
= WeekDay( d
.value
);
227 function SetUTCFullYear( t
, year
, mon
, date
) {
228 var T
= ( t
!= t
) ? 0 : t
;
229 var YEAR
= Number(year
);
230 var MONTH
= ( mon
== void 0 ) ? MonthFromTime(T
) : Number( mon
);
231 var DATE
= ( date
== void 0 ) ? DateFromTime(T
) : Number( date
);
232 var DAY
= MakeDay( YEAR
, MONTH
, DATE
);
234 return ( TimeClip(MakeDate(DAY
, TimeWithinDay(T
))) );