12e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org// Copyright 2014 the V8 project authors. All rights reserved.
22e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org// Use of this source code is governed by a BSD-style license that can be
32e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org// found in the LICENSE file.
42e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org
52e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.orgfunction timezone(tz) {
62e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  var str = (new Date(2014, 0, 10)).toString();
72e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  if (tz == "CET") {
82e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org    return str == "Fri Jan 10 2014 00:00:00 GMT+0100 (CET)";
92e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  }
102e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  if (tz == "BRT") {
112e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org    return str == "Fri Jan 10 2014 00:00:00 GMT-0200 (BRST)";
122e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  }
132e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  if (tz == "PST") {
142e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org    return str == "Fri Jan 10 2014 00:00:00 GMT-0800 (PST)";
152e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  }
162e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  return false;
172e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org}
182e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org
192e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.orgif (timezone("CET")) {
202e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Mar 29 2014 22:59:00 GMT+0100 (CET)",
212e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 29, 22, 59)).toString());
222e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 29 Mar 2014 21:59:00 GMT",
232e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 29, 22, 59)).toUTCString());
242e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Mar 29 2014 23:00:00 GMT+0100 (CET)",
252e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 29, 23, 0)).toString());
262e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 29 Mar 2014 22:00:00 GMT",
272e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 29, 23, 0)).toUTCString());
282e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Mar 29 2014 23:59:00 GMT+0100 (CET)",
292e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 29, 23, 59)).toString());
302e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 29 Mar 2014 22:59:00 GMT",
312e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 29, 23, 59)).toUTCString());
322e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 30 2014 00:00:00 GMT+0100 (CET)",
332e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 0, 0)).toString());
342e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 29 Mar 2014 23:00:00 GMT",
352e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 0, 0)).toUTCString());
362e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 30 2014 00:59:00 GMT+0100 (CET)",
372e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 0, 59)).toString());
382e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 29 Mar 2014 23:59:00 GMT",
392e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 0, 59)).toUTCString());
402e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 30 2014 01:00:00 GMT+0100 (CET)",
412e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 1, 0)).toString());
422e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 30 Mar 2014 00:00:00 GMT",
432e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 1, 0)).toUTCString());
442e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 30 2014 01:59:00 GMT+0100 (CET)",
452e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 1, 59)).toString());
462e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 30 Mar 2014 00:59:00 GMT",
472e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 1, 59)).toUTCString());
482e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 30 2014 03:00:00 GMT+0200 (CEST)",
492e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 2, 0)).toString());
502e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 30 Mar 2014 01:00:00 GMT",
512e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 2, 0)).toUTCString());
522e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 30 2014 03:59:00 GMT+0200 (CEST)",
532e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 2, 59)).toString());
542e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 30 Mar 2014 01:59:00 GMT",
552e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 2, 59)).toUTCString());
562e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 30 2014 03:00:00 GMT+0200 (CEST)",
572e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 3, 0)).toString());
582e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 30 Mar 2014 01:00:00 GMT",
592e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 3, 0)).toUTCString());
602e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 30 2014 03:59:00 GMT+0200 (CEST)",
612e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 3, 59)).toString());
622e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 30 Mar 2014 01:59:00 GMT",
632e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 3, 59)).toUTCString());
642e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 30 2014 04:00:00 GMT+0200 (CEST)",
652e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 4, 0)).toString());
662e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 30 Mar 2014 02:00:00 GMT",
672e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 30, 4, 0)).toUTCString());
682e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Oct 25 2014 22:59:00 GMT+0200 (CEST)",
692e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 25, 22, 59)).toString());
702e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 25 Oct 2014 20:59:00 GMT",
712e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 25, 22, 59)).toUTCString());
722e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Oct 25 2014 23:00:00 GMT+0200 (CEST)",
732e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 25, 23, 0)).toString());
742e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 25 Oct 2014 21:00:00 GMT",
752e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 25, 23, 0)).toUTCString());
762e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Oct 25 2014 23:59:00 GMT+0200 (CEST)",
772e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 25, 23, 59)).toString());
782e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 25 Oct 2014 21:59:00 GMT",
792e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 25, 23, 59)).toUTCString());
802e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 26 2014 00:00:00 GMT+0200 (CEST)",
812e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 0, 0)).toString());
822e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 25 Oct 2014 22:00:00 GMT",
832e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 0, 0)).toUTCString());
842e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 26 2014 00:59:00 GMT+0200 (CEST)",
852e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 0, 59)).toString());
862e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 25 Oct 2014 22:59:00 GMT",
872e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 0, 59)).toUTCString());
882e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 26 2014 01:00:00 GMT+0200 (CEST)",
892e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 1, 0)).toString());
902e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 25 Oct 2014 23:00:00 GMT",
912e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 1, 0)).toUTCString());
922e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 26 2014 01:59:00 GMT+0200 (CEST)",
932e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 1, 59)).toString());
942e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat, 25 Oct 2014 23:59:00 GMT",
952e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 1, 59)).toUTCString());
962e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 26 2014 02:00:00 GMT+0200 (CEST)",
972e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 2, 0)).toString());
982e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 26 Oct 2014 00:00:00 GMT",
992e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 2, 0)).toUTCString());
1002e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 26 2014 02:59:00 GMT+0200 (CEST)",
1012e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 2, 59)).toString());
1022e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 26 Oct 2014 00:59:00 GMT",
1032e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 2, 59)).toUTCString());
1042e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 26 2014 03:00:00 GMT+0100 (CET)",
1052e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 3, 0)).toString());
1062e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 26 Oct 2014 02:00:00 GMT",
1072e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 3, 0)).toUTCString());
1082e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 26 2014 03:59:00 GMT+0100 (CET)",
1092e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 3, 59)).toString());
1102e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 26 Oct 2014 02:59:00 GMT",
1112e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 3, 59)).toUTCString());
1122e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 26 2014 04:00:00 GMT+0100 (CET)",
1132e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 4, 0)).toString());
1142e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 26 Oct 2014 03:00:00 GMT",
1152e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 26, 4, 0)).toUTCString());
1162e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org}
1172e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org
1182e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.orgif (timezone("BRT")) {
1192e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Oct 18 2014 22:59:00 GMT-0300 (BRT)",
1202e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 18, 22, 59)).toString());
1212e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 01:59:00 GMT",
1222e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 18, 22, 59)).toUTCString());
1232e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Oct 18 2014 23:00:00 GMT-0300 (BRT)",
1242e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 18, 23, 0)).toString());
1252e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 02:00:00 GMT",
1262e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 18, 23, 0)).toUTCString());
1272e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Oct 18 2014 23:59:00 GMT-0300 (BRT)",
1282e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 18, 23, 59)).toString());
1292e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 02:59:00 GMT",
1302e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 18, 23, 59)).toUTCString());
1312e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 19 2014 01:00:00 GMT-0200 (BRST)",
1322e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 0, 0)).toString());
1332e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 03:00:00 GMT",
1342e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 0, 0)).toUTCString());
1352e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 19 2014 01:59:00 GMT-0200 (BRST)",
1362e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 0, 59)).toString());
1372e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 03:59:00 GMT",
1382e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 0, 59)).toUTCString());
1392e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 19 2014 01:00:00 GMT-0200 (BRST)",
1402e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 1, 0)).toString());
1412e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 03:00:00 GMT",
1422e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 1, 0)).toUTCString());
1432e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 19 2014 01:59:00 GMT-0200 (BRST)",
1442e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 1, 59)).toString());
1452e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 03:59:00 GMT",
1462e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 1, 59)).toUTCString());
1472e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 19 2014 02:00:00 GMT-0200 (BRST)",
1482e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 2, 0)).toString());
1492e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 04:00:00 GMT",
1502e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 2, 0)).toUTCString());
1512e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 19 2014 02:59:00 GMT-0200 (BRST)",
1522e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 2, 59)).toString());
1532e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 04:59:00 GMT",
1542e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 2, 59)).toUTCString());
1552e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 19 2014 03:00:00 GMT-0200 (BRST)",
1562e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 3, 0)).toString());
1572e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 05:00:00 GMT",
1582e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 3, 0)).toUTCString());
1592e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 19 2014 03:59:00 GMT-0200 (BRST)",
1602e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 3, 59)).toString());
1612e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 05:59:00 GMT",
1622e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 3, 59)).toUTCString());
1632e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Oct 19 2014 04:00:00 GMT-0200 (BRST)",
1642e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 4, 0)).toString());
1652e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 19 Oct 2014 06:00:00 GMT",
1662e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 9, 19, 4, 0)).toUTCString());
1672e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Feb 15 2014 22:59:00 GMT-0200 (BRST)",
1682e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 15, 22, 59)).toString());
1692e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 00:59:00 GMT",
1702e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 15, 22, 59)).toUTCString());
1712e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Feb 15 2014 23:00:00 GMT-0200 (BRST)",
1722e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 15, 23, 0)).toString());
1732e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 01:00:00 GMT",
1742e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 15, 23, 0)).toUTCString());
1752e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Feb 15 2014 23:59:00 GMT-0200 (BRST)",
1762e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 15, 23, 59)).toString());
1772e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 01:59:00 GMT",
1782e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 15, 23, 59)).toUTCString());
1792e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Feb 16 2014 00:00:00 GMT-0300 (BRT)",
1802e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 0, 0)).toString());
1812e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 03:00:00 GMT",
1822e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 0, 0)).toUTCString());
1832e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Feb 16 2014 00:59:00 GMT-0300 (BRT)",
1842e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 0, 59)).toString());
1852e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 03:59:00 GMT",
1862e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 0, 59)).toUTCString());
1872e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Feb 16 2014 01:00:00 GMT-0300 (BRT)",
1882e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 1, 0)).toString());
1892e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 04:00:00 GMT",
1902e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 1, 0)).toUTCString());
1912e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Feb 16 2014 01:59:00 GMT-0300 (BRT)",
1922e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 1, 59)).toString());
1932e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 04:59:00 GMT",
1942e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 1, 59)).toUTCString());
1952e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Feb 16 2014 02:00:00 GMT-0300 (BRT)",
1962e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 2, 0)).toString());
1972e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 05:00:00 GMT",
1982e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 2, 0)).toUTCString());
1992e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Feb 16 2014 02:59:00 GMT-0300 (BRT)",
2002e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 2, 59)).toString());
2012e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 05:59:00 GMT",
2022e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 2, 59)).toUTCString());
2032e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Feb 16 2014 03:00:00 GMT-0300 (BRT)",
2042e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 3, 0)).toString());
2052e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 06:00:00 GMT",
2062e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 3, 0)).toUTCString());
2072e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Feb 16 2014 03:59:00 GMT-0300 (BRT)",
2082e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 3, 59)).toString());
2092e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 06:59:00 GMT",
2102e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 3, 59)).toUTCString());
2112e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Feb 16 2014 04:00:00 GMT-0300 (BRT)",
2122e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 4, 0)).toString());
2132e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 16 Feb 2014 07:00:00 GMT",
2142e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 1, 16, 4, 0)).toUTCString());
2152e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org}
2162e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org
2172e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.orgif (timezone("PST")) {
2182e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Mar 08 2014 22:59:00 GMT-0800 (PST)",
2192e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 8, 22, 59)).toString());
2202e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 06:59:00 GMT",
2212e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 8, 22, 59)).toUTCString());
2222e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Mar 08 2014 23:00:00 GMT-0800 (PST)",
2232e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 8, 23, 0)).toString());
2242e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 07:00:00 GMT",
2252e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 8, 23, 0)).toUTCString());
2262e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Mar 08 2014 23:59:00 GMT-0800 (PST)",
2272e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 8, 23, 59)).toString());
2282e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 07:59:00 GMT",
2292e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 8, 23, 59)).toUTCString());
2302e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 09 2014 00:00:00 GMT-0800 (PST)",
2312e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 0, 0)).toString());
2322e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 08:00:00 GMT",
2332e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 0, 0)).toUTCString());
2342e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 09 2014 00:59:00 GMT-0800 (PST)",
2352e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 0, 59)).toString());
2362e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 08:59:00 GMT",
2372e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 0, 59)).toUTCString());
2382e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 09 2014 01:00:00 GMT-0800 (PST)",
2392e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 1, 0)).toString());
2402e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 09:00:00 GMT",
2412e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 1, 0)).toUTCString());
2422e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 09 2014 01:59:00 GMT-0800 (PST)",
2432e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 1, 59)).toString());
2442e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 09:59:00 GMT",
2452e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 1, 59)).toUTCString());
2462e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 09 2014 03:00:00 GMT-0700 (PDT)",
2472e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 2, 0)).toString());
2482e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 10:00:00 GMT",
2492e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 2, 0)).toUTCString());
2502e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 09 2014 03:59:00 GMT-0700 (PDT)",
2512e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 2, 59)).toString());
2522e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 10:59:00 GMT",
2532e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 2, 59)).toUTCString());
2542e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 09 2014 03:00:00 GMT-0700 (PDT)",
2552e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 3, 0)).toString());
2562e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 10:00:00 GMT",
2572e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 3, 0)).toUTCString());
2582e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 09 2014 03:59:00 GMT-0700 (PDT)",
2592e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 3, 59)).toString());
2602e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 10:59:00 GMT",
2612e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 3, 59)).toUTCString());
2622e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Mar 09 2014 04:00:00 GMT-0700 (PDT)",
2632e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 4, 0)).toString());
2642e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 09 Mar 2014 11:00:00 GMT",
2652e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 2, 9, 4, 0)).toUTCString());
2662e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Nov 01 2014 22:59:00 GMT-0700 (PDT)",
2672e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 1, 22, 59)).toString());
2682e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 05:59:00 GMT",
2692e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 1, 22, 59)).toUTCString());
2702e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Nov 01 2014 23:00:00 GMT-0700 (PDT)",
2712e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 1, 23, 0)).toString());
2722e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 06:00:00 GMT",
2732e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 1, 23, 0)).toUTCString());
2742e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sat Nov 01 2014 23:59:00 GMT-0700 (PDT)",
2752e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 1, 23, 59)).toString());
2762e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 06:59:00 GMT",
2772e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 1, 23, 59)).toUTCString());
2782e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Nov 02 2014 00:00:00 GMT-0700 (PDT)",
2792e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 0, 0)).toString());
2802e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 07:00:00 GMT",
2812e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 0, 0)).toUTCString());
2822e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Nov 02 2014 00:59:00 GMT-0700 (PDT)",
2832e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 0, 59)).toString());
2842e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 07:59:00 GMT",
2852e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 0, 59)).toUTCString());
2862e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Nov 02 2014 01:00:00 GMT-0700 (PDT)",
2872e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 1, 0)).toString());
2882e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 08:00:00 GMT",
2892e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 1, 0)).toUTCString());
2902e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Nov 02 2014 01:59:00 GMT-0700 (PDT)",
2912e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 1, 59)).toString());
2922e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 08:59:00 GMT",
2932e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 1, 59)).toUTCString());
2942e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Nov 02 2014 02:00:00 GMT-0800 (PST)",
2952e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 2, 0)).toString());
2962e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 10:00:00 GMT",
2972e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 2, 0)).toUTCString());
2982e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Nov 02 2014 02:59:00 GMT-0800 (PST)",
2992e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 2, 59)).toString());
3002e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 10:59:00 GMT",
3012e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 2, 59)).toUTCString());
3022e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Nov 02 2014 03:00:00 GMT-0800 (PST)",
3032e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 3, 0)).toString());
3042e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 11:00:00 GMT",
3052e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 3, 0)).toUTCString());
3062e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Nov 02 2014 03:59:00 GMT-0800 (PST)",
3072e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 3, 59)).toString());
3082e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 11:59:00 GMT",
3092e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 3, 59)).toUTCString());
3102e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun Nov 02 2014 04:00:00 GMT-0800 (PST)",
3112e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 4, 0)).toString());
3122e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org  assertEquals("Sun, 02 Nov 2014 12:00:00 GMT",
3132e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org               (new Date(2014, 10, 2, 4, 0)).toUTCString());
3142e5f791b90bb96b5753f577960c485239db0f78fulan@chromium.org}
315