michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: michael@0: /** michael@0: File Name: 15.9.5.23-2.js michael@0: ECMA Section: 15.9.5.23 michael@0: Description: Date.prototype.setTime michael@0: michael@0: 1. If the this value is not a Date object, generate a runtime error. michael@0: 2. Call ToNumber(time). michael@0: 3. Call TimeClip(Result(1)). michael@0: 4. Set the [[Value]] property of the this value to Result(2). michael@0: 5. Return the value of the [[Value]] property of the this value. michael@0: michael@0: Author: christine@netscape.com michael@0: Date: 12 november 1997 michael@0: */ michael@0: michael@0: var SECTION = "15.9.5.23-2"; michael@0: var VERSION = "ECMA_1"; michael@0: startTest(); michael@0: var TITLE = "Date.prototype.setTime()"; michael@0: michael@0: writeHeaderToLog( SECTION + " "+ TITLE); michael@0: michael@0: test_times = new Array( TIME_NOW, TIME_0000, TIME_1970, TIME_1900, TIME_2000, michael@0: UTC_FEB_29_2000, UTC_JAN_1_2005 ); michael@0: michael@0: michael@0: for ( var j = 0; j < test_times.length; j++ ) { michael@0: addTestCase( new Date(TIME_2000), test_times[j] ); michael@0: } michael@0: michael@0: michael@0: new TestCase( SECTION, michael@0: "(new Date(NaN)).setTime()", michael@0: NaN, michael@0: (new Date(NaN)).setTime() ); michael@0: michael@0: new TestCase( SECTION, michael@0: "Date.prototype.setTime.length", michael@0: 1, michael@0: Date.prototype.setTime.length ); michael@0: test(); michael@0: michael@0: function addTestCase( d, t ) { michael@0: new TestCase( SECTION, michael@0: "( "+d+" ).setTime("+t+")", michael@0: t, michael@0: d.setTime(t) ); michael@0: michael@0: new TestCase( SECTION, michael@0: "( "+d+" ).setTime("+(t+1.1)+")", michael@0: TimeClip(t+1.1), michael@0: d.setTime(t+1.1) ); michael@0: michael@0: new TestCase( SECTION, michael@0: "( "+d+" ).setTime("+(t+1)+")", michael@0: t+1, michael@0: d.setTime(t+1) ); michael@0: michael@0: new TestCase( SECTION, michael@0: "( "+d+" ).setTime("+(t-1)+")", michael@0: t-1, michael@0: d.setTime(t-1) ); michael@0: michael@0: new TestCase( SECTION, michael@0: "( "+d+" ).setTime("+(t-TZ_ADJUST)+")", michael@0: t-TZ_ADJUST, michael@0: d.setTime(t-TZ_ADJUST) ); michael@0: michael@0: new TestCase( SECTION, michael@0: "( "+d+" ).setTime("+(t+TZ_ADJUST)+")", michael@0: t+TZ_ADJUST, michael@0: d.setTime(t+TZ_ADJUST) ); michael@0: }