From 34f02bed176978fff5d5f26f72e2b32d97b30dfc Mon Sep 17 00:00:00 2001 From: Linus Groh Date: Thu, 23 Jun 2022 19:38:38 +0100 Subject: LibJS: Remove check for Instant range before subtracting UTC offset This is a normative change in the Temporal spec. See: https://github.com/tc39/proposal-temporal/commit/5e2fecb --- Userland/Libraries/LibJS/Runtime/Temporal/Instant.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'Userland') diff --git a/Userland/Libraries/LibJS/Runtime/Temporal/Instant.cpp b/Userland/Libraries/LibJS/Runtime/Temporal/Instant.cpp index 190e4b9e90..212acc1f97 100644 --- a/Userland/Libraries/LibJS/Runtime/Temporal/Instant.cpp +++ b/Userland/Libraries/LibJS/Runtime/Temporal/Instant.cpp @@ -118,25 +118,19 @@ ThrowCompletionOr parse_temporal_instant(GlobalObject& global_object, S // 5. Let utc be GetEpochFromISOParts(result.[[Year]], result.[[Month]], result.[[Day]], result.[[Hour]], result.[[Minute]], result.[[Second]], result.[[Millisecond]], result.[[Microsecond]], result.[[Nanosecond]]). auto* utc = get_epoch_from_iso_parts(global_object, result.year, result.month, result.day, result.hour, result.minute, result.second, result.millisecond, result.microsecond, result.nanosecond); - // 6. If ℝ(utc) < nsMinInstant or ℝ(utc) > nsMaxInstant, then - if (utc->big_integer() < ns_min_instant || utc->big_integer() > ns_max_instant) { - // a. Throw a RangeError exception. - return vm.throw_completion(global_object, ErrorType::TemporalInvalidEpochNanoseconds); - } - - // 7. Let offsetNanoseconds be ? ParseTimeZoneOffsetString(offsetString). + // 6. Let offsetNanoseconds be ? ParseTimeZoneOffsetString(offsetString). auto offset_nanoseconds = TRY(parse_time_zone_offset_string(global_object, *offset_string)); - // 8. Let result be utc - ℤ(offsetNanoseconds). + // 7. Let result be utc - ℤ(offsetNanoseconds). auto* result_ns = js_bigint(vm, utc->big_integer().minus(Crypto::SignedBigInteger::create_from(offset_nanoseconds))); - // 9. If ! IsValidEpochNanoseconds(result) is false, then + // 8. If ! IsValidEpochNanoseconds(result) is false, then if (!is_valid_epoch_nanoseconds(*result_ns)) { // a. Throw a RangeError exception. return vm.throw_completion(global_object, ErrorType::TemporalInvalidEpochNanoseconds); } - // 10. Return result. + // 9. Return result. return result_ns; } -- cgit v1.2.3