Linus Groh
4e5becf36e
LibJS: Make default_merge_fields() {additional_,}fields Object a const&
...
This only calls Object::{get,enumerable_own_property_names}() on the
fields and additional_fields Objects, both of which are const-qualified.
2021-09-09 23:46:45 +01:00
Linus Groh
4bba61fd59
LibJS: Make resolve_iso_month() fields Object a const&
...
This only calls Object::get() on the fields Object, which is
const-qualified.
2021-09-09 23:46:45 +01:00
Linus Groh
1f99538185
LibJS: Make Temporal foo_from_fields() AO field/options Object a const*
...
This is a bit of a lie as the Value(Object const*) ctor will const_cast
them in invoke(), but at least it ensures that nothing else in the
function relies on getting non-const Objects.
Perhaps we can have an actual Object const* Value in the future as well.
2021-09-09 23:46:45 +01:00
Linus Groh
e4c07c5b8f
LibJS: Make new_target parameter of all Temporal AOs a const*
...
These are passed to ordinary_create_from_constructor() in each case,
which takes the parameter as a const&, so these can also be const.
2021-09-09 23:46:45 +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
402f04c2fc
LibJS: Implement Temporal.PlainDate.prototype.toString()
2021-08-19 00:14:17 +02:00
Linus Groh
1292d80b93
LibJS: Implement Temporal.Calendar.prototype.mergeFields()
2021-08-17 00:26:19 +01:00
Linus Groh
795e077eb8
LibJS: Implement Temporal.PlainDate.prototype.toPlainMonthDay()
2021-08-16 20:40:21 +01:00
Linus Groh
31f65b8c50
LibJS: Implement Temporal.Calendar.prototype.monthDayFromFields()
2021-08-16 20:40:21 +01:00
Linus Groh
6709c915aa
LibJS: Implement Temporal.PlainDate.prototype.toPlainYearMonth()
2021-08-16 14:10:41 +01:00
Linus Groh
ed9d37bd40
LibJS: Implement Temporal.Calendar.prototype.yearMonthFromFields()
2021-08-16 14:10:41 +01:00
Linus Groh
53c44bea00
LibJS: Mark getters of more Temporal objects [[nodiscard]]
...
PlainDate, PlainTime, and PlainDateTime already do this. All the others
should as well.
2021-08-08 17:45:06 +01:00
Linus Groh
e036f4a786
LibJS: Make regulate_iso_date() and iso_date_from_fields() use ISODate
...
No need for TemporalDate, we don't use the calendar field here anyway.
2021-08-05 19:19:40 +02:00
Linus Groh
1b9b995f93
LibJS: Use "T m_foo; // [[Foo]]" style for all Temporal internal slots
2021-08-01 20:31:31 +01:00
Idan Horowitz
010761aff4
LibJS: Implement Temporal.PlainDateTime.prototype.withPlainDate
2021-07-31 00:16:41 +01:00
Idan Horowitz
2c6bd3a61b
LibJS: Use narrower types in Temporal PlainDate/PlainDateTime/Calendar
...
These are bounds-checked during construction of PlainDate/PlainDateTime
and as such theres no need to widen them in these internal AO calls.
2021-07-26 16:15:31 +01:00
Idan Horowitz
1d76be97f5
LibJS: Implement Temporal.PlainDate.prototype.inLeapYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
dd15fc471c
LibJS: Implement Temporal.PlainDate.prototype.monthsInYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
b1dd09840b
LibJS: Implement Temporal.PlainDate.prototype.daysInYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
3160540d0e
LibJS: Implement Temporal.PlainDate.prototype.daysInMonth
2021-07-23 22:00:23 +01:00
Idan Horowitz
2150f5b374
LibJS: Implement Temporal.PlainDate.prototype.daysInWeek
2021-07-23 22:00:23 +01:00
Idan Horowitz
2cf582436f
LibJS: Implement Temporal.PlainDate.prototype.weekOfYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
d22fe25643
LibJS: Implement Temporal.Calendar.prototype.weekOfYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
d561535ac9
LibJS: Implement Temporal.PlainDate.prototype.dayOfYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
c0e7761758
LibJS: Implement Temporal.Calendar.prototype.dayOfYear
2021-07-23 22:00:23 +01:00
Idan Horowitz
bcbfd5b280
LibJS: Implement Temporal.PlainDate.prototype.dayOfWeek
2021-07-23 22:00:23 +01:00
Idan Horowitz
339b0a17e8
LibJS: Implement Temporal.Calendar.prototype.dayOfWeek
2021-07-23 22:00:23 +01:00
Idan Horowitz
59dc0e8421
LibJS: Implement Temporal.PlainDate.prototype.day
2021-07-23 22:00:23 +01:00
Idan Horowitz
8a20f258f0
LibJS: Implement Temporal.Calendar.prototype.day
2021-07-23 22:00:23 +01:00
Idan Horowitz
d9414e465a
LibJS: Implement Temporal.PlainDate.prototype.monthCode
2021-07-23 22:00:23 +01:00
Idan Horowitz
9d9ba29cae
LibJS: Implement Temporal.Calendar.prototype.monthCode
2021-07-23 22:00:23 +01:00
Idan Horowitz
a0af9b11fb
LibJS: Implement Temporal.PlainDate.prototype.month
2021-07-23 22:00:23 +01:00
Idan Horowitz
3bec18432a
LibJS: Implement Temporal.Calendar.prototype.month
2021-07-23 22:00:23 +01:00
Idan Horowitz
8434ca6c4b
LibJS: Implement Temporal.PlainDate.prototype.year
2021-07-23 22:00:23 +01:00
Idan Horowitz
3895a8354d
LibJS: Implement Temporal.Calendar.prototype.year
2021-07-23 22:00:23 +01:00
Linus Groh
bece2093f2
LibJS: Remove pointless 'explicit' from a couple of constructors
2021-07-22 21:19:40 +01:00
Idan Horowitz
d804ce830d
LibJS: Implement Temporal.PlainDate.prototype.equals & Required AO
2021-07-21 22:49:37 +01:00
Idan Horowitz
cf78efaef5
LibJS: Implement the ToTemporalDate Abstract Operation
...
This is required by most Temporal.PlainDate.prototype methods.
2021-07-21 22:49:37 +01:00
Idan Horowitz
1e471e2e2f
LibJS: Add Temporal.Calendar.prototype.dateFromFields & required AOs
...
This is required for implementing the DateFromFields PlainDate AO.
2021-07-21 22:49:37 +01:00
Idan Horowitz
cc00ccec41
LibJS: Start implementing Temporal.PlainDate
...
This commit adds the PlainDate object itself, its constructor and
prototype (currently empty), and several required abstract operations.
2021-07-19 09:11:20 +01:00
Linus Groh
a2f1d79765
LibJS: Start implementing Temporal.Calendar
...
Just like the previous Temporal.{Instant,TimeZone} commits, this patch
adds the Calendar object itself, its constructor and prototype
(currently empty), and two required abstract operations.
2021-07-14 23:50:03 +01:00
Idan Horowitz
b816037739
LibJS: Add the ToTemporalInstant Abstract Operation & its requirements
...
This is Abstract Operation is required for the majority of
InstantConstructor's and InstantPrototype's methods.
The implementation is not entirely complete, (specifically 2 of the
underlying required abstract operations, ParseTemporalTimeZoneString
and ParseISODateTime are missing the required lexing, and as such are
TODO()-ed) but the majority of it is done.
2021-07-12 19:05:17 +01:00