Commit graph

239 commits

Author SHA1 Message Date
Linus Groh
44a8b55c50 LibJS: Add preparation for Intl constructors and prototypes
Add a JS_ENUMERATE_INTL_OBJECTS macro and use it to generate:

- Forward declarations
- CommonPropertyNames class name members
- Constructor and prototype GlobalObject members, getters, visitors,
  and initialize_constructor() calls
2021-08-08 20:14:59 +01:00
Linus Groh
a37dcf8ca7 LibJS: Add the Intl namespace object :^)
This is the start of implementing ECMA-402 in LibJS, better known as the
ECMAScript Internationalization API.

Much like Temporal this gets its own subdirectory (Runtime/Intl/) as
well as a new C++ namespace (JS::Intl) so we don't have to prefix all
the files and classes with "Intl".

https://tc39.es/ecma402/
2021-08-08 20:14:59 +01:00
Linus Groh
6852ba4d34 LibJS: Implement Temporal.Instant.prototype.subtract() 2021-08-07 13:10:35 +01:00
davidot
b6523906b3 LibJS: Implement proposed Array.prototype.findLast{,Index}
Proposal: https://tc39.es/proposal-array-find-from-last/
2021-08-06 16:17:25 +01:00
Linus Groh
96a0c201d5 LibJS: Implement Temporal.ZonedDateTime.prototype.toInstant() 2021-08-05 23:15:27 +01:00
Linus Groh
6c345c8107 LibJS: Implement Temporal.ZonedDateTime.prototype.offset 2021-08-05 19:19:40 +02:00
Linus Groh
f937e9b966 LibJS: Implement Temporal.ZonedDateTime.prototype.offsetNanoseconds 2021-08-05 19:19:40 +02:00
Linus Groh
a06bd451d4 LibJS: Implement Temporal.Now.zonedDateTimeISO() 2021-08-01 20:31:31 +01:00
Linus Groh
36c79c2989 LibJS: Implement Temporal.Now.zonedDateTime() 2021-08-01 20:31:31 +01:00
Linus Groh
e511390423 LibJS: Implement Temporal.TimeZone.prototype.getPlainDateTimeFor() 2021-08-01 10:24:38 +01:00
Linus Groh
c4123d8aad LibJS: Implement Temporal.TimeZone.prototype.getOffsetStringFor() 2021-08-01 10:24:38 +01:00
Idan Horowitz
64a98d0f90 LibJS: Implement Temporal.PlainDateTime.prototype.toPlainTime 2021-07-31 00:16:41 +01:00
Idan Horowitz
010761aff4 LibJS: Implement Temporal.PlainDateTime.prototype.withPlainDate 2021-07-31 00:16:41 +01:00
Idan Horowitz
d1ee31c5de LibJS: Implement Temporal.PlainTime.prototype.toPlainDateTime 2021-07-29 22:47:56 +01:00
Linus Groh
5e64156fce LibJS: Implement Temporal.Now.plainTimeISO() 2021-07-28 21:57:30 +01:00
Linus Groh
d3bed13f4b LibJS: Implement Temporal.PlainTime.prototype.nanosecond 2021-07-28 21:57:30 +01:00
Linus Groh
65b90e93ad LibJS: Implement Temporal.PlainTime.prototype.microsecond 2021-07-28 21:57:30 +01:00
Linus Groh
8bcccf2577 LibJS: Implement Temporal.PlainTime.prototype.millisecond 2021-07-28 21:57:30 +01:00
Linus Groh
c5f03bc921 LibJS: Implement Temporal.PlainTime.prototype.second 2021-07-28 21:57:30 +01:00
Linus Groh
574f474d27 LibJS: Implement Temporal.PlainTime.prototype.minute 2021-07-28 21:57:30 +01:00
Linus Groh
524a56f7b6 LibJS: Implement Temporal.PlainTime.prototype.hour 2021-07-28 21:57:30 +01:00
Timothy Flynn
2f8eb4f068 LibJS: Implement non-ECMA-402 String.prototype.toLocale{Lower,Upper}Case
In implementations without ECMA-402, these methods are to behave like
their non-locale equivalents.
2021-07-27 22:35:24 +01:00
Linus Groh
af3a26f4cc LibJS: Implement Temporal.Now.plainDateTimeISO() 2021-07-27 19:51:44 +01:00
Linus Groh
0bb19fc51c LibJS: Implement Temporal.Now.plainDateTime() 2021-07-27 19:51:44 +01:00
Linus Groh
f2a2e8e13c LibJS: Implement Temporal.Now.plainDateISO() 2021-07-27 19:51:44 +01:00
Linus Groh
c303bbde54 LibJS: Implement Temporal.Now.plainDate()
...and ten required AOs we didn't have yet:

- BalanceISODate
- BalanceISODateTime
- BalanceISOYearMonth
- BalanceTime
- BuiltinTimeZoneGetPlainDateTimeFor
- GetISOPartsFromEpoch
- GetOffsetNanosecondsFor
- ParseTemporalTimeZone
- SystemDateTime
- ToTemporalTimeZone
2021-07-27 19:51:44 +01:00
davidot
7a56ca1250 LibJS: Implement a naive String.prototype.localeCompare 2021-07-26 15:56:15 +01:00
Linus Groh
96e63415b6 LibJS: Implement Temporal.TimeZone.prototype.getOffsetNanosecondsFor() 2021-07-25 23:44:36 +01:00
Idan Horowitz
c9ae7e1af1 LibJS: Implement Temporal.Calendar.prototype.inLeapYear 2021-07-23 22:00:23 +01:00
Idan Horowitz
342172da37 LibJS: Implement Temporal.Calendar.prototype.monthsInYear 2021-07-23 22:00:23 +01:00
Idan Horowitz
7f27035342 LibJS: Implement Temporal.Calendar.prototype.daysInYear 2021-07-23 22:00:23 +01:00
Idan Horowitz
69c8b8e8bd LibJS: Implement Temporal.Calendar.prototype.daysInMonth 2021-07-23 22:00:23 +01:00
Idan Horowitz
623df361e6 LibJS: Implement Temporal.Calendar.prototype.daysInWeek 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
c0e7761758 LibJS: Implement Temporal.Calendar.prototype.dayOfYear 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
9fa8f19a0f LibJS: Implement Temporal.PlainDate.prototype.withCalendar 2021-07-23 22:00:23 +01:00
Linus Groh
080112eb82 LibJS: Implement Temporal.PlainDateTime.prototype.getISOFields() 2021-07-23 08:18:11 +01:00
Linus Groh
18fd0d4011 LibJS: Implement Temporal.PlainDateTime.prototype.toPlainDate() 2021-07-23 08:18:11 +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
5516ad7158 LibJS: Rename Temporal.now => Temporal.Now
See:

- https://github.com/tc39/proposal-temporal/commit/d0acb66
- https://github.com/tc39/proposal-temporal/commit/0097fdd
2021-07-19 00:59:26 +01:00
Linus Groh
7df47bf3fb LibJS: Implement Temporal.Duration.prototype.negated() 2021-07-16 21:59:13 +01:00
Linus Groh
9aa1e4b885 LibJS: Implement Temporal.Duration.prototype.with() 2021-07-16 21:59:13 +01:00
Linus Groh
a06b034a9a LibJS: Implement Temporal.Duration.prototype.blank 2021-07-16 01:07:01 +01:00
Linus Groh
be5254dcac LibJS: Implement Temporal.Duration.prototype.nanoseconds 2021-07-16 01:07:01 +01:00
Linus Groh
04e2d215a1 LibJS: Implement Temporal.Duration.prototype.microseconds 2021-07-16 01:07:01 +01:00
Linus Groh
db22f86055 LibJS: Implement Temporal.Duration.prototype.milliseconds 2021-07-16 01:07:01 +01:00
Linus Groh
b81331a110 LibJS: Implement Temporal.Duration.prototype.seconds 2021-07-16 01:07:01 +01:00