timezone-case-insensitive.js (13485B)
1 // |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally 2 // Copyright (C) 2023 Justin Grant. All rights reserved. 3 // This code is governed by the BSD license found in the LICENSE file. 4 5 /*--- 6 esid: sec-temporal.zoneddatetime.from 7 description: Time zone identifiers are case-normalized 8 features: [Temporal, canonical-tz] 9 ---*/ 10 11 const timeZoneIdentifiers = [ 12 // IANA TZDB Zone names 13 'Africa/Abidjan', 14 'Africa/Algiers', 15 'Africa/Bissau', 16 'Africa/Cairo', 17 'Africa/Casablanca', 18 'Africa/Ceuta', 19 'Africa/El_Aaiun', 20 'Africa/Johannesburg', 21 'Africa/Juba', 22 'Africa/Khartoum', 23 'Africa/Lagos', 24 'Africa/Maputo', 25 'Africa/Monrovia', 26 'Africa/Nairobi', 27 'Africa/Ndjamena', 28 'Africa/Sao_Tome', 29 'Africa/Tripoli', 30 'Africa/Tunis', 31 'Africa/Windhoek', 32 'America/Adak', 33 'America/Anchorage', 34 'America/Araguaina', 35 'America/Argentina/Buenos_Aires', 36 'America/Argentina/Catamarca', 37 'America/Argentina/Cordoba', 38 'America/Argentina/Jujuy', 39 'America/Argentina/La_Rioja', 40 'America/Argentina/Mendoza', 41 'America/Argentina/Rio_Gallegos', 42 'America/Argentina/Salta', 43 'America/Argentina/San_Juan', 44 'America/Argentina/San_Luis', 45 'America/Argentina/Tucuman', 46 'America/Argentina/Ushuaia', 47 'America/Asuncion', 48 'America/Bahia', 49 'America/Bahia_Banderas', 50 'America/Barbados', 51 'America/Belem', 52 'America/Belize', 53 'America/Boa_Vista', 54 'America/Bogota', 55 'America/Boise', 56 'America/Cambridge_Bay', 57 'America/Campo_Grande', 58 'America/Cancun', 59 'America/Caracas', 60 'America/Cayenne', 61 'America/Chicago', 62 'America/Chihuahua', 63 // 'America/Ciudad_Juarez' // uncomment after Node supports this ID added in TZDB 2022g 64 'America/Costa_Rica', 65 'America/Cuiaba', 66 'America/Danmarkshavn', 67 'America/Dawson', 68 'America/Dawson_Creek', 69 'America/Denver', 70 'America/Detroit', 71 'America/Edmonton', 72 'America/Eirunepe', 73 'America/El_Salvador', 74 'America/Fort_Nelson', 75 'America/Fortaleza', 76 'America/Glace_Bay', 77 'America/Goose_Bay', 78 'America/Grand_Turk', 79 'America/Guatemala', 80 'America/Guayaquil', 81 'America/Guyana', 82 'America/Halifax', 83 'America/Havana', 84 'America/Hermosillo', 85 'America/Indiana/Indianapolis', 86 'America/Indiana/Knox', 87 'America/Indiana/Marengo', 88 'America/Indiana/Petersburg', 89 'America/Indiana/Tell_City', 90 'America/Indiana/Vevay', 91 'America/Indiana/Vincennes', 92 'America/Indiana/Winamac', 93 'America/Inuvik', 94 'America/Iqaluit', 95 'America/Jamaica', 96 'America/Juneau', 97 'America/Kentucky/Louisville', 98 'America/Kentucky/Monticello', 99 'America/La_Paz', 100 'America/Lima', 101 'America/Los_Angeles', 102 'America/Maceio', 103 'America/Managua', 104 'America/Manaus', 105 'America/Martinique', 106 'America/Matamoros', 107 'America/Mazatlan', 108 'America/Menominee', 109 'America/Merida', 110 'America/Metlakatla', 111 'America/Mexico_City', 112 'America/Miquelon', 113 'America/Moncton', 114 'America/Monterrey', 115 'America/Montevideo', 116 'America/New_York', 117 'America/Nome', 118 'America/Noronha', 119 'America/North_Dakota/Beulah', 120 'America/North_Dakota/Center', 121 'America/North_Dakota/New_Salem', 122 'America/Nuuk', 123 'America/Ojinaga', 124 'America/Panama', 125 'America/Paramaribo', 126 'America/Phoenix', 127 'America/Port-au-Prince', 128 'America/Porto_Velho', 129 'America/Puerto_Rico', 130 'America/Punta_Arenas', 131 'America/Rankin_Inlet', 132 'America/Recife', 133 'America/Regina', 134 'America/Resolute', 135 'America/Rio_Branco', 136 'America/Santarem', 137 'America/Santiago', 138 'America/Santo_Domingo', 139 'America/Sao_Paulo', 140 'America/Scoresbysund', 141 'America/Sitka', 142 'America/St_Johns', 143 'America/Swift_Current', 144 'America/Tegucigalpa', 145 'America/Thule', 146 'America/Tijuana', 147 'America/Toronto', 148 'America/Vancouver', 149 'America/Whitehorse', 150 'America/Winnipeg', 151 'America/Yakutat', 152 'America/Yellowknife', 153 'Antarctica/Casey', 154 'Antarctica/Davis', 155 'Antarctica/Macquarie', 156 'Antarctica/Mawson', 157 'Antarctica/Palmer', 158 'Antarctica/Rothera', 159 'Antarctica/Troll', 160 'Asia/Almaty', 161 'Asia/Amman', 162 'Asia/Anadyr', 163 'Asia/Aqtau', 164 'Asia/Aqtobe', 165 'Asia/Ashgabat', 166 'Asia/Atyrau', 167 'Asia/Baghdad', 168 'Asia/Baku', 169 'Asia/Bangkok', 170 'Asia/Barnaul', 171 'Asia/Beirut', 172 'Asia/Bishkek', 173 'Asia/Chita', 174 'Asia/Choibalsan', 175 'Asia/Colombo', 176 'Asia/Damascus', 177 'Asia/Dhaka', 178 'Asia/Dili', 179 'Asia/Dubai', 180 'Asia/Dushanbe', 181 'Asia/Famagusta', 182 'Asia/Gaza', 183 'Asia/Hebron', 184 'Asia/Ho_Chi_Minh', 185 'Asia/Hong_Kong', 186 'Asia/Hovd', 187 'Asia/Irkutsk', 188 'Asia/Jakarta', 189 'Asia/Jayapura', 190 'Asia/Jerusalem', 191 'Asia/Kabul', 192 'Asia/Kamchatka', 193 'Asia/Karachi', 194 'Asia/Kathmandu', 195 'Asia/Khandyga', 196 'Asia/Kolkata', 197 'Asia/Krasnoyarsk', 198 'Asia/Kuching', 199 'Asia/Macau', 200 'Asia/Magadan', 201 'Asia/Makassar', 202 'Asia/Manila', 203 'Asia/Nicosia', 204 'Asia/Novokuznetsk', 205 'Asia/Novosibirsk', 206 'Asia/Omsk', 207 'Asia/Oral', 208 'Asia/Pontianak', 209 'Asia/Pyongyang', 210 'Asia/Qatar', 211 'Asia/Qostanay', 212 'Asia/Qyzylorda', 213 'Asia/Riyadh', 214 'Asia/Sakhalin', 215 'Asia/Samarkand', 216 'Asia/Seoul', 217 'Asia/Shanghai', 218 'Asia/Singapore', 219 'Asia/Srednekolymsk', 220 'Asia/Taipei', 221 'Asia/Tashkent', 222 'Asia/Tbilisi', 223 'Asia/Tehran', 224 'Asia/Thimphu', 225 'Asia/Tokyo', 226 'Asia/Tomsk', 227 'Asia/Ulaanbaatar', 228 'Asia/Urumqi', 229 'Asia/Ust-Nera', 230 'Asia/Vladivostok', 231 'Asia/Yakutsk', 232 'Asia/Yangon', 233 'Asia/Yekaterinburg', 234 'Asia/Yerevan', 235 'Atlantic/Azores', 236 'Atlantic/Bermuda', 237 'Atlantic/Canary', 238 'Atlantic/Cape_Verde', 239 'Atlantic/Faroe', 240 'Atlantic/Madeira', 241 'Atlantic/South_Georgia', 242 'Atlantic/Stanley', 243 'Australia/Adelaide', 244 'Australia/Brisbane', 245 'Australia/Broken_Hill', 246 'Australia/Darwin', 247 'Australia/Eucla', 248 'Australia/Hobart', 249 'Australia/Lindeman', 250 'Australia/Lord_Howe', 251 'Australia/Melbourne', 252 'Australia/Perth', 253 'Australia/Sydney', 254 'CET', 255 'CST6CDT', 256 'EET', 257 'EST', 258 'EST5EDT', 259 'Etc/GMT', 260 'Etc/GMT+1', 261 'Etc/GMT+10', 262 'Etc/GMT+11', 263 'Etc/GMT+12', 264 'Etc/GMT+2', 265 'Etc/GMT+3', 266 'Etc/GMT+4', 267 'Etc/GMT+5', 268 'Etc/GMT+6', 269 'Etc/GMT+7', 270 'Etc/GMT+8', 271 'Etc/GMT+9', 272 'Etc/GMT-1', 273 'Etc/GMT-10', 274 'Etc/GMT-11', 275 'Etc/GMT-12', 276 'Etc/GMT-13', 277 'Etc/GMT-14', 278 'Etc/GMT-2', 279 'Etc/GMT-3', 280 'Etc/GMT-4', 281 'Etc/GMT-5', 282 'Etc/GMT-6', 283 'Etc/GMT-7', 284 'Etc/GMT-8', 285 'Etc/GMT-9', 286 'Etc/UTC', 287 'Europe/Andorra', 288 'Europe/Astrakhan', 289 'Europe/Athens', 290 'Europe/Belgrade', 291 'Europe/Berlin', 292 'Europe/Brussels', 293 'Europe/Bucharest', 294 'Europe/Budapest', 295 'Europe/Chisinau', 296 'Europe/Dublin', 297 'Europe/Gibraltar', 298 'Europe/Helsinki', 299 'Europe/Istanbul', 300 'Europe/Kaliningrad', 301 'Europe/Kirov', 302 'Europe/Kyiv', 303 'Europe/Lisbon', 304 'Europe/London', 305 'Europe/Madrid', 306 'Europe/Malta', 307 'Europe/Minsk', 308 'Europe/Moscow', 309 'Europe/Paris', 310 'Europe/Prague', 311 'Europe/Riga', 312 'Europe/Rome', 313 'Europe/Samara', 314 'Europe/Saratov', 315 'Europe/Simferopol', 316 'Europe/Sofia', 317 'Europe/Tallinn', 318 'Europe/Tirane', 319 'Europe/Ulyanovsk', 320 'Europe/Vienna', 321 'Europe/Vilnius', 322 'Europe/Volgograd', 323 'Europe/Warsaw', 324 'Europe/Zurich', 325 'HST', 326 'Indian/Chagos', 327 'Indian/Maldives', 328 'Indian/Mauritius', 329 'MET', 330 'MST', 331 'MST7MDT', 332 'PST8PDT', 333 'Pacific/Apia', 334 'Pacific/Auckland', 335 'Pacific/Bougainville', 336 'Pacific/Chatham', 337 'Pacific/Easter', 338 'Pacific/Efate', 339 'Pacific/Fakaofo', 340 'Pacific/Fiji', 341 'Pacific/Galapagos', 342 'Pacific/Gambier', 343 'Pacific/Guadalcanal', 344 'Pacific/Guam', 345 'Pacific/Honolulu', 346 'Pacific/Kanton', 347 'Pacific/Kiritimati', 348 'Pacific/Kosrae', 349 'Pacific/Kwajalein', 350 'Pacific/Marquesas', 351 'Pacific/Nauru', 352 'Pacific/Niue', 353 'Pacific/Norfolk', 354 'Pacific/Noumea', 355 'Pacific/Pago_Pago', 356 'Pacific/Palau', 357 'Pacific/Pitcairn', 358 'Pacific/Port_Moresby', 359 'Pacific/Rarotonga', 360 'Pacific/Tahiti', 361 'Pacific/Tarawa', 362 'Pacific/Tongatapu', 363 'WET', 364 365 // IANA TZDB Link names 366 'Africa/Accra', 367 'Africa/Addis_Ababa', 368 'Africa/Asmara', 369 'Africa/Asmera', 370 'Africa/Bamako', 371 'Africa/Bangui', 372 'Africa/Banjul', 373 'Africa/Blantyre', 374 'Africa/Brazzaville', 375 'Africa/Bujumbura', 376 'Africa/Conakry', 377 'Africa/Dakar', 378 'Africa/Dar_es_Salaam', 379 'Africa/Djibouti', 380 'Africa/Douala', 381 'Africa/Freetown', 382 'Africa/Gaborone', 383 'Africa/Harare', 384 'Africa/Kampala', 385 'Africa/Kigali', 386 'Africa/Kinshasa', 387 'Africa/Libreville', 388 'Africa/Lome', 389 'Africa/Luanda', 390 'Africa/Lubumbashi', 391 'Africa/Lusaka', 392 'Africa/Malabo', 393 'Africa/Maseru', 394 'Africa/Mbabane', 395 'Africa/Mogadishu', 396 'Africa/Niamey', 397 'Africa/Nouakchott', 398 'Africa/Ouagadougou', 399 'Africa/Porto-Novo', 400 'Africa/Timbuktu', 401 'America/Anguilla', 402 'America/Antigua', 403 'America/Argentina/ComodRivadavia', 404 'America/Aruba', 405 'America/Atikokan', 406 'America/Atka', 407 'America/Blanc-Sablon', 408 'America/Buenos_Aires', 409 'America/Catamarca', 410 'America/Cayman', 411 'America/Coral_Harbour', 412 'America/Cordoba', 413 'America/Creston', 414 'America/Curacao', 415 'America/Dominica', 416 'America/Ensenada', 417 'America/Fort_Wayne', 418 'America/Godthab', 419 'America/Grenada', 420 'America/Guadeloupe', 421 'America/Indianapolis', 422 'America/Jujuy', 423 'America/Knox_IN', 424 'America/Kralendijk', 425 'America/Louisville', 426 'America/Lower_Princes', 427 'America/Marigot', 428 'America/Mendoza', 429 'America/Montreal', 430 'America/Montserrat', 431 'America/Nassau', 432 'America/Nipigon', 433 'America/Pangnirtung', 434 'America/Port_of_Spain', 435 'America/Porto_Acre', 436 'America/Rainy_River', 437 'America/Rosario', 438 'America/Santa_Isabel', 439 'America/Shiprock', 440 'America/St_Barthelemy', 441 'America/St_Kitts', 442 'America/St_Lucia', 443 'America/St_Thomas', 444 'America/St_Vincent', 445 'America/Thunder_Bay', 446 'America/Tortola', 447 'America/Virgin', 448 'Antarctica/DumontDUrville', 449 'Antarctica/McMurdo', 450 'Antarctica/South_Pole', 451 'Antarctica/Syowa', 452 'Antarctica/Vostok', 453 'Arctic/Longyearbyen', 454 'Asia/Aden', 455 'Asia/Ashkhabad', 456 'Asia/Bahrain', 457 'Asia/Brunei', 458 'Asia/Calcutta', 459 'Asia/Chongqing', 460 'Asia/Chungking', 461 'Asia/Dacca', 462 'Asia/Harbin', 463 'Asia/Istanbul', 464 'Asia/Kashgar', 465 'Asia/Katmandu', 466 'Asia/Kuala_Lumpur', 467 'Asia/Kuwait', 468 'Asia/Macao', 469 'Asia/Muscat', 470 'Asia/Phnom_Penh', 471 'Asia/Rangoon', 472 'Asia/Saigon', 473 'Asia/Tel_Aviv', 474 'Asia/Thimbu', 475 'Asia/Ujung_Pandang', 476 'Asia/Ulan_Bator', 477 'Asia/Vientiane', 478 'Atlantic/Faeroe', 479 'Atlantic/Jan_Mayen', 480 'Atlantic/Reykjavik', 481 'Atlantic/St_Helena', 482 'Australia/ACT', 483 'Australia/Canberra', 484 'Australia/Currie', 485 'Australia/LHI', 486 'Australia/NSW', 487 'Australia/North', 488 'Australia/Queensland', 489 'Australia/South', 490 'Australia/Tasmania', 491 'Australia/Victoria', 492 'Australia/West', 493 'Australia/Yancowinna', 494 'Brazil/Acre', 495 'Brazil/DeNoronha', 496 'Brazil/East', 497 'Brazil/West', 498 'Canada/Atlantic', 499 'Canada/Central', 500 'Canada/Eastern', 501 'Canada/Mountain', 502 'Canada/Newfoundland', 503 'Canada/Pacific', 504 'Canada/Saskatchewan', 505 'Canada/Yukon', 506 'Chile/Continental', 507 'Chile/EasterIsland', 508 'Cuba', 509 'Egypt', 510 'Eire', 511 'Etc/GMT+0', 512 'Etc/GMT-0', 513 'Etc/GMT0', 514 'Etc/Greenwich', 515 'Etc/UCT', 516 'Etc/Universal', 517 'Etc/Zulu', 518 'Europe/Amsterdam', 519 'Europe/Belfast', 520 'Europe/Bratislava', 521 'Europe/Busingen', 522 'Europe/Copenhagen', 523 'Europe/Guernsey', 524 'Europe/Isle_of_Man', 525 'Europe/Jersey', 526 'Europe/Kiev', 527 'Europe/Ljubljana', 528 'Europe/Luxembourg', 529 'Europe/Mariehamn', 530 'Europe/Monaco', 531 'Europe/Nicosia', 532 'Europe/Oslo', 533 'Europe/Podgorica', 534 'Europe/San_Marino', 535 'Europe/Sarajevo', 536 'Europe/Skopje', 537 'Europe/Stockholm', 538 'Europe/Tiraspol', 539 'Europe/Uzhgorod', 540 'Europe/Vaduz', 541 'Europe/Vatican', 542 'Europe/Zagreb', 543 'Europe/Zaporozhye', 544 'GB', 545 'GB-Eire', 546 'GMT', 547 'GMT+0', 548 'GMT-0', 549 'GMT0', 550 'Greenwich', 551 'Hongkong', 552 'Iceland', 553 'Indian/Antananarivo', 554 'Indian/Christmas', 555 'Indian/Cocos', 556 'Indian/Comoro', 557 'Indian/Kerguelen', 558 'Indian/Mahe', 559 'Indian/Mayotte', 560 'Indian/Reunion', 561 'Iran', 562 'Israel', 563 'Jamaica', 564 'Japan', 565 'Kwajalein', 566 'Libya', 567 'Mexico/BajaNorte', 568 'Mexico/BajaSur', 569 'Mexico/General', 570 'NZ', 571 'NZ-CHAT', 572 'Navajo', 573 'PRC', 574 'Pacific/Chuuk', 575 'Pacific/Enderbury', 576 'Pacific/Funafuti', 577 'Pacific/Johnston', 578 'Pacific/Majuro', 579 'Pacific/Midway', 580 'Pacific/Pohnpei', 581 'Pacific/Ponape', 582 'Pacific/Saipan', 583 'Pacific/Samoa', 584 'Pacific/Truk', 585 'Pacific/Wake', 586 'Pacific/Wallis', 587 'Pacific/Yap', 588 'Poland', 589 'Portugal', 590 'ROC', 591 'ROK', 592 'Singapore', 593 'Turkey', 594 'UCT', 595 'US/Alaska', 596 'US/Aleutian', 597 'US/Arizona', 598 'US/Central', 599 'US/East-Indiana', 600 'US/Eastern', 601 'US/Hawaii', 602 'US/Indiana-Starke', 603 'US/Michigan', 604 'US/Mountain', 605 'US/Pacific', 606 'US/Samoa', 607 'UTC', 608 'Universal', 609 'W-SU', 610 'Zulu' 611 ]; 612 613 // We want to test all available named time zone identifiers (both primary and non-primary), 614 // but no ECMAScript built-in API exposes that list. So we use a union of two sources: 615 // 1. A hard-coded list of Zone and Link identifiers from the 2022g version of IANA TZDB. 616 // 2. Canonical IDs exposed by Intl.supportedValuesOf('timeZone'), which ensures that IDs 617 // added to TZDB later than 2022g will be tested. (New IDs are almost always added as primary.) 618 const ids = [...new Set([...timeZoneIdentifiers, ...Intl.supportedValuesOf('timeZone')])]; 619 for (const id of ids) { 620 const lower = id.toLowerCase(); 621 const upper = id.toUpperCase(); 622 for (const idToTest of [id, lower, upper]) { 623 const isoString = `2020-01-01[${idToTest}]`; 624 const zdt = Temporal.ZonedDateTime.from(isoString); 625 assert.sameValue(zdt.timeZoneId, id, `Time zone created from string "${isoString}"`); 626 } 627 } 628 629 reportCompare(0, 0);