js/src/tests/ecma/Date/15.9.4.3.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 var SECTION = "15.9.4.3";
     8 var TITLE = "Date.UTC( year, month, date, hours, minutes, seconds, ms )";
    10 // Dates around 1970
    12 addNewTestCase( Date.UTC( 1970,0,1,0,0,0,0),
    13 		"Date.UTC( 1970,0,1,0,0,0,0)",
    14 		utc(1970,0,1,0,0,0,0) );
    16 addNewTestCase( Date.UTC( 1969,11,31,23,59,59,999),
    17 		"Date.UTC( 1969,11,31,23,59,59,999)",
    18 		utc(1969,11,31,23,59,59,999) );
    19 addNewTestCase( Date.UTC( 1972,1,29,23,59,59,999),
    20 		"Date.UTC( 1972,1,29,23,59,59,999)",
    21 		utc(1972,1,29,23,59,59,999) );
    22 addNewTestCase( Date.UTC( 1972,2,1,23,59,59,999),
    23 		"Date.UTC( 1972,2,1,23,59,59,999)",
    24 		utc(1972,2,1,23,59,59,999) );
    25 addNewTestCase( Date.UTC( 1968,1,29,23,59,59,999),
    26 		"Date.UTC( 1968,1,29,23,59,59,999)",
    27 		utc(1968,1,29,23,59,59,999) );
    28 addNewTestCase( Date.UTC( 1968,2,1,23,59,59,999),
    29 		"Date.UTC( 1968,2,1,23,59,59,999)",
    30 		utc(1968,2,1,23,59,59,999) );
    31 addNewTestCase( Date.UTC( 1969,0,1,0,0,0,0),
    32 		"Date.UTC( 1969,0,1,0,0,0,0)",
    33 		utc(1969,0,1,0,0,0,0) );
    34 addNewTestCase( Date.UTC( 1969,11,31,23,59,59,1000),
    35 		"Date.UTC( 1969,11,31,23,59,59,1000)",
    36 		utc(1970,0,1,0,0,0,0) );
    37 addNewTestCase( Date.UTC( 1969,Number.NaN,31,23,59,59,999),
    38 		"Date.UTC( 1969,Number.NaN,31,23,59,59,999)",
    39 		utc(1969,Number.NaN,31,23,59,59,999) );
    41 // Dates around 2000
    43 addNewTestCase( Date.UTC( 1999,11,31,23,59,59,999),
    44 		"Date.UTC( 1999,11,31,23,59,59,999)",
    45 		utc(1999,11,31,23,59,59,999) );
    46 addNewTestCase( Date.UTC( 2000,0,1,0,0,0,0),
    47 		"Date.UTC( 2000,0,1,0,0,0,0)",
    48 		utc(2000,0,1,0,0,0,0) );
    50 // Dates around 1900
    51 addNewTestCase( Date.UTC( 1899,11,31,23,59,59,999),
    52 		"Date.UTC( 1899,11,31,23,59,59,999)",
    53 		utc(1899,11,31,23,59,59,999) );
    54 addNewTestCase( Date.UTC( 1900,0,1,0,0,0,0),
    55 		"Date.UTC( 1900,0,1,0,0,0,0)",
    56 		utc(1900,0,1,0,0,0,0) );
    57 addNewTestCase( Date.UTC( 1973,0,1,0,0,0,0),
    58 		"Date.UTC( 1973,0,1,0,0,0,0)",
    59 		utc(1973,0,1,0,0,0,0) );
    60 addNewTestCase( Date.UTC( 1776,6,4,12,36,13,111),
    61 		"Date.UTC( 1776,6,4,12,36,13,111)",
    62 		utc(1776,6,4,12,36,13,111) );
    63 addNewTestCase( Date.UTC( 2525,9,18,15,30,1,123),
    64 		"Date.UTC( 2525,9,18,15,30,1,123)",
    65 		utc(2525,9,18,15,30,1,123) );
    67 // Dates around 29 Feb 2000
    69 addNewTestCase( Date.UTC( 2000,1,29,0,0,0,0 ),
    70 		"Date.UTC( 2000,1,29,0,0,0,0 )",
    71 		utc(2000,1,29,0,0,0,0) );
    72 addNewTestCase( Date.UTC( 2000,1,29,8,0,0,0 ),
    73 		"Date.UTC( 2000,1,29,8,0,0,0 )",
    74 		utc(2000,1,29,8,0,0,0) );
    76 // Dates around 1 Jan 2005
    78 addNewTestCase( Date.UTC( 2005,0,1,0,0,0,0 ),
    79 		"Date.UTC( 2005,0,1,0,0,0,0 )",
    80 		utc(2005,0,1,0,0,0,0) );
    81 addNewTestCase( Date.UTC( 2004,11,31,16,0,0,0 ),
    82 		"Date.UTC( 2004,11,31,16,0,0,0 )",
    83 		utc(2004,11,31,16,0,0,0) );
    85 test();
    87 function addNewTestCase( DateCase, DateString, ExpectDate) {
    88   DateCase = DateCase;
    90   new TestCase( SECTION, DateString,         ExpectDate.value,       DateCase );
    91   new TestCase( SECTION, DateString,         ExpectDate.value,       DateCase );
    92 }
    94 function MyDate() {
    95   this.year = 0;
    96   this.month = 0;
    97   this.date = 0;
    98   this.hours = 0;
    99   this.minutes = 0;
   100   this.seconds = 0;
   101   this.ms = 0;
   102 }
   104 function utc( year, month, date, hours, minutes, seconds, ms ) {
   105   d = new MyDate();
   106   d.year      = Number(year);
   108   if (month)
   109     d.month     = Number(month);
   110   if (date)
   111     d.date      = Number(date);
   112   if (hours)
   113     d.hours     = Number(hours);
   114   if (minutes)
   115     d.minutes   = Number(minutes);
   116   if (seconds)
   117     d.seconds   = Number(seconds);
   118   if (ms)
   119     d.ms        = Number(ms);
   121   if ( isNaN(d.year) && 0 <= ToInteger(d.year) && d.year <= 99 ) {
   122     d.year = 1900 + ToInteger(d.year);
   123   }
   125   if (isNaN(month) || isNaN(year) || isNaN(date) || isNaN(hours) ||
   126       isNaN(minutes) || isNaN(seconds) || isNaN(ms) ) {
   127     d.year = Number.NaN;
   128     d.month = Number.NaN;
   129     d.date = Number.NaN;
   130     d.hours = Number.NaN;
   131     d.minutes = Number.NaN;
   132     d.seconds = Number.NaN;
   133     d.ms = Number.NaN;
   134     d.value = Number.NaN;
   135     d.time = Number.NaN;
   136     d.day =Number.NaN;
   137     return d;
   138   }
   140   d.day = MakeDay( d.year, d.month, d.date );
   141   d.time = MakeTime( d.hours, d.minutes, d.seconds, d.ms );
   142   d.value = (TimeClip( MakeDate(d.day,d.time)));
   144   return d;
   145 }
   147 function UTCTime( t ) {
   148   sign = ( t < 0 ) ? -1 : 1;
   149   return ( (t +(TZ_DIFF*msPerHour)) );
   150 }

mercurial