// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/*---
info: |
    When Date is called as part of a new expression it is
    a constructor: it initializes the newly created object
esid: sec-date-year-month-date-hours-minutes-seconds-ms
es5id: 15.9.3.1_A1_T3
description: 4 arguments, (year, month, date, hours)
---*/

if (typeof new Date(1899, 11, 31, 23) !== "object") {
  $ERROR("#1.1: typeof new Date(1899, 11, 31, 23) should be 'object'");
}

if (new Date(1899, 11, 31, 23) === undefined) {
  $ERROR("#1.2: new Date(1899, 11, 31, 23) should not be undefined");
}

var x13 = new Date(1899, 11, 31, 23);
if (typeof x13 !== "object") {
  $ERROR("#1.3: typeof new Date(1899, 11, 31, 23) should be 'object'");
}

var x14 = new Date(1899, 11, 31, 23);
if (x14 === undefined) {
  $ERROR("#1.4: new Date(1899, 11, 31, 23) should not be undefined");
}

if (typeof new Date(1899, 12, 1, 0) !== "object") {
  $ERROR("#2.1: typeof new Date(1899, 12, 1, 0) should be 'object'");
}

if (new Date(1899, 12, 1, 0) === undefined) {
  $ERROR("#2.2: new Date(1899, 12, 1, 0) should not be undefined");
}

var x23 = new Date(1899, 12, 1, 0);
if (typeof x23 !== "object") {
  $ERROR("#2.3: typeof new Date(1899, 12, 1, 0) should be 'object'");
}

var x24 = new Date(1899, 12, 1, 0);
if (x24 === undefined) {
  $ERROR("#2.4: new Date(1899, 12, 1, 0) should not be undefined");
}

if (typeof new Date(1900, 0, 1, 0) !== "object") {
  $ERROR("#3.1: typeof new Date(1900, 0, 1, 0) should be 'object'");
}

if (new Date(1900, 0, 1, 0) === undefined) {
  $ERROR("#3.2: new Date(1900, 0, 1, 0) should not be undefined");
}

var x33 = new Date(1900, 0, 1, 0);
if (typeof x33 !== "object") {
  $ERROR("#3.3: typeof new Date(1900, 0, 1, 0) should be 'object'");
}

var x34 = new Date(1900, 0, 1, 0);
if (x34 === undefined) {
  $ERROR("#3.4: new Date(1900, 0, 1, 0) should not be undefined");
}

if (typeof new Date(1969, 11, 31, 23) !== "object") {
  $ERROR("#4.1: typeof new Date(1969, 11, 31, 23) should be 'object'");
}

if (new Date(1969, 11, 31, 23) === undefined) {
  $ERROR("#4.2: new Date(1969, 11, 31, 23) should not be undefined");
}

var x43 = new Date(1969, 11, 31, 23);
if (typeof x43 !== "object") {
  $ERROR("#4.3: typeof new Date(1969, 11, 31, 23) should be 'object'");
}

var x44 = new Date(1969, 11, 31, 23);
if (x44 === undefined) {
  $ERROR("#4.4: new Date(1969, 11, 31, 23) should not be undefined");
}

if (typeof new Date(1969, 12, 1, 0) !== "object") {
  $ERROR("#5.1: typeof new Date(1969, 12, 1, 0) should be 'object'");
}

if (new Date(1969, 12, 1, 0) === undefined) {
  $ERROR("#5.2: new Date(1969, 12, 1, 0) should not be undefined");
}

var x53 = new Date(1969, 12, 1, 0);
if (typeof x53 !== "object") {
  $ERROR("#5.3: typeof new Date(1969, 12, 1, 0) should be 'object'");
}

var x54 = new Date(1969, 12, 1, 0);
if (x54 === undefined) {
  $ERROR("#5.4: new Date(1969, 12, 1, 0) should not be undefined");
}

if (typeof new Date(1970, 0, 1, 0) !== "object") {
  $ERROR("#6.1: typeof new Date(1970, 0, 1, 0) should be 'object'");
}

if (new Date(1970, 0, 1, 0) === undefined) {
  $ERROR("#6.2: new Date(1970, 0, 1, 0) should not be undefined");
}

var x63 = new Date(1970, 0, 1, 0);
if (typeof x63 !== "object") {
  $ERROR("#6.3: typeof new Date(1970, 0, 1, 0) should be 'object'");
}

var x64 = new Date(1970, 0, 1, 0);
if (x64 === undefined) {
  $ERROR("#6.4: new Date(1970, 0, 1, 0) should not be undefined");
}

if (typeof new Date(1999, 11, 31, 23) !== "object") {
  $ERROR("#7.1: typeof new Date(1999, 11, 31, 23) should be 'object'");
}

if (new Date(1999, 11, 31, 23) === undefined) {
  $ERROR("#7.2: new Date(1999, 11, 31, 23) should not be undefined");
}

var x73 = new Date(1999, 11, 31, 23);
if (typeof x73 !== "object") {
  $ERROR("#7.3: typeof new Date(1999, 11, 31, 23) should be 'object'");
}

var x74 = new Date(1999, 11, 31, 23);
if (x74 === undefined) {
  $ERROR("#7.4: new Date(1999, 11, 31, 23) should not be undefined");
}

if (typeof new Date(1999, 12, 1, 0) !== "object") {
  $ERROR("#8.1: typeof new Date(1999, 12, 1, 0) should be 'object'");
}

if (new Date(1999, 12, 1, 0) === undefined) {
  $ERROR("#8.2: new Date(1999, 12, 1, 0) should not be undefined");
}

var x83 = new Date(1999, 12, 1, 0);
if (typeof x83 !== "object") {
  $ERROR("#8.3: typeof new Date(1999, 12, 1, 0) should be 'object'");
}

var x84 = new Date(1999, 12, 1, 0);
if (x84 === undefined) {
  $ERROR("#8.4: new Date(1999, 12, 1, 0) should not be undefined");
}

if (typeof new Date(2000, 0, 1, 0) !== "object") {
  $ERROR("#9.1: typeof new Date(2000, 0, 1, 0) should be 'object'");
}

if (new Date(2000, 0, 1, 0) === undefined) {
  $ERROR("#9.2: new Date(2000, 0, 1, 0) should not be undefined");
}

var x93 = new Date(2000, 0, 1, 0);
if (typeof x93 !== "object") {
  $ERROR("#9.3: typeof new Date(2000, 0, 1, 0) should be 'object'");
}

var x94 = new Date(2000, 0, 1, 0);
if (x94 === undefined) {
  $ERROR("#9.4: new Date(2000, 0, 1, 0) should not be undefined");
}

if (typeof new Date(2099, 11, 31, 23) !== "object") {
  $ERROR("#10.1: typeof new Date(2099, 11, 31, 23) should be 'object'");
}

if (new Date(2099, 11, 31, 23) === undefined) {
  $ERROR("#10.2: new Date(2099, 11, 31, 23) should not be undefined");
}

var x103 = new Date(2099, 11, 31, 23);
if (typeof x103 !== "object") {
  $ERROR("#10.3: typeof new Date(2099, 11, 31, 23) should be 'object'");
}

var x104 = new Date(2099, 11, 31, 23);
if (x104 === undefined) {
  $ERROR("#10.4: new Date(2099, 11, 31, 23) should not be undefined");
}

if (typeof new Date(2099, 12, 1, 0) !== "object") {
  $ERROR("#11.1: typeof new Date(2099, 12, 1, 0) should be 'object'");
}

if (new Date(2099, 12, 1, 0) === undefined) {
  $ERROR("#11.2: new Date(2099, 12, 1, 0) should not be undefined");
}

var x113 = new Date(2099, 12, 1, 0);
if (typeof x113 !== "object") {
  $ERROR("#11.3: typeof new Date(2099, 12, 1, 0) should be 'object'");
}

var x114 = new Date(2099, 12, 1, 0);
if (x114 === undefined) {
  $ERROR("#11.4: new Date(2099, 12, 1, 0) should not be undefined");
}

if (typeof new Date(2100, 0, 1, 0) !== "object") {
  $ERROR("#12.1: typeof new Date(2100, 0, 1, 0) should be 'object'");
}

if (new Date(2100, 0, 1, 0) === undefined) {
  $ERROR("#12.2: new Date(2100, 0, 1, 0) should not be undefined");
}

var x123 = new Date(2100, 0, 1, 0);
if (typeof x123 !== "object") {
  $ERROR("#12.3: typeof new Date(2100, 0, 1, 0) should be 'object'");
}

var x124 = new Date(2100, 0, 1, 0);
if (x124 === undefined) {
  $ERROR("#12.4: new Date(2100, 0, 1, 0) should not be undefined");
}

reportCompare(0, 0);
