Timothy Flynn
a41f2f56a8
LibJS+LibUnicode: Migrate some Temporal calendar types to LibUnicode
...
These will be needed for calendar operations involving ICU.
2026-03-09 11:40:59 +01:00
Timothy Flynn
2e74b91ca1
LibJS: Pass calendar strings around as String more regularly
...
Same as commit f9fa548d43 .
These are String from the outset, so this patch is almost entirely just
changing function parameter types. This will allow us to cache calendar
objects in ICU without invoking any extra allocations.
2026-03-09 11:40:59 +01:00
Shannon Booth
502ae99102
LibJS: Make more use of Value::is and Value::as_if
2026-02-28 10:24:37 -05:00
Timothy Flynn
cadba4c0e7
LibJS: Make more use of Value::is and Value::as_if in Temporal
2026-02-27 17:19:33 +01:00
Timothy Flynn
206a18acd4
LibJS: Use single-line if/else steps in Temporal operations
...
This is an editorial change in the Temporal proposal. See:
978311d
2026-02-14 19:47:29 +01:00
Timothy Flynn
8c5fd82da9
LibJS: Replace "otherwise" with "else" in Temporal operations
...
This is an editorial change in the Temporal proposal. See:
1ae3e42
2026-02-14 19:47:29 +01:00
Timothy Flynn
7ac2e7deea
LibJS: Split ISODateSurpasses into a couple of AOs
...
This is an editorial change in the Temporal proposal. See:
196a319
2026-01-30 08:01:45 +01:00
Timothy Flynn
3eabdcf460
LibJS: Replace Temporal's BalanceISODate with AddDaysToISODate
...
This is an editorial change in the Temporal proposal. See:
b28ef08
2026-01-13 13:02:22 -05:00
Timothy Flynn
cb6ca85564
LibJS: Handle relativeTo ZDTs that fall within second DST wallclock time
...
This is a normative change in the Temporal proposal. See:
1a089eb
2025-09-28 11:33:43 -04:00
Timothy Flynn
3920194bca
LibJS: Move regulating and balancing logic into ISODateSurpasses
...
This is an editorial change in the Temporal proposal. See:
eddb77f
2025-08-05 11:18:08 -04:00
Timothy Flynn
ea52952774
LibJS: Update Date AOs to use Temporal
...
Neglected to do this after the Temporal rewrite. This lets us eliminate
the duplicated GetUTCEpochNanoseconds definition in Temporal.
2025-03-01 14:49:20 +01:00
Timothy Flynn
59162c8155
LibJS: Adjust ad-hoc clamping behavior in RegulateISODate
...
Instead of clamping to the limits allowed by ISOYearMonthWithinLimits,
clamp to the limits allowed by the type we are converting to (i32). This
allows some callers to then reject years outside that range.
2025-01-17 10:08:06 +01:00
Timothy Flynn
0e81092685
LibJS: Make CombineDateAndTimeDuration infallible
...
This is an editorial change in the Temporal proposal. See:
794960c
2024-12-05 15:29:08 -05:00
Timothy Flynn
4cbb5661d0
LibJS: Make ToDateDurationRecordWithoutTime infallible
...
This is an editorial change in the Temporal proposal. See:
05017b9
2024-12-05 15:29:08 -05:00
Timothy Flynn
3e6133cc09
LibJS: Handle ZonedDateTime in the various Temporal factories
2024-11-26 11:00:56 +01:00
Timothy Flynn
029b6ad1a8
LibJS: Implement the Temporal.PlainDateTime constructor
...
And the simple Temporal.PlainDateTime.prototype getters, so that the
constructed Temporal.PlainDateTime may actually be validated.
2024-11-24 11:43:59 +01:00
Timothy Flynn
521638642f
LibJS: Capture CalendarFields by reference in Calendar*FromFields AOs
...
These fields are modified by an invocation to CalendarResolveFields. All
callers currently don't care about these modifications, so they move the
CalendarFields struct into the AO. But it turns out that at least one AO
will care (InterpretTemporalDateTimeFields), thus we will need to take
by reference here.
2024-11-23 14:46:00 +01:00
Timothy Flynn
3aa4cdd314
LibJS: Implement Temporal.PlainDate.prototype.until/since
2024-11-23 14:46:00 +01:00
Timothy Flynn
c2ead84bd9
LibJS: Implement Temporal.PlainDate.prototype.add/subtract/equals
2024-11-23 14:46:00 +01:00
Timothy Flynn
9fbb5a57fa
LibJS: Implement stringification Temporal.PlainDate prototypes
2024-11-23 14:46:00 +01:00
Timothy Flynn
a0c55f76e7
LibJS: Implement the Temporal.PlainDate constructor
...
And the simple Temporal.PlainDate.prototype getters, so that the
constructed Temporal.PlainDate may actually be validated.
2024-11-23 14:46:00 +01:00
Timothy Flynn
cb5d1b5086
LibJS: Implement Temporal.PlainYearMonth.prototype.until/since
2024-11-22 19:55:24 +01:00
Timothy Flynn
5389acc231
LibJS: Implement Temporal.PlainMonthDay.prototype.with/equals
2024-11-21 19:24:25 -05:00
Timothy Flynn
5bccb36a6f
LibJS: Implement stringification Temporal.PlainMonthDay prototypes
2024-11-21 19:24:25 -05:00
Timothy Flynn
1a386e78c3
LibJS: Implement the Temporal.PlainMonthDay constructor
...
And the simple Temporal.PlainMonthDay.prototype getters, so that the
constructed Temporal.PlainMonthDay may actually be validated.
2024-11-21 19:24:25 -05:00
Timothy Flynn
f7517c5b8d
LibJS: Remove our existing Temporal implementation
...
Our Temporal implementation is woefully out of date. The spec has been
so vastly rewritten that it is unfortunately not practical to update our
implementation in-place. Even just removing Temporal objects that were
removed from the spec, or updating any of the simpler remaining objects,
has proven to be a mess in previous attempts.
So, this removes our Temporal implementation. AOs used by other specs
are left intact.
2024-11-20 19:04:30 -05:00
Shannon Booth
f87041bf3a
LibGC+Everywhere: Factor out a LibGC from LibJS
...
Resulting in a massive rename across almost everywhere! Alongside the
namespace change, we now have the following names:
* JS::NonnullGCPtr -> GC::Ref
* JS::GCPtr -> GC::Ptr
* JS::HeapFunction -> GC::Function
* JS::CellImpl -> GC::Cell
* JS::Handle -> GC::Root
2024-11-15 14:49:20 +01:00
Timothy Flynn
93712b24bf
Everywhere: Hoist the Libraries folder to the top-level
2024-11-10 12:50:45 +01:00