diff --git a/spec/collator.html b/spec/collator.html index 14047c9c..05ce4734 100644 --- a/spec/collator.html +++ b/spec/collator.html @@ -212,7 +212,7 @@
- A conforming implementation of this specification must conform to the ECMAScript 2024 Language Specification (ECMA-262 15th Edition, or successor), and must provide and support all the objects, properties, functions, and program semantics described in this specification. Nothing in this specification is intended to allow behaviour that is otherwise prohibited by ECMA-262, and any such conflict should be considered an editorial error rather than an override of constraints from ECMA-262. + A conforming implementation of this specification must conform to the ECMAScript 2025 Language Specification (ECMA-262 16th Edition, or successor), and must provide and support all the objects, properties, functions, and program semantics described in this specification. Nothing in this specification is intended to allow behaviour that is otherwise prohibited by ECMA-262, and any such conflict should be considered an editorial error rather than an override of constraints from ECMA-262.
A conforming implementation is permitted to provide additional objects, properties, and functions beyond those described in this specification. In particular, a conforming implementation is permitted to provide properties not described in this specification, and values for those properties, for objects that are described herein. A conforming implementation is not permitted to add optional arguments to the functions defined in this specification. diff --git a/spec/conventions.html b/spec/conventions.html index a072284b..adfde434 100644 --- a/spec/conventions.html +++ b/spec/conventions.html @@ -2,14 +2,14 @@
- This standard uses a subset of the notational conventions of the ECMAScript 2024 Language Specification (ECMA-262 15th Edition), as es2024: + This standard uses a subset of the notational conventions of the ECMAScript 2025 Language Specification (ECMA-262 16th Edition), as es2025:
- The following table extends the Well-Known Intrinsic Objects table defined in es2024,
- title: ECMAScript® 2024 Internationalization API Specification + title: ECMAScript® 2025 Internationalization API Specification shortname: ECMA-402 status: draft location: https://tc39.es/ecma402/ diff --git a/spec/introduction.html b/spec/introduction.html index b888cfa3..e10d1b2e 100644 --- a/spec/introduction.html +++ b/spec/introduction.html @@ -4,7 +4,7 @@Introduction
This specification's source can be found at https://github.com/tc39/ecma402.- The ECMAScript 2024 Internationalization API Specification (ECMA-402 11th Edition), provides key language sensitive functionality as a complement to the ECMAScript 2024 Language Specification (ECMA-262 15th Edition or successor). Its functionality has been selected from that of well-established internationalization APIs such as those of the Internationalization Components for Unicode (ICU) library (https://unicode-org.github.io/icu-docs/), of the .NET framework, or of the Java platform. + The ECMAScript 2025 Internationalization API Specification (ECMA-402 12th Edition), provides key language sensitive functionality as a complement to the ECMAScript 2025 Language Specification (ECMA-262 16th Edition or successor). Its functionality has been selected from that of well-established internationalization APIs such as those of the Internationalization Components for Unicode (ICU) library (https://unicode-org.github.io/icu-docs/), of the .NET framework, or of the Java platform.
The 1st Edition API was developed by an ad-hoc group established by Ecma TC39 in September 2010 based on a proposal by Nebojša Ćirić and Jungshik Shin. @@ -54,4 +54,8 @@
Introduction
Richard Gibson, Ujjwal Sharma
ECMA-402, 11th Edition Project Editors ++ Ben Allen, Richard Gibson, Ujjwal Sharma
diff --git a/spec/locale-sensitive-functions.html b/spec/locale-sensitive-functions.html index 56cc0b36..284efb2b 100644 --- a/spec/locale-sensitive-functions.html +++ b/spec/locale-sensitive-functions.html @@ -16,7 +16,7 @@
+ ECMA-402, 12th Edition Project Editors +Properties of the String Prototype Object
String.prototype.localeCompare ( _that_ [ , _locales_ [ , _options_ ] ] )
- This definition supersedes the definition provided in es2024,
. + This definition supersedes the definition provided in es2025, . @@ -48,11 +48,11 @@
String.prototype.localeCompare ( _that_ [ , _locales_ [ , _options_ ] ] )String.prototype.toLocaleLowerCase ( [ _locales_ ] )
- This definition supersedes the definition provided in es2024,
. + This definition supersedes the definition provided in es2025, . - This function interprets a String value as a sequence of code points, as described in es2024,
. The following steps are taken: + This function interprets a String value as a sequence of code points, as described in es2025, . The following steps are taken: @@ -75,7 +75,7 @@
- description
-- It interprets _S_ as a sequence of UTF-16 encoded code points, as described in es2024,
+, and returns the result of ILD transformation into _targetCase_ as a new String value. - It interprets _S_ as a sequence of UTF-16 encoded code points, as described in es2025,
, and returns the result of ILD transformation into _targetCase_ as a new String value. 1. Let _requestedLocales_ be ? CanonicalizeLocaleList(_locales_). @@ -109,11 +109,11 @@
String.prototype.toLocaleUpperCase ( [ _locales_ ] )
- This definition supersedes the definition provided in es2024,
. + This definition supersedes the definition provided in es2025, . - This function interprets a String value as a sequence of code points, as described in es2024,
. The following steps are taken: + This function interprets a String value as a sequence of code points, as described in es2025, . The following steps are taken: @@ -132,14 +132,14 @@ String.prototype.toLocaleUpperCase ( [ _locales_ ] )
Properties of the Number Prototype Object
- The following definition(s) refer to the abstract operation thisNumberValue as defined in es2024,
. + The following definition(s) refer to the abstract operation thisNumberValue as defined in es2025, . Number.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )
- This definition supersedes the definition provided in es2024,
. + This definition supersedes the definition provided in es2025, . @@ -158,14 +158,14 @@
Number.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )
Properties of the BigInt Prototype Object
- The following definition(s) refer to the abstract operation thisBigIntValue as defined in es2024,
. + The following definition(s) refer to the abstract operation thisBigIntValue as defined in es2025, . BigInt.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )
- This definition supersedes the definition provided in es2024,
. + This definition supersedes the definition provided in es2025, . @@ -184,14 +184,14 @@
BigInt.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )
Properties of the Date Prototype Object
- The following definition(s) refer to the abstract operation thisTimeValue as defined in es2024,
. + The following definition(s) refer to the abstract operation thisTimeValue as defined in es2025, . Date.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )
- This definition supersedes the definition provided in es2024,
. + This definition supersedes the definition provided in es2025, . @@ -212,7 +212,7 @@
Date.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )
Date.prototype.toLocaleDateString ( [ _locales_ [ , _options_ ] ] )
- This definition supersedes the definition provided in es2024,
. + This definition supersedes the definition provided in es2025, . @@ -233,7 +233,7 @@
Date.prototype.toLocaleDateString ( [ _locales_ [ , _options_ ] ] )
Date.prototype.toLocaleTimeString ( [ _locales_ [ , _options_ ] ] )
- This definition supersedes the definition provided in es2024,
. + This definition supersedes the definition provided in es2025, . @@ -258,7 +258,7 @@
Properties of the Array Prototype Object
Array.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )
- This definition supersedes the definition provided in es2024,
. + This definition supersedes the definition provided in es2025, . @@ -283,7 +283,7 @@
Array.prototype.toLocaleString ( [ _locales_ [ , _options_ ] ] )
- This algorithm's steps mirror the steps taken in es2024, , with the exception that Invoke(_nextElement_, *"toLocaleString"*) now takes _locales_ and _options_ as arguments. + This algorithm's steps mirror the steps taken in es2025, , with the exception that Invoke(_nextElement_, *"toLocaleString"*) now takes _locales_ and _options_ as arguments. diff --git a/spec/metablock.html b/spec/metablock.html index afa336dd..6fe7449a 100644 --- a/spec/metablock.html +++ b/spec/metablock.html @@ -15,6 +15,7 @@ Contributing to this Specification
Editors: diff --git a/spec/normative-references.html b/spec/normative-references.html index 8bc8883b..e1fc21d4 100644 --- a/spec/normative-references.html +++ b/spec/normative-references.html @@ -5,12 +5,12 @@ Normative References
- ECMAScript 2024 Language Specification (ECMA-262 15th Edition, or successor).
+ ECMAScript 2025 Language Specification (ECMA-262 16th Edition, or successor).
https://www.ecma-international.org/publications/standards/Ecma-262.htm- Throughout this document, the phrase “es2024, _x_” (where x is a sequence of numbers separated by periods) may be used as shorthand for "ECMAScript 2024 Language Specification (ECMA-262 15th Edition, sub clause _x_)". Where _x_ is followed by more such sequences of period-separated numbers, separated from each other by commas, each such sequence is also a shorthand for the corresponding sub clause of ECMA-262. + Throughout this document, the phrase “es2025, _x_” (where x is a sequence of numbers separated by periods) may be used as shorthand for "ECMAScript 2025 Language Specification (ECMA-262 16th Edition, sub clause _x_)". Where _x_ is followed by more such sequences of period-separated numbers, separated from each other by commas, each such sequence is also a shorthand for the corresponding sub clause of ECMA-262. diff --git a/spec/numberformat.html b/spec/numberformat.html index b5ab049e..95138af8 100644 --- a/spec/numberformat.html +++ b/spec/numberformat.html @@ -275,7 +275,7 @@
Internal slots
The value of the aforementioned fields (the sign-dependent pattern fields) must be string values that must contain the substring *"{number}"*. *"positivePattern"* must contain the substring *"{plusSign}"* but not *"{minusSign}"*; *"negativePattern"* must contain the substring *"{minusSign}"* but not *"{plusSign}"*; and *"zeroPattern"* must not contain either *"{plusSign}"* or *"{minusSign}"*. Additionally, the values within the *"percent"* field must also contain the substring *"{percentSign}"*; the values within the *"currency"* field must also contain one or more of the following substrings: *"{currencyCode}"*, *"{currencyPrefix}"*, or *"{currencySuffix}"*; and the values within the *"unit"* field must also contain one or more of the following substrings: *"{unitPrefix}"* or *"{unitSuffix}"*. - The pattern strings, when interpreted as a sequence of UTF-16 encoded code points as described in es2024,, must not contain any code points in the General Category "Number, decimal digit" as specified by the Unicode Standard. + The pattern strings, when interpreted as a sequence of UTF-16 encoded code points as described in es2025, , must not contain any code points in the General Category "Number, decimal digit" as specified by the Unicode Standard. [[LocaleData]].[[<_locale_>]] must also have a [[notationSubPatterns]] field for all locale values _locale_. The value of this field must be a Record, which must have two fields: [[scientific]] and [[compact]]. The [[scientific]] field must be a string value containing the substrings *"{number}"*, *"{scientificSeparator}"*, and *"{scientificExponent}"*. The [[compact]] field must be a Record with two fields: *"short"* and *"long"*. Each of these fields must be a Record with integer keys corresponding to all discrete magnitudes the implementation supports for compact notation. Each of these fields must be a string value which may contain the substring *"{number}"*. Strings descended from *"short"* must contain the substring *"{compactSymbol}"*, and strings descended from *"long"* must contain the substring *"{compactName}"*. diff --git a/spec/overview.html b/spec/overview.html index 1bdad600..3abb8d07 100644 --- a/spec/overview.html +++ b/spec/overview.html @@ -2,7 +2,7 @@Overview
- This section contains a non-normative overview of the ECMAScript 2024 Internationalization API Specification. + This section contains a non-normative overview of the ECMAScript 2025 Internationalization API Specification.
@@ -12,7 +12,7 @@ @@ -20,10 +20,10 @@Internationalization, Localization, and Globalization
Internationalization of software means designing it such that it supports or can be easily adapted to support the needs of users speaking different languages and having different cultural expectations, and enables worldwide communication between them. Localization then is the actual adaptation to a specific language and culture. Globalization of software is commonly understood to be the combination of internationalization and localization. Globalization starts at the lowest level by using a text representation that supports all languages in the world, and using standard identifiers to identify languages, countries, time zones, and other relevant parameters. It continues with using a user interface language and data presentation that the user understands, and finally often requires product-specific adaptations to the user's language, culture, and environment.- The ECMAScript 2024 Language Specification lays the foundation by using Unicode for text representation and by providing a few language-sensitive functions, but gives applications little control over the behaviour of these functions. This specification builds on that foundation by providing a set of customizable language-sensitive functionality. The API is useful even for applications that themselves are not internationalized, as even applications targeting only one language and one region need to properly support that one language and region. However, the API also enables applications that support multiple languages and regions, even concurrently, as may be needed in server environments. + The ECMAScript 2025 Language Specification lays the foundation by using Unicode for text representation and by providing a few language-sensitive functions, but gives applications little control over the behaviour of these functions. This specification builds on that foundation by providing a set of customizable language-sensitive functionality. The API is useful even for applications that themselves are not internationalized, as even applications targeting only one language and one region need to properly support that one language and region. However, the API also enables applications that support multiple languages and regions, even concurrently, as may be needed in server environments.
Internationalization, Localization, and Globalization
API Overview
- This specification is designed to complement the ECMAScript 2024 Language Specification by providing key language-sensitive functionality. The API can be added to an implementation of the ECMAScript 2024 Language Specification (ECMA-262 15th Edition, or successor) in whole or in part. This specification introduces new language values observable to ECMAScript code (such as the value of a [[FallbackSymbol]] internal slot and the set of values transitively reachable from %Intl% by
property access ), and also refines the definition of some functions specified in ECMA-262 (as described below). Neither category prohibits behaviour that is otherwise permitted for values and interfaces defined in ECMA-262, in order to support adoption of this specification by any implementation of ECMA-262. + This specification is designed to complement the ECMAScript 2025 Language Specification by providing key language-sensitive functionality. The API can be added to an implementation of the ECMAScript 2025 Language Specification (ECMA-262 16th Edition, or successor) in whole or in part. This specification introduces new language values observable to ECMAScript code (such as the value of a [[FallbackSymbol]] internal slot and the set of values transitively reachable from %Intl% byproperty access ), and also refines the definition of some functions specified in ECMA-262 (as described below). Neither category prohibits behaviour that is otherwise permitted for values and interfaces defined in ECMA-262, in order to support adoption of this specification by any implementation of ECMA-262.- This specification provides several key pieces of language-sensitive functionality that are required in most applications: String comparison (collation), number formatting, date and time formatting, relative time formatting, display names, list formatting, locale selection and operation, pluralization rules, case conversion, and text segmentation. While the ECMAScript 2024 Language Specification provides functions for this basic functionality (on
Array.prototype : `toLocaleString`; onString.prototype : `localeCompare`, `toLocaleLowerCase`, `toLocaleUpperCase`; onNumber.prototype : `toLocaleString`; onDate.prototype : `toLocaleString`, `toLocaleDateString`, and `toLocaleTimeString`), their actual behaviour is left largely implemenation-defined. This specification provides additional functionality, control over the language and over details of the behaviour to be used, and a more complete specification of required functionality. + This specification provides several key pieces of language-sensitive functionality that are required in most applications: String comparison (collation), number formatting, date and time formatting, relative time formatting, display names, list formatting, locale selection and operation, pluralization rules, case conversion, and text segmentation. While the ECMAScript 2025 Language Specification provides functions for this basic functionality (onArray.prototype : `toLocaleString`; onString.prototype : `localeCompare`, `toLocaleLowerCase`, `toLocaleUpperCase`; onNumber.prototype : `toLocaleString`; onDate.prototype : `toLocaleString`, `toLocaleDateString`, and `toLocaleTimeString`), their actual behaviour is left largely implemenation-defined. This specification provides additional functionality, control over the language and over details of the behaviour to be used, and a more complete specification of required functionality.Applications can use the API in two ways:
@@ -32,7 +32,7 @@API Overview
Directly, by using a service constructor to construct an object, specifying a list of preferred languages and options to configure its behaviour. The object provides a main function (`compare`, `select`, `format`, etc.), which can be called repeatedly. It also provides a `resolvedOptions` function, which the application can use to find out the exact configuration of the object.- Indirectly, by using the functions of the ECMAScript 2024 Language Specification mentioned above. The collation and formatting functions are respecified in this specification to accept the same arguments as the Collator, NumberFormat, and DateTimeFormat constructors and produce the same results as their compare or format methods. The case conversion functions are respecified to accept a list of preferred languages. + Indirectly, by using the functions of the ECMAScript 2025 Language Specification mentioned above. The collation and formatting functions are respecified in this specification to accept the same arguments as the Collator, NumberFormat, and DateTimeFormat constructors and produce the same results as their compare or format methods. The case conversion functions are respecified to accept a list of preferred languages. diff --git a/spec/requirements.html b/spec/requirements.html index 031f3458..9394c2c0 100644 --- a/spec/requirements.html +++ b/spec/requirements.html @@ -2,6 +2,6 @@Requirements for Standard Built-in ECMAScript Objects
- Unless specified otherwise in this document, the objects, functions, and constructors described in this standard are subject to the generic requirements and restrictions specified for standard built-in ECMAScript objects in the ECMAScript 2024 Language Specification (ECMA-262 15th Edition, or successor), clause
. + Unless specified otherwise in this document, the objects, functions, and constructors described in this standard are subject to the generic requirements and restrictions specified for standard built-in ECMAScript objects in the ECMAScript 2025 Language Specification (ECMA-262 16th Edition, or successor), clause .