diff --git a/spec/abstractops.html b/spec/abstractops.html index 903898d91f..d120d79a17 100644 --- a/spec/abstractops.html +++ b/spec/abstractops.html @@ -1415,8 +1415,8 @@
+
+ The ECMAScript 2021 Internationalization API Specification identifies time zones using the Zone and Link names of the IANA Time Zone Database. Their canonical form is the corresponding Zone name in the casing used in the IANA Time Zone Database. +
+ ++ All registered Zone and Link names are allowed. Conforming implementations must recognize all such names, and use best available current and historical information about their offsets from UTC and their daylight saving time rules in calculations. However, the set of combinations of time zone name and language tag for which localized time zone names are available is implementation dependent. +
+ +
+ The HostIsValidTimeZoneName is a host-defined abstract operation which verifies that the _timeZone_ argument (which must be a String value) represents a valid Zone or Link name of the IANA Time Zone Database.
+ A conforming implementation must implement the abstract operation as follows:
+
+ The abstract operation returns true if _timeZone_, converted to upper case as described in
+ The HostCanonicalizeTimeZoneName is a host-defined abstract operation which returns the canonical and case-regularized form of the _timeZone_ argument (which must be a String value that is a valid time zone name as verified by the HostIsValidTimeZoneName abstract operation).
+ The following steps are taken:
+ A conforming implementation must implement the abstract operation as follows:
+
+ The Intl.DateTimeFormat constructor allows this time zone name; if the time zone is not specified, the host environment's current time zone is used. Implementations shall support UTC and the host environment's current time zone returned from DefaultTimeZone (if different from UTC) in formatting.
+
+ The DefaultTimeZone abstract operation returns a String value representing the valid (
A Temporal.TimeZone object is an immutable Object referencing a time zone.
++ An ECMAScript implementation must support a number of built-in time zones. + At a minimum, implementations must support a built-in time zone named *"UTC"*. + If the return value of DefaultTimeZone is different from *"UTC"*, then implementations must support that time zone as a built-in time zone as well. + In addition, implementations may support any number of other built-in time zones. +
+
+
+ Implementations are encouraged to support the Zone and Link names of the IANA Time Zone Database, and to use the best available current and historical information about their offsets from UTC and their daylight saving time rules in calculations. +
++ An ECMAScript implementation that includes the ECMA-402 Internationalization API has additional requirements for the built-in time zones that must be supported, as specified in the ECMA-402 specification. +
+ +These host hooks need to be added to ES2021
+ HostIsValidTimeZoneName is a host-defined abstract operation that takes argument _timeZone_ (a String value). + It verifies that _timeZone_ represents a valid built-in time zone. +
++ The implementation of HostIsValidTimeZoneName must conform to the following requirements: +
++ The implementation of HostIsValidTimeZoneName should return *true* if _timeZone_, converted to upper case, is equal to one of the built-in time zone names, converted to upper case. + It should return *false* otherwise. +
+The minimum implementation of HostIsValidTimeZoneName, supporting only the *"UTC"* time zone, performs the following steps when called: +
+ ++ HostCanonicalizeTimeZoneName is a host-defined abstract operation that takes argument _timeZone_ (a String value). + It returns the canonical and case-regularized form of the _timeZone_ argument. +
++ The _timeZone_ parameter must be a valid time zone name according to HostIsValidTimeZoneName. +
++ The implementation of HostCanonicalizeTimeZoneName must conform to the following requirements: +
+The minimum implementation of HostCanonicalizeTimeZoneName, supporting only the *"UTC"* time zone, performs the following steps when called: +
+ +
+ The DefaultTimeZone abstract operation returns a String value representing the valid (
@@ -30,9 +121,9 @@