-
Notifications
You must be signed in to change notification settings - Fork 2
Description
This proposal should define what "canonical time zone identifier" means in ECMAScript. Creating the text for this definition is part of Step 4 as described in the README.
Unfortunately "A canonical identifier is a Zone in TZDB" is too vague because it depends on the TZDB build options. Some build options, like the default MAKEFILE run without options, generate Links (like Atlantic/Reykjavik => Africa/Abidjan) that are not appropriate for ECMAScript use. So a more precise definition is needed that will push implementers to avoid those aggressive Links.
One possible starting point for this precise definition is capturing whatever Firefox is doing now as described in this comment and later comments. Another possible starting point is to align with the output of the global-tz fork of TZDB.
What both of these seem have in common is using zone.tab
to back out the controversial, problematic merges like Atlantic/Reykjavik => Africa/Abidjan, Europe/Stockholm => Europe/Berlin, Europe/Zagreb => Europe/Belgrade. So if an identifier is listed as a Zone in zone.tab, then it should be canonical in ECMAScript.
What I'm unsure about is whether we want or need to use the old data in backzone
as well. We'll be looking to @anba (from Firefox), @Yqwed (from Android), and others for advice.
Once we understand what we want "canonical" to mean, the next step will be crafting specific spec text for that definition suitable for a PR into the ECMASCript spec. One possible definition will be including specific MAKEFILE options (for building TZDB) into the spec. Another possibility is describing in words (e.g. "every identifier that's a Zone in zone.tab must be canonical in ECMAScript") and leave it up to implementers to translate that into build options. The global-tz README could be a starting point for that kind of text.