| Index: src/date.js
 | 
| diff --git a/src/date.js b/src/date.js
 | 
| index d0e24abc503eb21124a430dc981ed17fe767d010..a54cb238c51b35bdea282d3c71fb4612072ae164 100644
 | 
| --- a/src/date.js
 | 
| +++ b/src/date.js
 | 
| @@ -318,7 +318,6 @@ function DateNow() {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.2
 | 
|  function DateToString() {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this)
 | 
|    if (NUMBER_IS_NAN(t)) return kInvalidDate;
 | 
|    var time_zone_string = LocalTimezoneString(this)
 | 
| @@ -328,7 +327,6 @@ function DateToString() {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.3
 | 
|  function DateToDateString() {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    if (NUMBER_IS_NAN(t)) return kInvalidDate;
 | 
|    return DateString(this);
 | 
| @@ -337,7 +335,6 @@ function DateToDateString() {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.4
 | 
|  function DateToTimeString() {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    if (NUMBER_IS_NAN(t)) return kInvalidDate;
 | 
|    var time_zone_string = LocalTimezoneString(this);
 | 
| @@ -353,7 +350,6 @@ function DateToLocaleString() {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.6
 | 
|  function DateToLocaleDateString() {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    if (NUMBER_IS_NAN(t)) return kInvalidDate;
 | 
|    return LongDateString(this);
 | 
| @@ -362,7 +358,6 @@ function DateToLocaleDateString() {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.7
 | 
|  function DateToLocaleTimeString() {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    if (NUMBER_IS_NAN(t)) return kInvalidDate;
 | 
|    return TimeString(this);
 | 
| @@ -371,133 +366,114 @@ function DateToLocaleTimeString() {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.8
 | 
|  function DateValueOf() {
 | 
| -  CHECK_DATE(this);
 | 
|    return UTC_DATE_VALUE(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.9
 | 
|  function DateGetTime() {
 | 
| -  CHECK_DATE(this);
 | 
|    return UTC_DATE_VALUE(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.10
 | 
|  function DateGetFullYear() {
 | 
| -  CHECK_DATE(this);
 | 
|    return LOCAL_YEAR(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.11
 | 
|  function DateGetUTCFullYear() {
 | 
| -  CHECK_DATE(this);
 | 
|    return UTC_YEAR(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.12
 | 
|  function DateGetMonth() {
 | 
| -  CHECK_DATE(this);
 | 
|    return LOCAL_MONTH(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.13
 | 
|  function DateGetUTCMonth() {
 | 
| -  CHECK_DATE(this);
 | 
|    return UTC_MONTH(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.14
 | 
|  function DateGetDate() {
 | 
| -  CHECK_DATE(this);
 | 
|    return LOCAL_DAY(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.15
 | 
|  function DateGetUTCDate() {
 | 
| -  CHECK_DATE(this);
 | 
|    return UTC_DAY(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.16
 | 
|  function DateGetDay() {
 | 
| -  CHECK_DATE(this);
 | 
|    return LOCAL_WEEKDAY(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.17
 | 
|  function DateGetUTCDay() {
 | 
| -  CHECK_DATE(this);
 | 
|    return UTC_WEEKDAY(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.18
 | 
|  function DateGetHours() {
 | 
| -  CHECK_DATE(this);
 | 
|    return LOCAL_HOUR(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.19
 | 
|  function DateGetUTCHours() {
 | 
| -  CHECK_DATE(this);
 | 
|    return UTC_HOUR(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.20
 | 
|  function DateGetMinutes() {
 | 
| -  CHECK_DATE(this);
 | 
|    return LOCAL_MIN(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.21
 | 
|  function DateGetUTCMinutes() {
 | 
| -  CHECK_DATE(this);
 | 
|    return UTC_MIN(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.22
 | 
|  function DateGetSeconds() {
 | 
| -  CHECK_DATE(this);
 | 
|    return LOCAL_SEC(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.23
 | 
|  function DateGetUTCSeconds() {
 | 
| -  CHECK_DATE(this);
 | 
|    return UTC_SEC(this)
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.24
 | 
|  function DateGetMilliseconds() {
 | 
| -  CHECK_DATE(this);
 | 
|    return LOCAL_MS(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.25
 | 
|  function DateGetUTCMilliseconds() {
 | 
| -  CHECK_DATE(this);
 | 
|    return UTC_MS(this);
 | 
|  }
 | 
|  
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.26
 | 
|  function DateGetTimezoneOffset() {
 | 
| -  CHECK_DATE(this);
 | 
|    return TIMEZONE_OFFSET(this);
 | 
|  }
 | 
|  
 | 
| @@ -512,7 +488,6 @@ function DateSetTime(ms) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.28
 | 
|  function DateSetMilliseconds(ms) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = LOCAL_DATE_VALUE(this);
 | 
|    ms = ToNumber(ms);
 | 
|    var time = MakeTime(LOCAL_HOUR(this), LOCAL_MIN(this), LOCAL_SEC(this), ms);
 | 
| @@ -522,7 +497,6 @@ function DateSetMilliseconds(ms) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.29
 | 
|  function DateSetUTCMilliseconds(ms) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    ms = ToNumber(ms);
 | 
|    var time = MakeTime(UTC_HOUR(this),
 | 
| @@ -535,7 +509,6 @@ function DateSetUTCMilliseconds(ms) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.30
 | 
|  function DateSetSeconds(sec, ms) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = LOCAL_DATE_VALUE(this);
 | 
|    sec = ToNumber(sec);
 | 
|    ms = %_ArgumentsLength() < 2 ? LOCAL_MS(this) : ToNumber(ms);
 | 
| @@ -546,7 +519,6 @@ function DateSetSeconds(sec, ms) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.31
 | 
|  function DateSetUTCSeconds(sec, ms) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    sec = ToNumber(sec);
 | 
|    ms = %_ArgumentsLength() < 2 ? UTC_MS(this) : ToNumber(ms);
 | 
| @@ -557,7 +529,6 @@ function DateSetUTCSeconds(sec, ms) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.33
 | 
|  function DateSetMinutes(min, sec, ms) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = LOCAL_DATE_VALUE(this);
 | 
|    min = ToNumber(min);
 | 
|    var argc = %_ArgumentsLength();
 | 
| @@ -570,7 +541,6 @@ function DateSetMinutes(min, sec, ms) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.34
 | 
|  function DateSetUTCMinutes(min, sec, ms) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    min = ToNumber(min);
 | 
|    var argc = %_ArgumentsLength();
 | 
| @@ -583,7 +553,6 @@ function DateSetUTCMinutes(min, sec, ms) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.35
 | 
|  function DateSetHours(hour, min, sec, ms) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = LOCAL_DATE_VALUE(this);
 | 
|    hour = ToNumber(hour);
 | 
|    var argc = %_ArgumentsLength();
 | 
| @@ -597,7 +566,6 @@ function DateSetHours(hour, min, sec, ms) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.34
 | 
|  function DateSetUTCHours(hour, min, sec, ms) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    hour = ToNumber(hour);
 | 
|    var argc = %_ArgumentsLength();
 | 
| @@ -611,7 +579,6 @@ function DateSetUTCHours(hour, min, sec, ms) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.36
 | 
|  function DateSetDate(date) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = LOCAL_DATE_VALUE(this);
 | 
|    date = ToNumber(date);
 | 
|    var day = MakeDay(LOCAL_YEAR(this), LOCAL_MONTH(this), date);
 | 
| @@ -621,7 +588,6 @@ function DateSetDate(date) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.37
 | 
|  function DateSetUTCDate(date) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    date = ToNumber(date);
 | 
|    var day = MakeDay(UTC_YEAR(this), UTC_MONTH(this), date);
 | 
| @@ -631,7 +597,6 @@ function DateSetUTCDate(date) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.38
 | 
|  function DateSetMonth(month, date) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = LOCAL_DATE_VALUE(this);
 | 
|    month = ToNumber(month);
 | 
|    date = %_ArgumentsLength() < 2 ? LOCAL_DAY(this) : ToNumber(date);
 | 
| @@ -642,7 +607,6 @@ function DateSetMonth(month, date) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.39
 | 
|  function DateSetUTCMonth(month, date) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    month = ToNumber(month);
 | 
|    date = %_ArgumentsLength() < 2 ? UTC_DAY(this) : ToNumber(date);
 | 
| @@ -653,7 +617,6 @@ function DateSetUTCMonth(month, date) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.40
 | 
|  function DateSetFullYear(year, month, date) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = LOCAL_DATE_VALUE(this);
 | 
|    year = ToNumber(year);
 | 
|    var argc = %_ArgumentsLength();
 | 
| @@ -674,7 +637,6 @@ function DateSetFullYear(year, month, date) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.41
 | 
|  function DateSetUTCFullYear(year, month, date) {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    year = ToNumber(year);
 | 
|    var argc = %_ArgumentsLength();
 | 
| @@ -695,7 +657,6 @@ function DateSetUTCFullYear(year, month, date) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.42
 | 
|  function DateToUTCString() {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    if (NUMBER_IS_NAN(t)) return kInvalidDate;
 | 
|    // Return UTC string of the form: Sat, 31 Jan 1970 23:00:00 GMT
 | 
| @@ -709,7 +670,6 @@ function DateToUTCString() {
 | 
|  
 | 
|  // ECMA 262 - B.2.4
 | 
|  function DateGetYear() {
 | 
| -  CHECK_DATE(this);
 | 
|    return LOCAL_YEAR(this) - 1900;
 | 
|  }
 | 
|  
 | 
| @@ -757,7 +717,6 @@ function PadInt(n, digits) {
 | 
|  
 | 
|  // ECMA 262 - 15.9.5.43
 | 
|  function DateToISOString() {
 | 
| -  CHECK_DATE(this);
 | 
|    var t = UTC_DATE_VALUE(this);
 | 
|    if (NUMBER_IS_NAN(t)) throw MakeRangeError("invalid_time_value", []);
 | 
|    var year = this.getUTCFullYear();
 | 
| 
 |