Timothy Flynn
776134ce03
LibJS+LibUnicode: Add an API to loop over Unicode extensions of one type
2026-03-14 08:17:03 -04:00
Timothy Flynn
d094de39fc
LibJS: Format "islamic" and "islamic-rgsa" calendars as "islamic-tbla"
...
This was missed when implementing the Intl Era and Month Code proposal.
2026-03-13 14:43:45 -04:00
Timothy Flynn
b47e4acc96
LibJS: Preserve the original time zone identifier in Intl.DateTimeFormat
...
This was missed when updating the Intl.DateTimeFormat constructor to
support Temporal.
2026-03-13 14:43:45 -04:00
Timothy Flynn
236037730f
LibJS: Update spec steps for the Intl Locale info proposal
...
This proposal has reached stage 4 and was merged into ECMA-402. See:
https://github.com/tc39/ecma402/commit/70b0ecc
2026-03-13 14:42:51 -04:00
Timothy Flynn
cbf25177bb
LibJS: Make more use of Value::is and Value::as_if in Intl
2026-02-27 17:19:33 +01:00
Timothy Flynn
206a18acd4
LibJS: Use single-line if/else steps in Temporal operations
...
This is an editorial change in the Temporal proposal. See:
https://github.com/tc39/proposal-temporal/commit/978311d
2026-02-14 19:47:29 +01:00
Timothy Flynn
78ff593cc8
LibJS: Use "either" / "one of" when comparing multiple items in Temporal
...
This is an editorial change in the Temporal proposal. See:
https://github.com/tc39/proposal-temporal/commit/5b02980
2026-02-14 19:47:29 +01:00
Timothy Flynn
21079748ff
LibJS: Work around inconsistency in CLDR Temporal data sources
...
This is an editorial change in the Temporal proposal. See:
https://github.com/tc39/proposal-temporal/commit/94a7487
https://github.com/tc39/proposal-temporal/commit/64a2395
2026-02-14 19:47:29 +01:00
Timothy Flynn
cb8bf665d7
LibJS: Format plain Temporal objects without applying time zones
...
This is a normative change in the Temporal proposal. See:
https://github.com/tc39/proposal-temporal/commit/377fb80
2026-02-14 19:47:29 +01:00
Timothy Flynn
fc997d74cb
LibJS: Update spec numbers for Intl Temporal operations
...
Several Intl overrides were removed from the Temporal proposal some time
ago. See:
https://github.com/tc39/proposal-temporal/commit/c08f6a8
https://github.com/tc39/proposal-temporal/commit/87ba571
https://github.com/tc39/proposal-temporal/commit/b52e320
https://github.com/tc39/proposal-temporal/commit/686b216
https://github.com/tc39/proposal-temporal/commit/b125fce
2026-02-14 19:47:29 +01:00
Timothy Flynn
72a6f59df5
LibJS+LibUnicode: Support Intl.MathematicalValue in Intl.PluralRules
...
This is a normative change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/7344f42
The main difference here is that Intl.PluralRules now supports BigInt.
2026-02-06 12:19:46 -05:00
Timothy Flynn
a109adebeb
LibJS: Add [[CompactDisplay]] slot to Intl.PluralRules
...
This is a normative change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/33893b3
2026-02-06 12:19:46 -05:00
Timothy Flynn
ed89b42b41
LibJS: Allow languageDisplay to be undefined in DisplayNames options
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/7dc4a6d
Note that we had already worked around this issue.
2026-02-06 12:19:46 -05:00
Timothy Flynn
d8f8bbada8
LibJS: Fix typo in Intl.NumberFormat GetNumberOption parameter name
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/759e671
2026-02-06 12:19:46 -05:00
Andreas Kling
74a80b7bfc
LibJS: Mark JS::Cell::initialize() as MUST_UPCALL
...
Intermediate classes in the initialize() chain set up prototypes and
define properties. Forgetting to call Base::initialize() in any
override would silently skip that setup.
2026-02-06 13:50:54 +01:00
Timothy Flynn
15e4deb831
LibJS: Remove "era" from Temporal's DateTimeFormat formatting options
...
This is an editorial change in the Temporal proposal. See:
https://github.com/tc39/proposal-temporal/commit/0ecf157
The test added here would previously throw:
TypeError: Unable to determine format for Temporal.PlainDate
2025-11-16 07:59:59 -05:00
Timothy Flynn
bf3481b301
LibJS: Explicitly state integer limits for UTC offset minutes and ns
...
This is an editorial change in the Temporal proposal. See:
https://github.com/tc39/proposal-temporal/commit/1fdf09a
Note that the integer limits in the above commit are in spec headers,
which we don't copy to our implementation.
2025-11-12 16:20:04 -05:00
Jelle Raaijmakers
c31eff6a47
Everywhere: Use Optional<T>::ensure() where useful
...
No functional changes.
2025-09-17 12:01:18 -04:00
Ali Mohammad Pur
4462348916
Everywhere: Slap some [[clang::lifetimebound]] where appropriate
...
This first pass only applies to the following two cases:
- Public functions returning a view type into an object they own
- Public ctors storing a view type
This catches a grand total of one (1) issue, which is fixed in
the previous commit.
2025-09-01 11:11:38 +02:00
Timothy Flynn
0efa98a57a
LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16
...
This has quite a lot of fall out. But the majority of it is just type or
UDL substitution, where the changes just fall through to other function
calls.
By changing property key storage to UTF-16, the main affected areas are:
* NativeFunction names must now be UTF-16
* Bytecode identifiers must now be UTF-16
* Module/binding names must now be UTF-16
2025-08-05 07:07:15 -04:00
Timothy Flynn
173bb67004
LibJS+LibUnicode: Port Intl.RelativeTimeFormat to UTF-16 strings
2025-07-24 10:39:52 +02:00
Timothy Flynn
6fe0e13474
LibJS+LibUnicode: Port Intl.DurationFormat to UTF-16 strings
2025-07-24 10:39:52 +02:00
Timothy Flynn
e637e148d4
LibJS+LibUnicode: Port Intl.NumberFormat to UTF-16 strings
2025-07-24 10:39:52 +02:00
Timothy Flynn
db2148b44a
LibJS+LibUnicode: Port Intl.ListFormat to UTF-16 strings
2025-07-24 10:39:52 +02:00
Timothy Flynn
7d80aabbdb
LibJS+LibUnicode: Port Intl.DisplayNames to UTF-16 strings
2025-07-24 10:39:52 +02:00
Timothy Flynn
ee01f857d1
LibJS+LibUnicode: Port Intl.DateTimeFormat to UTF-16 strings
2025-07-24 10:39:52 +02:00
Timothy Flynn
b2f053e783
LibJS+LibUnicode: Port Intl.Collator to UTF-16 strings
2025-07-24 10:39:52 +02:00
ayeteadoe
2e2484257d
LibJS: Enable EXPLICIT_SYMBOL_EXPORT and annotate minimum symbol set
2025-07-22 11:51:29 -04:00
ayeteadoe
539a675802
LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT
...
This reverts commit c14173f651 . We
should only annotate the minimum number of symbols that external
consumers actually use, so I am starting from scratch to do that
2025-07-22 11:51:29 -04:00
Timothy Flynn
a43cb15e81
LibJS+LibWeb: Replace JS::Utf16String with AK::Utf16String
2025-07-18 12:45:38 -04:00
Timothy Flynn
8cec9e7557
LibJS+LibUnicode: Remove unused FormatNumericToString AO
2025-07-08 11:19:27 -04:00
ayeteadoe
c14173f651
LibJS: Enable EXPLICIT_SYMBOL_EXPORT
2025-06-30 10:50:36 -06:00
Timothy Flynn
128675770c
LibJS: Implement Intl.Locale.prototype.variants
...
This is a normative change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/e8c995a
2025-06-04 17:11:35 -04:00
Timothy Flynn
324bd0f163
LibJS: Update the Intl.Locale prototype to the latest editorial spec
...
This has been refactored a bit recently.
2025-06-04 17:11:35 -04:00
Timothy Flynn
208a5e6763
LibJS: Update the Intl.Locale constructor to the latest editorial spec
...
This has been refactored a bit recently. There are upcoming normative
changes that do not apply cleanly without this update.
2025-06-04 17:11:35 -04:00
Timothy Flynn
8e5cc74eb1
LibJS: Add notation to Intl.PluralRules
...
This is a normative change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/a7ff535
2025-05-27 10:39:25 -04:00
Timothy Flynn
ccf03316fa
LibJS: Convert FilterLocales and CoerceOptionsToObject to GC::Ref
...
These never return nullptr.
2025-04-08 06:50:40 -04:00
Timothy Flynn
2729c88154
LibJS: Migrate remaining Intl objects to use ResolveOptions
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/75e67db
2025-04-08 06:50:40 -04:00
Timothy Flynn
3f55240a8e
LibJS: Migrate Intl.DisplayNames to use ResolveOptions
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/5eafacd
2025-04-08 06:50:40 -04:00
Timothy Flynn
636e214326
LibJS: Migrate Intl.Collator to use ResolveOptions
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/f822dc1
2025-04-08 06:50:40 -04:00
Timothy Flynn
e40881ebb8
LibJS: Migrate Intl.DateTimeFormat to use ResolveOptions
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/9e4c922
2025-04-08 06:50:40 -04:00
Timothy Flynn
d3332d51b5
LibJS: Add an AO to implement Intl constructor locale resolution
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/9e4c922
2025-04-08 06:50:40 -04:00
Timothy Flynn
62793b1bd8
LibJS: Define constructor slots for describing how to read options
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/a2beb66
We implement this change by introducing a virtual interface that all
Intl "service" objects must implement. A future patch will make use of
the virtualized RelevantExtensionKeys and ResolutionOptionDescriptors
accessors, and we will need to be able to use those slots from a generic
instance type.
2025-04-08 06:50:40 -04:00
Timothy Flynn
19ce186f97
LibJS: Define Intl.Locale's LocaleExtensionKeys more declaratively
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/3898acf
2025-04-08 06:50:40 -04:00
Timothy Flynn
75fce14f09
LibJS: Rename Intl.Locale's RelevantExtensionKeys to LocaleExtensionKeys
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/e2a5747
2025-04-08 06:50:40 -04:00
Timothy Flynn
680f028bb8
LibJS: Simplify Intl.Collator sensitivity / ignorePunctuation defaults
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/23e2e92
2025-04-08 06:50:40 -04:00
Timothy Flynn
b81d0d3261
LibJS: Ensure Intl.Collator instances have [[Numeric]] and [[CaseFirst]]
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/243ec38
2025-04-08 06:50:40 -04:00
Timothy Flynn
0f1fa38442
LibJS: Update spec link for FormatNumericToString AO
...
This is an editorial change in the ECMA-402 spec. See:
https://github.com/tc39/ecma402/commit/e3f7260
Note the other changes in this commit do not apply to our implementation
as we defer to ICU for the affected steps.
2025-04-08 06:50:40 -04:00
Timothy Flynn
0a256b0a9a
AK+Everywhere: Change StringView case conversions to return String
...
There's a bit of a UTF-8 assumption with this change. But nearly every
caller of these methods were immediately creating a String from the
resulting ByteString anyways.
2025-04-07 17:44:38 +02:00
Andreas Kling
d7908dbff5
LibJS: Change PropertyKey(ByteString) to PropertyKey(String)
...
...and deal with the fallout.
2025-03-24 22:27:17 +00:00