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
f6370fe3f7
LibJS: Add the ToTemporalTime AO and stub the ParseTemporalTimeString AO
...
This AO is required for a bunch of PlainTime related methods.
As part of this change the `TemporalTime` record was renamed to
`UnregulatedTemporalTime` and a new `TemporalTime` record that matches
the other Temporal parse result records was added. This also has the
added benefit of getting rid of a would be round-trip cast from integer
to double and back in `ParseTemporalTimeString`.
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
Idan Horowitz
28fa4d1568
LibJS: Add the CompareTemporalTime & CompareISODateTime AOs
...
These are required for implementing comparisons between `PlainTime`s and
`PlainDateTime`s.
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
Linus Groh
573587b83a
LibJS: Fix logic error in RegulateISODate
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
Timothy Flynn
949f294444
LibJS: Implement Promise.allSettled on the Promise constructor
2021-08-23 00:01:46 +01:00
Timothy Flynn
4dffa40a8d
LibJS: Implement Promise.any on the Promise constructor
2021-08-23 00:01:46 +01:00
Timothy Flynn
98d8a858cd
LibJS: Set the function names for the resolve, reject, and executor
...
These should all have a name with an empty string. Not only does test262
verify this, but it also verifies that (for the executor) the name
property is defined after the length property.
2021-08-23 00:01:46 +01:00
Timothy Flynn
5b303721e0
LibJS: Generalize PerformPromiseAll common functionality
...
PerformPromiseAll, PerformPromiseAny, PerformPromiseAllSettled, etc, all
have very similar iteration loops. To avoid duplicating this rather
large block of code, extract the common functionality into a separate
method.
2021-08-23 00:01:46 +01:00
Timothy Flynn
417523507e
LibJS: Generalize PromiseAllResolveElementFunction common functionality
...
The element-resolving functions on the Promise constructor are all very
similar. To prepare for more of these functions to be implemented, break
out common parts into a base class.
2021-08-23 00:01:46 +01:00
Linus Groh
969aee2022
LibJS: Add missing builtin calendar check to ParseTemporalCalendarString
...
See: 48b11d6
2021-08-22 21:20:00 +01:00
Timothy Flynn
dee3b7b8c9
LibJS: Implement Promise.all on the Promise constructor
2021-08-21 23:08:49 +01:00
Timothy Flynn
cdf2854fdf
LibJS: Fix copy-paste mistake in GetCapabilitiesExecutor
2021-08-21 23:08:49 +01:00
Timothy Flynn
6337eb52d8
LibJS: Implement RegExp.prototype.compile
...
This is an Annex B extension to RegExp.prototype.
2021-08-20 19:16:33 +02:00
Timothy Flynn
7c54b6bd45
LibJS: Separate RegExpCreate into RegExpAlloc and RegExpInitialize
...
RegExp.prototype.compile will require invoking RegExpInitialize on an
already-existing RegExpObject. Break up RegExpCreate into RegExpAlloc
and RegExpInitialize to support this.
2021-08-20 19:16:33 +02:00
Linus Groh
5d116372a8
LibJS: Implement Temporal.PlainMonthDay.prototype.toJSON()
2021-08-20 18:12:15 +01:00
Linus Groh
5904c6bf18
LibJS: Implement Temporal.PlainMonthDay.prototype.toLocaleString()
2021-08-20 18:12:15 +01:00
Linus Groh
ea44f33d5b
LibJS: Implement Temporal.PlainMonthDay.prototype.toString()
2021-08-20 18:12:15 +01:00
Linus Groh
c1c8d7861c
LibJS: Implement Temporal.PlainYearMonth.prototype.toJSON()
2021-08-20 18:12:15 +01:00
Linus Groh
70fb7bf57e
LibJS: Implement Temporal.PlainYearMonth.prototype.toLocaleString()
2021-08-20 18:12:15 +01:00
Linus Groh
421ad73b4f
LibJS: Implement Temporal.PlainYearMonth.prototype.toString()
2021-08-20 18:12:15 +01:00
Timothy Flynn
c5b5c779ff
LibRegex+LibJS: Change capture group names from a String to a FlyString
...
The parser now stores this as a FlyString everywhere, so consumers can
also use it as a FlyString.
2021-08-19 23:49:25 +02:00
Idan Horowitz
ee608f58ee
LibJS: Add type range checks to the Date make_day AO
...
As the specification says "but if this is not possible (because some
argument is out of range), return NaN."
2021-08-19 19:15:00 +01:00
Linus Groh
0e201fbb42
LibJS: Implement Temporal.PlainDate.prototype.toJSON()
2021-08-19 00:26:09 +01:00
Linus Groh
73d888e9e6
LibJS: Implement Temporal.PlainDate.prototype.toLocaleString()
2021-08-19 00:23:48 +01:00
Linus Groh
402f04c2fc
LibJS: Implement Temporal.PlainDate.prototype.toString()
2021-08-19 00:14:17 +02:00
Linus Groh
310192f918
LibJS: Make Temporal's get_option() take a PropertyName directly
...
Instead of constructing a String and converting that to a PropertyName
on the fly, we can just leverage CommonPropertyNames, add a couple more
and directly pass ready-to-use PropertyNames with pre-allocated Strings.
2021-08-19 00:14:17 +02:00
Linus Groh
092f924cfd
LibJS: Reflect naming consistency editorial changes in the Temporal spec
...
See:
- 2aa7dce
- 13daa33
- 8085873
2021-08-18 23:03:22 +01:00