devgianlu
5f1a30197c
LibCrypto: Remove the concept of invalid big integers
...
This concept is rarely used in codebase and very much error-prone
if you forget to check it.
Instead, make it so that operations that would produce invalid integers
return an error instead.
2025-04-28 12:05:26 +02:00
Timothy Flynn
29c8e7c203
LibJS: Disallow large dates in ToTemporalMonthDay
...
This is a normative change in the Temporal proposal. See:
bd5ac12
Note: No test added here because this only affects non-ISO-8601
calendars, which we do not yet support.
2025-03-01 14:49:20 +01:00
Timothy Flynn
080d32c7d0
LibJS: Use Intl.DurationFormat for Temporal.Duration.p.toLocaleString
...
This is an normative change in the Temporal proposal. See:
ffb4fb5
2025-03-01 14:49:20 +01:00
Timothy Flynn
8f51d1dd04
LibJS: Integrate Temporal.Duration into Intl.DurationFormat
...
This is a normative change in the Temporal proposal. See:
2d97205
2025-03-01 14:49:20 +01:00
Timothy Flynn
f16fe66def
LibJS: Migrate IsValidDuration to ECMA-262
...
This is an editorial change in the Temporal proposal. See:
03770bb
Note: We were actually already using the Temporal definition of this AO
in Intl.DurationFormat, so there's no change needed there.
2025-03-01 14:49:20 +01:00
Timothy Flynn
aa737bb654
LibJS: Migrate ToIntegerIfIntegral to ECMA-262
...
This is an editorial change in the Temporal proposal. See:
5f76109
2025-03-01 14:49:20 +01:00
Timothy Flynn
a8d6e5c3db
LibJS: Migrate Temporal updates to ECMA-262 AOs to the main AO file
...
These are going to be included in the ECMA-262 AOs once Temporal reaches
stage 4. There's no need to keep them in the Temporal namespace. Some
upcoming Temporal editorial changes will get awkward without this patch.
2025-03-01 14:49:20 +01: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
eef9d07088
LibJS: Add an explicit check for a valid ISO date in ToTemporalYearMonth
...
This is an editorial change in the Temporal proposal. See:
a1c5d61
2025-02-06 07:59:09 -05:00
Timothy Flynn
97b384db74
LibJS: Move call to CreateISODateRecord lower in ToTemporalYearMonth
...
This is an editorial change in the Temporal proposal. See:
58fd7de
2025-02-06 07:59:09 -05:00
Timothy Flynn
5372d07c5c
LibJS: Simplify ParseTemporalCalendarString
...
This is an editorial change in the Temporal proposal. See:
1b1fd9f
2025-01-28 11:25:42 +00: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
d5b26183f3
LibJS: Convert errant MUST to TRY in Temporal.PlainDateTime.with
2025-01-17 10:08:06 +01:00
Timothy Flynn
c3fc8996bf
LibJS: Refer to RFC 9557 instead of ISO 8601 where appropriate
...
This is an editorial change in the Temporal proposal. See:
9bb84b2
2025-01-17 10:08:06 +01:00
Timothy Flynn
27478ec7d4
Everywhere: Run clang-format
...
The following command was used to clang-format these files:
clang-format-19 -i $(find . \
-not \( -path "./\.*" -prune \) \
-not \( -path "./Build/*" -prune \) \
-not \( -path "./Toolchain/*" -prune \) \
-type f -name "*.cpp" -o -name "*.mm" -o -name "*.h")
2024-12-28 05:39:32 -08:00
Timothy Flynn
002b0ea7c7
LibJS: Remove dead code from ZonedDateTime.prototype.toLocaleString
...
This is an editorial change in the Temporal proposal. See:
065cf94
2024-12-11 08:43:54 -08:00
Timothy Flynn
b9ac4557d6
LibJS: Change variable name of parsed time zone offset
...
This is an editorial change in the Temporal proposal. See:
30d17d3
2024-12-11 08:43:54 -08:00
Timothy Flynn
6b8acc0af5
LibJS: Ensure DifferenceISODateTime receives valid ISO date-times
...
This is an editorial change in the Temporal proposal. See:
b5da334
2024-12-06 11:13:10 -05:00
Timothy Flynn
6dfa6993e5
LibJS: Add workaround for invalid ISODateTimes in DifferenceISODateTime
...
The assertions can be hit when Temporal.Duration.prototype.round / total
are provided a PlainDate at the very limits of valid date-times. Tests
were recently added to test262 which trip these assertions, thus we are
now crashing in those tests. Let's throw a RangeError instead, as this
is the behavior expected by the tests.
2024-12-05 15:29:08 -05:00
Timothy Flynn
784e872851
LibJS: Remove errant assertion from ParseISODateTime
...
This is an editorial change in the Temporal proposal. See:
728beeb
2024-12-05 15:29:08 -05: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
e29c6d2a80
LibJS: Mark invocation to CombineDateAndTimeDuration as infallible
...
This is an editorial change in the Temporal proposal. See:
6860ad1
2024-12-05 15:29:08 -05:00
Timothy Flynn
46c3406008
LibJS: Swap arguments in invocation to AddTimeDurationToEpochNanoseconds
...
This is an editorial change in the Temporal proposal. See:
630b043
This also changes the second argument of this AO to not use the alias of
TimeDuration, as that should not be used to refer to epoch nanoseconds.
This was missed in commit 2d9405e5d7
.
2024-12-05 15:29:08 -05:00
Timothy Flynn
713e86cc1d
LibJS: Mark some AO invocations in the Nudge* AOs as infallible
...
These are editorial changes in the Temporal proposal. See:
7aef51e
35cc12d
2637ba5
76dc52f
034f756
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
4f07cddb2d
LibJS: Mark TemporalDurationFromInternal as infallible in difference AOs
...
This is an editorial change in the Temporal proposal. See:
76c6612
2024-12-05 15:29:08 -05:00
Timothy Flynn
81b38c66a8
LibJS: Avoid negated test in DifferenceTemporalZonedDateTime
...
This is an editorial change in the Temporal proposal. See:
38233ae
2024-12-05 15:29:08 -05:00
Timothy Flynn
5c0c1e507c
LibJS: Reverse date comparison in DifferenceISODateTime
...
This is an editorial change in the Temporal proposal. See:
4a8cdb5
2024-12-05 15:29:08 -05:00
Timothy Flynn
16aebef4f4
LibJS: Make DifferenceISODateTime infallible
...
This is an editorial change in the Temporal proposal. See:
df74f7f
2024-12-05 15:29:08 -05:00
Timothy Flynn
25c361bb96
LibJS: Remove errant period from ZonedDateTime.prototype.toPlainDate
...
This is an editorial change in the Temporal proposal. See:
5e25315
2024-12-05 15:29:08 -05:00
Timothy Flynn
fe4995b69a
LibJS: Replace invalid reference to an [[Offset]] internal slot
...
This is an editorial change in the Temporal proposal. See:
f1569ef
Here, we also update the struct member name to match the correct slot
name.
2024-12-05 15:29:08 -05:00
Timothy Flynn
0468463e2e
LibJS: Implement the ECMA-402 ZonedDateTime.prototype.toLocaleString.js
2024-11-29 09:52:12 +01:00
Timothy Flynn
c96f6c396f
LibJS: Implement the ECMA-402 PlainDateTime.prototype.toLocaleString.js
2024-11-29 09:52:12 +01:00
Timothy Flynn
224304cd56
LibJS: Implement the ECMA-402 PlainTime.prototype.toLocaleString.js
2024-11-29 09:52:12 +01:00
Timothy Flynn
ac0292b18f
LibJS: Implement the ECMA-402 PlainYearMonth.prototype.toLocaleString.js
2024-11-29 09:52:12 +01:00
Timothy Flynn
bca70584b9
LibJS: Implement the ECMA-402 PlainMonthDay.prototype.toLocaleString.js
2024-11-29 09:52:12 +01:00
Timothy Flynn
697e68e68f
LibJS: Implement the ECMA-402 PlainDate.prototype.toLocaleString.js
2024-11-29 09:52:12 +01:00
Timothy Flynn
964f41bb53
LibJS: Implement the ECMA-402 Instant.prototype.toLocaleString.js
2024-11-29 09:52:12 +01:00
Timothy Flynn
8e8c133db5
LibJS: Use Temporal for the Date constructor and Date.now()
2024-11-26 15:02:07 -05:00
Timothy Flynn
7aee254708
LibJS: Use correct epoch offset in InterpretISODateTimeOffset
2024-11-26 15:02:00 -05:00
Timothy Flynn
ade510fe17
LibJS: Pass ISO types by value vs. const-reference more correctly
...
We were passing types like ISODate by reference so that they could be
used as forward-declarations. But after commit 021a5f4ded
, we now have
their full definitions anywhere they're needed. So let's pass ISODate by
value everywhere consistently - it is only 8 bytes.
2024-11-26 11:35:15 -05:00
Timothy Flynn
2d9405e5d7
LibJS: Use the TimeDuration alias a bit less in Temporal
...
It was a bit of a semantic mistake too use this alias too eagerly.
Namely, it should not be used to refer to epoch nanoseconds. We now only
use the TimeDuration alias where the spec refers to a value as a time
duration.
2024-11-26 11:35:15 -05:00
Timothy Flynn
58828ffd62
LibJS: Implement Temporal.ZonedDateTime.prototype.to*
...
Includes:
Temporal.ZonedDateTime.prototype.toInstant
Temporal.ZonedDateTime.prototype.toPlainDate
Temporal.ZonedDateTime.prototype.toPlainTime
Temporal.ZonedDateTime.prototype.toPlainDateTime
2024-11-26 11:00:56 +01:00
Timothy Flynn
b95528d7b5
LibJS: Stub out Temporal.ZonedDateTime.prototype.getTimeZoneTransition
...
We will have to add facilities to determine next/previous time zone
transitions. Ideally, ICU can provide this.
2024-11-26 11:00:56 +01:00
Timothy Flynn
6d78f1327e
LibJS: Implement Temporal.ZonedDateTime.prototype.startOfDay
2024-11-26 11:00:56 +01:00
Timothy Flynn
3d0f384e01
LibJS: Implement Temporal.ZonedDateTime.prototype.with*
...
Includes:
Temporal.ZonedDateTime.prototype.with
Temporal.ZonedDateTime.prototype.withPlainTime
Temporal.ZonedDateTime.prototype.withCalendar
Temporal.ZonedDateTime.prototype.withTimeZone
2024-11-26 11:00:56 +01:00
Timothy Flynn
f2ab9e1aa9
LibJS: Implement Temporal.ZonedDateTime.prototype.round
2024-11-26 11:00:56 +01:00
Timothy Flynn
eadd0c40c9
LibJS: Implement Temporal.ZonedDateTime.prototype.since/until
2024-11-26 11:00:56 +01:00
Timothy Flynn
336efa5e3f
LibJS: Implement Temporal.ZonedDateTime.prototype.add/subtract/equals
2024-11-26 11:00:56 +01:00
Timothy Flynn
4ef21614e9
LibJS: Implement stringification Temporal.ZonedDateTime prototypes
2024-11-26 11:00:56 +01:00