Timothy Flynn
e9bc35d805
LibJS: Implement Intl.Locale.prototype.calendars property
2022-07-06 16:56:42 +02:00
DexesTTP
7ceeb74535
AK: Use an enum instead of a bool for String::replace(all_occurences)
...
This commit has no behavior changes.
In particular, this does not fix any of the wrong uses of the previous
default parameter (which used to be 'false', meaning "only replace the
first occurence in the string"). It simply replaces the default uses by
String::replace(..., ReplaceMode::FirstOnly), leaving them incorrect.
2022-07-06 11:12:45 +02:00
Idan Horowitz
1ebc5af2f0
LibJS: Set both {minimum, maximum}FractionDigits in Intl.DurationFormat
...
This is a normative change in the Intl.DurationFormat spec.
See: https://github.com/tc39/proposal-intl-duration-format/commit/b293603e
2022-07-02 18:32:35 +03:00
Idan Horowitz
fb8c4a724e
LibJS: Disallow mixed-sign durations in Intl.DurationFormat
...
This is a normative change in the Intl.DurationFormat spec.
See: https://github.com/tc39/proposal-intl-duration-format/commit/89ab1855
2022-07-02 18:32:35 +03:00
Idan Horowitz
b6b8356c0c
LibJS: Implement Intl.DurationFormat.prototype.formatToParts
2022-07-01 01:00:05 +03:00
Idan Horowitz
706ff5ac83
LibJS: Implement Intl.DurationFormat.prototype.format
2022-07-01 01:00:05 +03:00
Idan Horowitz
b1fe6c3f68
LibJS: Implement the PartitionDurationFormatPattern abstract operation
2022-07-01 01:00:05 +03:00
Idan Horowitz
f4785e2468
LibUnicode: Generate data about DurationFormat-required units as well
2022-07-01 01:00:05 +03:00
Idan Horowitz
8e55eb960e
LibJS: Implement the ToDurationRecord abstract operation
2022-07-01 01:00:05 +03:00
Idan Horowitz
d9a4b3e46a
LibJS: Implement Intl.DurationFormat.prototype.resolvedOptions
2022-07-01 01:00:05 +03:00
Idan Horowitz
b20ef7d640
LibJS: Implement Intl.DurationFormat.supportedLocalesOf
2022-07-01 01:00:05 +03:00
Idan Horowitz
97fe37bcc2
LibJS: Start implementing the stage 3 Intl.DurationFormat proposal
2022-07-01 01:00:05 +03:00
Linus Groh
71a519831d
LibJS: Update to the latest ECMA-402 GetOption and move it into ECMA-262
...
This is an editorial change in the Temporal spec.
See: https://github.com/tc39/proposal-temporal/commit/4e79b69
2022-06-15 17:49:20 +01:00
Linus Groh
f7c9bd0760
LibJS: Convert remaining Date AOs using JS::Value as in/output to double
...
There was an awful lot of JS::Value <-> double conversion going on, even
through these AOs only work with number values anyway.
They don't need a global object either as they won't allocate or throw,
that was simply to pass it to infallible calls of ToIntegerOrInfinity.
2022-05-06 22:32:47 +02:00
Linus Groh
9f3f3b0864
LibJS: Remove implicit wrapping/unwrapping of completion records
...
This is an editorial change in the ECMA-262 spec, with similar changes
in some proposals.
See:
- https://github.com/tc39/ecma262/commit/7575f74
- https://github.com/tc39/proposal-array-grouping/commit/df899eb
- https://github.com/tc39/proposal-shadowrealm/commit/9eb5a12
- https://github.com/tc39/proposal-shadowrealm/commit/c81f527
2022-05-03 01:09:29 +02:00
Linus Groh
70593b7448
LibJS: Update for structured headers added to various Temporal AOs
...
This is an editorial change in the Temporal spec.
See: https://github.com/tc39/proposal-temporal/commit/e6a15a5
2022-04-29 22:40:46 +02:00
Timothy Flynn
29b6c22384
LibJS: Reorder and reduce steps of InitializeDateTimeFormat
...
These are editorial changes in the Intl spec. See:
https://github.com/tc39/ecma402/commit/7d0326c
https://github.com/tc39/ecma402/commit/05a299b
https://github.com/tc39/ecma402/commit/8c24ea7
https://github.com/tc39/ecma402/commit/fd8dea9
2022-04-06 20:58:12 -04:00
Linus Groh
5b48912d35
LibJS: Remove a bunch of gratuitous JS namespace qualifiers
2022-04-03 15:19:33 +01:00
Timothy Flynn
4fd463dae0
LibJS: Normalize mathematical references to negative zero
...
This is an editorial change in the Intl spec. See:
https://github.com/tc39/ecma402/commit/d4be24e
2022-03-30 14:24:32 +01:00
Timothy Flynn
41df4c6353
LibJS: Modernize InitializeDateTimeFormat and simplify error handling
...
This is an editorial change in the Intl spec. See:
https://github.com/tc39/ecma402/commit/4cf1d2c
2022-03-30 14:24:32 +01:00
Timothy Flynn
066352c9aa
LibJS+LibUnicode: Align ECMA-402 "sanctioned" terminology with UTS 35
...
This is an editorial change in the Intl spec. See:
https://github.com/tc39/ecma402/commit/087995c
https://github.com/tc39/ecma402/commit/233d29c
This also adds a missing spec link for the sanctioned units and fixes a
broken spec link for IsSanctionedSingleUnitIdentifier. In LibUnicode,
the NumberFormat generator is updated to use the constexpr helper to
retrieve sanctioned units.
2022-03-30 14:24:32 +01:00
Timothy Flynn
1a76839e8d
LibJS: Use consistent ASCII case-transformation and string language
...
Also update the incorrect spec link for IsWellFormedCurrencyCode.
These are editorial changes in the Intl spec. See:
https://github.com/tc39/ecma402/commit/6939b44
https://github.com/tc39/ecma402/commit/3a775eb
https://github.com/tc39/ecma402/commit/97a7940
https://github.com/tc39/ecma402/commit/129c790
https://github.com/tc39/ecma402/commit/42ec908
https://github.com/tc39/ecma402/commit/ea25c36
2022-03-30 14:24:32 +01:00
Timothy Flynn
72674d7905
LibJS: Set DateTimeFormat's [[HourCycle]] internal slot only once
...
This is an editorial change in the Intl spec. See:
https://github.com/tc39/ecma402/commit/8081868
2022-03-30 14:24:32 +01:00
Timothy Flynn
f8e7701cf3
LibJS: Disallow calendar display names which contain an underscore
...
This is a normative change in the Intl spec. See:
https://github.com/tc39/ecma402/commit/2703d06
2022-03-30 14:24:32 +01:00
Timothy Flynn
7c41e6058a
LibJS: Explicitly indicate infallible incovations
...
These are editorial changes in the Intl spec.
See:
https://github.com/tc39/ecma402/commit/6804096
https://github.com/tc39/ecma402/commit/6361167
https://github.com/tc39/ecma402/commit/8718171
https://github.com/tc39/ecma402/commit/fd37cb4
https://github.com/tc39/ecma402/commit/00fcfb0
https://github.com/tc39/ecma402/commit/913f832
2022-03-30 14:24:32 +01:00
Timothy Flynn
04bb17ca94
LibJS: Reorganize spec steps for Intl.RelativeTimeFormat
...
This is an editorial change in the Intl spec:
https://github.com/tc39/ecma402/commit/a3ae343
2022-03-15 17:30:58 +01:00
Timothy Flynn
8941d0b49e
LibJS: Reorganize spec steps for Intl.PluralRules
...
This is an editorial change in the Intl spec:
https://github.com/tc39/ecma402/commit/d7c7157
2022-03-15 17:30:58 +01:00
Timothy Flynn
812d3a7ef8
LibJS: Reorganize spec steps for Intl.NumberFormat
...
This is an editorial change in the Intl spec:
https://github.com/tc39/ecma402/commit/110cb1f
2022-03-15 17:30:58 +01:00
Timothy Flynn
d6868d1e9d
LibJS: Reorganize spec steps for Intl.Locale
...
This is an editorial change in the Intl spec:
https://github.com/tc39/ecma402/commit/31f6003
2022-03-15 17:30:58 +01:00
Timothy Flynn
6677e03a52
LibJS: Reorganize spec steps for Intl.ListFormat
...
This is an editorial change in the Intl spec:
https://github.com/tc39/ecma402/commit/61bc370
2022-03-15 17:30:58 +01:00
Timothy Flynn
72462bed2f
LibJS: Reorganize spec steps for Intl.DisplayNames
...
This is an editorial change in the Intl spec:
https://github.com/tc39/ecma402/commit/5b51804
2022-03-15 17:30:58 +01:00
Timothy Flynn
1f9c5c186f
LibJS: Reorganize spec steps for Intl.DateTimeFormat
...
This is an editorial change in the Intl spec:
https://github.com/tc39/ecma402/commit/97e1ecc
2022-03-15 17:30:58 +01:00
Timothy Flynn
194ca06f78
LibJS: Reorganize spec steps for Intl.Collator
...
This is an editorial change in the Intl spec:
https://github.com/tc39/ecma402/commit/7c13db4
This also normalizes the spelling of the "Internal slots" heading in
Intl.Collator, which is another editorial change in the Intl spec:
https://github.com/tc39/ecma402/commit/ec064bd
2022-03-15 17:30:58 +01:00
Timothy Flynn
96459e4b3a
LibJS: Define the Intl.Collator's compare function name to be empty
2022-02-21 16:30:19 +00:00
Idan Horowitz
6558f4ae6b
LibJS: Implement get Intl.Collator.prototype.compare
2022-02-20 22:05:59 -05:00
Idan Horowitz
0bdb293262
LibJS: Add an initial implementation of Collator Compare Functions
...
This commit adds an initial implementation (without any real locale
support) of Collator Compare Functions, as well as the matching
CompareStrings AO. These two are used to implement the ECMA402 version
of String.localeCompare() and Int.Collator.compare().
2022-02-20 22:05:59 -05:00
Timothy Flynn
89ead8c00a
LibJS+LibUnicode: Parse Unicode keywords from the BCP 47 CLDR package
...
We have a fair amount of hard-coded keywords / aliases that can now be
replaced with real data from BCP 47. As a result, the also changes the
awkward way we were previously generating keys. Before, we were more or
less generating keywords as a CSV list of keys, e.g. for the "nu" key,
we'd generate "latn,arab,grek" (ordered by locale preference). Then at
runtime, we'd split on the comma. We now just generate spans of keywords
directly.
2022-02-16 07:23:07 -05:00
Linus Groh
bc183dbbcb
LibJS: Replace uses of MarkedValueList with MarkedVector<Value>
...
This is effectively a drop-in replacement.
2022-02-09 12:25:27 +00:00
Idan Horowitz
2cd3d4a287
LibJS: Implement Intl %SegmentIteratorPrototype%.next ( )
2022-01-31 21:05:04 +02:00
Idan Horowitz
366468f1de
LibJS: Implement Intl %SegmentsPrototype%.containing
2022-01-31 21:05:04 +02:00
Idan Horowitz
96af50bbba
LibJS: Implement the Intl CreateSegmentDataObject AO
2022-01-31 21:05:04 +02:00
Idan Horowitz
cea6c81c77
LibJS: Implement the Intl.Segmenter FindBoundary AO
2022-01-31 21:05:04 +02:00
Idan Horowitz
b1d19b5917
LibJS: Convert Intl.Segmenter, Segments and SegmentIterator to Utf16
...
This is a precursor to implementing the FindBoundary AO, which operates
on Utf16 code unit indexes.
2022-01-31 21:05:04 +02:00
Timothy Flynn
6efbafa6e0
Everywhere: Update copyrights with my new serenityos.org e-mail :^)
2022-01-31 18:23:22 +00:00
Timothy Flynn
fb08a5a896
LibJS: Implement Intl.supportedValuesOf
...
This is a stage 3 ECMA-402 proposal:
https://tc39.es/proposal-intl-enumeration/
2022-01-31 00:32:41 +00:00
Timothy Flynn
a120e85596
LibJS: Provide public access to list of sanctioned unit identifiers
2022-01-31 00:32:41 +00:00
Timothy Flynn
d6e926e5b1
LibJS: Support BigInt number formatting with Intl.NumberFormat
2022-01-30 20:05:27 +00:00
Timothy Flynn
a0253af8c1
LibJS: Generalize Intl.NumberFormat to operate on Value types
...
Intl.NumberFormat is meant to format both Number and BigInt types. To
prepare for formatting BigInt types, this generalizes our NumberFormat
implementation to operate on Value instances rather than doubles. All
arithmetic is moved to static helpers that can now be updated with
BigInt semantics.
2022-01-30 20:05:27 +00:00
Idan Horowitz
4ba4e4c777
LibJS: Implement Intl %SegmentsPrototype%[@@iterator]
2022-01-30 19:47:01 +00:00
Idan Horowitz
6c26a02aa8
LibJS: Start implementing Intl Segment Iterator objects
2022-01-30 19:47:01 +00:00