Timothy Flynn
bdf36575c8
LibJS: Implement Intl.Locale.prototype.numeric
2021-09-02 17:56:42 +01:00
Timothy Flynn
d7825f3680
LibJS: Implement most Intl.Locale.Prototype.<<keyword>> properties
...
The keyword accessors all have the same function body in the spec,
except for the Intl.Locale method they invoke. This generates those
properties in the same manner as RegExp.prototype.
Intl.Locale.prototype.calendar
Intl.Locale.prototype.caseFirst
Intl.Locale.prototype.collation
Intl.Locale.prototype.hourCycle
Intl.Locale.prototype.numberingSystem
The exception is Intl.Locale.prototype.numeric, which will be defined
separately because it is a boolean value.
2021-09-02 17:56:42 +01:00
Timothy Flynn
21b3c5edba
LibJS: Implement Intl.Locale.prototype.baseName
2021-09-02 17:56:42 +01:00
Timothy Flynn
27fc3cfe75
LibJS: Handle existing Intl.Locale objects in CanonicalizeLocaleList
2021-09-02 17:56:42 +01:00
Timothy Flynn
4de05faa8a
LibJS: Add test cases for Intl.Locale.prototype.toString
...
Intl.Locale.prototype.toString wasn't testable before the constructor
was implemented.
2021-09-02 17:56:42 +01:00
Timothy Flynn
17639a42ae
LibJS: Implement the Intl.Locale constructor
2021-09-02 17:56:42 +01:00
Timothy Flynn
990dd037d2
LibJS: Implement Intl.Locale.prototype.toString()
...
This isn't particularly testable yet without the Intl.Locale constructor
but having this defined will make testing the constructor possible. So
more specific tests for this prototype will come later.
2021-09-02 17:56:42 +01:00
Timothy Flynn
940c023e09
LibJS: Compare Unicode locale variants using case-insensitive matching
...
In the IsStructurallyValidLanguageTag AO, we of course cannot assume the
variants are canonicalized to lower-case yet, because canonicalization
hasn't happened yet.
2021-09-02 17:56:42 +01:00
Timothy Flynn
fdedb3ab33
LibJS: Remove duplicated error message from ErrorTypes.h
...
ErrorType::IntlInvalidCode has almost exactly the same message as
ErrorType::OptionIsNotValidValue. Remove it, as all uses of the former
are semantically interchangeable with the latter.
2021-09-02 17:56:42 +01:00
Timothy Flynn
2c10e9fdd3
LibJS: Implement a nearly empty Intl.Locale object
...
This adds plumbing for the Intl.Locale object, constructor, and
prototype.
2021-09-02 17:56:42 +01:00
Linus Groh
f169ad61a4
LibJS: Make 'options' argument of Calendar prototype functions optional
...
This is a normative change in the Temporal spec.
See: 9cc913e
2021-09-01 15:11:35 +01:00
Linus Groh
e845e7c814
LibJS: Throw TypeError if Instant.prototype.round() options is undefined
...
This is a normative change in the Temporal spec.
See: 943018f
2021-09-01 15:11:35 +01:00
Timothy Flynn
6f5fb87d3b
LibJS: Handle Unicode locale extensions in LookupMatcher AO
2021-09-01 14:14:47 +01:00
Linus Groh
c171aa40a8
LibJS: Implement Temporal.Instant.prototype.toJSON()
2021-08-31 16:35:51 +02:00
Linus Groh
463eb361ad
LibJS: Implement Temporal.Instant.prototype.toLocaleString()
2021-08-31 16:35:51 +02:00
Linus Groh
576be0f8e7
LibJS: Implement Temporal.Instant.prototype.toString()
2021-08-31 16:35:51 +02:00
Linus Groh
e3254bf4c5
LibJS: Implement Temporal.Calendar.prototype.dateAdd()
2021-08-30 22:33:10 +01:00
Timothy Flynn
a2f0eeff7a
LibJS: Canonicalize Unicode locale extension attributes and keywords
2021-08-30 19:42:40 +01:00
Timothy Flynn
94e66f500c
LibJS: Reject structurally invalid Unicode locale extensions
2021-08-30 19:42:40 +01:00
Linus Groh
a8329272cc
LibJS: Implement Temporal.ZonedDateTime.prototype.eraYear
2021-08-27 23:36:52 +01:00
Linus Groh
b59e9260db
LibJS: Implement Temporal.ZonedDateTime.prototype.era
2021-08-27 23:36:52 +01:00
Linus Groh
f59e4d6738
LibJS: Implement Temporal.PlainYearMonth.prototype.eraYear
2021-08-27 23:36:52 +01:00
Linus Groh
b11ea98648
LibJS: Implement Temporal.PlainYearMonth.prototype.era
2021-08-27 23:36:52 +01:00
Linus Groh
f2f671f340
LibJS: Implement Temporal.PlainDateTime.prototype.eraYear
2021-08-27 23:36:52 +01:00
Linus Groh
276d3f5089
LibJS: Implement Temporal.PlainDateTime.prototype.era
2021-08-27 23:36:52 +01:00
Linus Groh
418c22f9b3
LibJS: Implement Temporal.PlainDate.prototype.eraYear
2021-08-27 23:36:52 +01:00
Linus Groh
6f7d6d917e
LibJS: Implement Temporal.PlainDate.prototype.era
2021-08-27 23:36:52 +01:00
Linus Groh
c3e0d78ba6
LibJS: Implement Temporal.Calendar.prototype.eraYear()
2021-08-27 23:36:52 +01:00
Linus Groh
f746850d1c
LibJS: Implement Temporal.Calendar.prototype.era()
2021-08-27 23:36:52 +01:00
Idan Horowitz
24dbf18936
LibJS: Implement Temporal.PlainDateTime.prototype.withPlainTime()
2021-08-27 19:01:30 +01:00
Idan Horowitz
0f464f38d3
LibJS: Implement Temporal.PlainTime.prototype.equals()
2021-08-27 19:01:30 +01:00
Idan Horowitz
684e62476b
LibJS: Implement Temporal.PlainTime.compare()
2021-08-27 19:01:30 +01:00
Idan Horowitz
a77cdc5f92
LibJS: Implement Temporal.PlainTime.from()
2021-08-27 19:01:30 +01:00
Idan Horowitz
bb857330d2
LibJS: Implement Temporal.PlainDate.prototype.toPlainDateTime()
2021-08-27 19:01:30 +01:00
Idan Horowitz
32fc81c186
LibJS: Implement Temporal.PlainDateTime.prototype.equals()
2021-08-27 16:40:16 +01:00
Idan Horowitz
9ed877e8e7
LibJS: Implement Temporal.PlainDateTime.compare()
2021-08-27 16:40:16 +01:00
Timothy Flynn
86b99fd9a6
LibJS: Extend Intl.DisplayNames.of to support currency tags
2021-08-27 12:32:24 +01:00
Timothy Flynn
a029e3d38a
LibJS: Extend Intl.DisplayNames.of to support script tags
2021-08-27 12:32:24 +01:00
Timothy Flynn
ca77a7c573
LibJS: Extend Intl.DisplayNames.of to support language tags
2021-08-27 12:32:24 +01:00
Timothy Flynn
a061d874c9
LibJS: Implement Intl.DisplayNames.prototype.resolvedOptions
2021-08-26 22:04:09 +01:00
Timothy Flynn
17bb652775
LibJS: Implement Intl.DisplayNames.prototype.of
...
Note that only option type=region is really implemented. Other types
will resort to the fallback option. This prototype method will be able
to implement other type options once LibUnicode supports more.
2021-08-26 22:04:09 +01:00
Timothy Flynn
38d29a40dc
LibJS: Implement Intl.getCanonicalLocales
2021-08-26 22:04:09 +01:00
Timothy Flynn
e8dd2eea74
LibJS: Implement the Intl.DisplayNames constructor
...
There is notably FIXME notations in this commit regarding Unicode locale
extensions. We are not parsing extensions (or private use extensions) at
all yet.
2021-08-26 22:04:09 +01:00
Timothy Flynn
0fb4e8b749
LibJS: Implement a nearly empty Intl.DisplayNames object
...
This adds plumbing for the Intl.DisplayNames object, constructor, and
prototype.
2021-08-26 22:04:09 +01:00
Linus Groh
6ce05026b4
LibJS: Implement Temporal.ZonedDateTime.prototype.toPlainMonthDay()
2021-08-24 01:53:30 +02:00
Linus Groh
ef581be4ec
LibJS: Implement Temporal.ZonedDateTime.prototype.toPlainYearMonth()
2021-08-24 01:53:30 +02:00
Linus Groh
fc58f93734
LibJS: Implement Temporal.PlainDateTime.prototype.toPlainMonthDay()
2021-08-24 01:53:30 +02:00
Linus Groh
5573efa3bd
LibJS: Implement Temporal.PlainDateTime.prototype.toPlainYearMonth()
2021-08-24 01:53:30 +02:00
Linus Groh
ad427f85ca
LibJS: Implement Temporal.PlainDateTime.from()
2021-08-23 20:54:52 +01:00
Timothy Flynn
4f186a9a1f
LibJS: Implement Promise.race on the Promise constructor
2021-08-23 00:01:46 +01:00