js/src/tests/ecma/Date/15.9.5.30-1.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     7 /**
     8    File Name:          15.9.5.30-1.js
     9    ECMA Section:       15.9.5.30 Date.prototype.setHours(hour [, min [, sec [, ms ]]] )
    10    Description:
    11    If min is not specified, this behaves as if min were specified with the
    12    value getMinutes( ). If sec is not specified, this behaves as if sec were
    13    specified with the value getSeconds ( ). If ms is not specified, this
    14    behaves as if ms were specified with the value getMilliseconds( ).
    16    1.  Let t be the result of LocalTime(this time value).
    17    2.  Call ToNumber(hour).
    18    3.  If min is not specified, compute MinFromTime(t); otherwise, call
    19    ToNumber(min).
    20    4.  If sec is not specified, compute SecFromTime(t); otherwise, call
    21    ToNumber(sec).
    22    5.  If ms is not specified, compute msFromTime(t); otherwise, call
    23    ToNumber(ms).
    24    6.  Compute MakeTime(Result(2), Result(3), Result(4), Result(5)).
    25    7.  Compute UTC(MakeDate(Day(t), Result(6))).
    26    8.  Set the [[Value]] property of the this value to TimeClip(Result(7)).
    27    9.  Return the value of the [[Value]] property of the this value.
    29    Author:             christine@netscape.com
    30    Date:               12 november 1997
    31 */
    32 var SECTION = "15.9.5.30-1";
    33 var VERSION = "ECMA_1";
    34 startTest();
    36 writeHeaderToLog( SECTION + " Date.prototype.setHours( hour [, min, sec, ms] )");
    38 addNewTestCase( 0,0,0,0,void 0,
    39 		"TDATE = new Date(0);(TDATE).setHours(0);TDATE" );
    41 addNewTestCase( 28800000, 23, 59, 999,void 0,
    42 		"TDATE = new Date(28800000);(TDATE).setHours(23,59,999);TDATE" );
    44 addNewTestCase( 28800000, 999, 999, void 0, void 0,
    45 		"TDATE = new Date(28800000);(TDATE).setHours(999,999);TDATE" );
    47 addNewTestCase( 28800000,999,0, void 0, void 0,
    48 		"TDATE = new Date(28800000);(TDATE).setHours(999);TDATE" );
    50 addNewTestCase( 28800000,-8, void 0, void 0, void 0,
    51 		"TDATE = new Date(28800000);(TDATE).setHours(-8);TDATE" );
    53 addNewTestCase( 946684800000,8760, void 0, void 0, void 0,
    54                 "TDATE = new Date(946684800000);(TDATE).setHours(8760);TDATE" );
    56 addNewTestCase( TIME_2000 - msPerDay, 23, 59, 59, 999,
    57 		"d = new Date( " + (TIME_2000-msPerDay) +"); d.setHours(23,59,59,999)" );
    59 addNewTestCase( TIME_2000 - msPerDay, 23, 59, 59, 1000,
    60 		"d = new Date( " + (TIME_2000-msPerDay) +"); d.setHours(23,59,59,1000)" );
    62 test();
    64 function addNewTestCase( time, hours, min, sec, ms, DateString) {
    65   var UTCDate =   UTCDateFromTime( SetHours( time, hours, min, sec, ms ));
    66   var LocalDate = LocalDateFromTime( SetHours( time, hours, min, sec, ms ));
    68   var DateCase = new Date( time );
    70   if ( min == void 0 ) {
    71     DateCase.setHours( hours );
    72   } else {
    73     if ( sec == void 0 ) {
    74       DateCase.setHours( hours, min );
    75     } else {
    76       if ( ms == void 0 ) {
    77 	DateCase.setHours( hours, min, sec );
    78       } else {
    79 	DateCase.setHours( hours, min, sec, ms );
    80       }
    81     }
    82   }
    85   new TestCase( SECTION, DateString+".getTime()",             UTCDate.value,       DateCase.getTime() );
    86   new TestCase( SECTION, DateString+".valueOf()",             UTCDate.value,       DateCase.valueOf() );
    88   new TestCase( SECTION, DateString+".getUTCFullYear()",      UTCDate.year,    DateCase.getUTCFullYear() );
    89   new TestCase( SECTION, DateString+".getUTCMonth()",         UTCDate.month,  DateCase.getUTCMonth() );
    90   new TestCase( SECTION, DateString+".getUTCDate()",          UTCDate.date,   DateCase.getUTCDate() );
    91   new TestCase( SECTION, DateString+".getUTCDay()",           UTCDate.day,    DateCase.getUTCDay() );
    92   new TestCase( SECTION, DateString+".getUTCHours()",         UTCDate.hours,  DateCase.getUTCHours() );
    93   new TestCase( SECTION, DateString+".getUTCMinutes()",       UTCDate.minutes,DateCase.getUTCMinutes() );
    94   new TestCase( SECTION, DateString+".getUTCSeconds()",       UTCDate.seconds,DateCase.getUTCSeconds() );
    95   new TestCase( SECTION, DateString+".getUTCMilliseconds()",  UTCDate.ms,     DateCase.getUTCMilliseconds() );
    97   new TestCase( SECTION, DateString+".getFullYear()",         LocalDate.year,       DateCase.getFullYear() );
    98   new TestCase( SECTION, DateString+".getMonth()",            LocalDate.month,      DateCase.getMonth() );
    99   new TestCase( SECTION, DateString+".getDate()",             LocalDate.date,       DateCase.getDate() );
   100   new TestCase( SECTION, DateString+".getDay()",              LocalDate.day,        DateCase.getDay() );
   101   new TestCase( SECTION, DateString+".getHours()",            LocalDate.hours,      DateCase.getHours() );
   102   new TestCase( SECTION, DateString+".getMinutes()",          LocalDate.minutes,    DateCase.getMinutes() );
   103   new TestCase( SECTION, DateString+".getSeconds()",          LocalDate.seconds,    DateCase.getSeconds() );
   104   new TestCase( SECTION, DateString+".getMilliseconds()",     LocalDate.ms,         DateCase.getMilliseconds() );
   106   DateCase.toString = Object.prototype.toString;
   108   new TestCase( SECTION,
   109 		DateString+".toString=Object.prototype.toString;"+DateString+".toString()",
   110 		"[object Date]",
   111 		DateCase.toString() );
   112 }
   114 function MyDate() {
   115   this.year = 0;
   116   this.month = 0;
   117   this.date = 0;
   118   this.hours = 0;
   119   this.minutes = 0;
   120   this.seconds = 0;
   121   this.ms = 0;
   122 }
   123 function LocalDateFromTime(t) {
   124   t = LocalTime(t);
   125   return ( MyDateFromTime(t) );
   126 }
   127 function UTCDateFromTime(t) {
   128   return ( MyDateFromTime(t) );
   129 }
   130 function MyDateFromTime( t ) {
   131   var d = new MyDate();
   132   d.year = YearFromTime(t);
   133   d.month = MonthFromTime(t);
   134   d.date = DateFromTime(t);
   135   d.hours = HourFromTime(t);
   136   d.minutes = MinFromTime(t);
   137   d.seconds = SecFromTime(t);
   138   d.ms = msFromTime(t);
   140   d.day = WeekDay( t );
   141   d.time = MakeTime( d.hours, d.minutes, d.seconds, d.ms );
   142   d.value = TimeClip( MakeDate( MakeDay( d.year, d.month, d.date ), d.time ) );
   144   return (d);
   145 }
   146 function SetHours( t, hour, min, sec, ms ) {
   147   var TIME = LocalTime(t);
   148   var HOUR = Number(hour);
   149   var MIN =  ( min == void 0) ? MinFromTime(TIME) : Number(min);
   150   var SEC  = ( sec == void 0) ? SecFromTime(TIME) : Number(sec);
   151   var MS   = ( ms == void 0 ) ? msFromTime(TIME)  : Number(ms);
   152   var RESULT6 = MakeTime( HOUR,
   153 			  MIN,
   154 			  SEC,
   155 			  MS );
   156   var UTC_TIME = UTC(  MakeDate(Day(TIME), RESULT6) );
   157   return ( TimeClip(UTC_TIME) );
   158 }

mercurial