1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 07:48:12 +00:00

LibJS: Convert Temporal.Now functions to ThrowCompletionOr

This commit is contained in:
Linus Groh 2021-10-21 19:57:11 +01:00
parent 149231d47d
commit df67f4978e
2 changed files with 38 additions and 38 deletions

View file

@ -35,43 +35,43 @@ void Now::initialize(GlobalObject& global_object)
define_direct_property(*vm.well_known_symbol_to_string_tag(), js_string(vm, "Temporal.Now"), Attribute::Configurable);
u8 attr = Attribute::Writable | Attribute::Configurable;
define_old_native_function(vm.names.timeZone, time_zone, 0, attr);
define_old_native_function(vm.names.instant, instant, 0, attr);
define_old_native_function(vm.names.plainDateTime, plain_date_time, 1, attr);
define_old_native_function(vm.names.plainDateTimeISO, plain_date_time_iso, 0, attr);
define_old_native_function(vm.names.zonedDateTime, zoned_date_time, 1, attr);
define_old_native_function(vm.names.zonedDateTimeISO, zoned_date_time_iso, 0, attr);
define_old_native_function(vm.names.plainDate, plain_date, 1, attr);
define_old_native_function(vm.names.plainDateISO, plain_date_iso, 0, attr);
define_old_native_function(vm.names.plainTimeISO, plain_time_iso, 0, attr);
define_native_function(vm.names.timeZone, time_zone, 0, attr);
define_native_function(vm.names.instant, instant, 0, attr);
define_native_function(vm.names.plainDateTime, plain_date_time, 1, attr);
define_native_function(vm.names.plainDateTimeISO, plain_date_time_iso, 0, attr);
define_native_function(vm.names.zonedDateTime, zoned_date_time, 1, attr);
define_native_function(vm.names.zonedDateTimeISO, zoned_date_time_iso, 0, attr);
define_native_function(vm.names.plainDate, plain_date, 1, attr);
define_native_function(vm.names.plainDateISO, plain_date_iso, 0, attr);
define_native_function(vm.names.plainTimeISO, plain_time_iso, 0, attr);
}
// 2.2.1 Temporal.Now.timeZone ( ), https://tc39.es/proposal-temporal/#sec-temporal.now.timezone
JS_DEFINE_OLD_NATIVE_FUNCTION(Now::time_zone)
JS_DEFINE_NATIVE_FUNCTION(Now::time_zone)
{
// 1. Return ! SystemTimeZone().
return system_time_zone(global_object);
}
// 2.2.2 Temporal.Now.instant ( ), https://tc39.es/proposal-temporal/#sec-temporal.now.instant
JS_DEFINE_OLD_NATIVE_FUNCTION(Now::instant)
JS_DEFINE_NATIVE_FUNCTION(Now::instant)
{
// 1. Return ! SystemInstant().
return system_instant(global_object);
}
// 2.2.3 Temporal.Now.plainDateTime ( calendar [ , temporalTimeZoneLike ] ), https://tc39.es/proposal-temporal/#sec-temporal.now.plaindatetime
JS_DEFINE_OLD_NATIVE_FUNCTION(Now::plain_date_time)
JS_DEFINE_NATIVE_FUNCTION(Now::plain_date_time)
{
auto calendar = vm.argument(0);
auto temporal_time_zone_like = vm.argument(1);
// 1. Return ? SystemDateTime(temporalTimeZoneLike, calendar).
return TRY_OR_DISCARD(system_date_time(global_object, temporal_time_zone_like, calendar));
return TRY(system_date_time(global_object, temporal_time_zone_like, calendar));
}
// 2.2.4 Temporal.Now.plainDateTimeISO ( [ temporalTimeZoneLike ] ), https://tc39.es/proposal-temporal/#sec-temporal.now.plaindatetimeiso
JS_DEFINE_OLD_NATIVE_FUNCTION(Now::plain_date_time_iso)
JS_DEFINE_NATIVE_FUNCTION(Now::plain_date_time_iso)
{
auto temporal_time_zone_like = vm.argument(0);
@ -79,21 +79,21 @@ JS_DEFINE_OLD_NATIVE_FUNCTION(Now::plain_date_time_iso)
auto* calendar = get_iso8601_calendar(global_object);
// 2. Return ? SystemDateTime(temporalTimeZoneLike, calendar).
return TRY_OR_DISCARD(system_date_time(global_object, temporal_time_zone_like, calendar));
return TRY(system_date_time(global_object, temporal_time_zone_like, calendar));
}
// 2.2.5 Temporal.Now.zonedDateTime ( calendar [ , temporalTimeZoneLike ] ), https://tc39.es/proposal-temporal/#sec-temporal.now.zoneddatetime
JS_DEFINE_OLD_NATIVE_FUNCTION(Now::zoned_date_time)
JS_DEFINE_NATIVE_FUNCTION(Now::zoned_date_time)
{
auto calendar = vm.argument(0);
auto temporal_time_zone_like = vm.argument(1);
// 1. Return ? SystemZonedDateTime(temporalTimeZoneLike, calendar).
return TRY_OR_DISCARD(system_zoned_date_time(global_object, temporal_time_zone_like, calendar));
return TRY(system_zoned_date_time(global_object, temporal_time_zone_like, calendar));
}
// 2.2.6 Temporal.Now.zonedDateTimeISO ( [ temporalTimeZoneLike ] ), https://tc39.es/proposal-temporal/#sec-temporal.now.zoneddatetimeiso
JS_DEFINE_OLD_NATIVE_FUNCTION(Now::zoned_date_time_iso)
JS_DEFINE_NATIVE_FUNCTION(Now::zoned_date_time_iso)
{
auto temporal_time_zone_like = vm.argument(0);
@ -101,24 +101,24 @@ JS_DEFINE_OLD_NATIVE_FUNCTION(Now::zoned_date_time_iso)
auto* calendar = get_iso8601_calendar(global_object);
// 2. Return ? SystemZonedDateTime(temporalTimeZoneLike, calendar).
return TRY_OR_DISCARD(system_zoned_date_time(global_object, temporal_time_zone_like, calendar));
return TRY(system_zoned_date_time(global_object, temporal_time_zone_like, calendar));
}
// 2.2.7 Temporal.Now.plainDate ( calendar [ , temporalTimeZoneLike ] ), https://tc39.es/proposal-temporal/#sec-temporal.now.plaindate
JS_DEFINE_OLD_NATIVE_FUNCTION(Now::plain_date)
JS_DEFINE_NATIVE_FUNCTION(Now::plain_date)
{
auto calendar = vm.argument(0);
auto temporal_time_zone_like = vm.argument(1);
// 1. Let dateTime be ? SystemDateTime(temporalTimeZoneLike, calendar).
auto* date_time = TRY_OR_DISCARD(system_date_time(global_object, temporal_time_zone_like, calendar));
auto* date_time = TRY(system_date_time(global_object, temporal_time_zone_like, calendar));
// 2. Return ! CreateTemporalDate(dateTime.[[ISOYear]], dateTime.[[ISOMonth]], dateTime.[[ISODay]], dateTime.[[Calendar]]).
return TRY_OR_DISCARD(create_temporal_date(global_object, date_time->iso_year(), date_time->iso_month(), date_time->iso_day(), date_time->calendar()));
return TRY(create_temporal_date(global_object, date_time->iso_year(), date_time->iso_month(), date_time->iso_day(), date_time->calendar()));
}
// 2.2.8 Temporal.Now.plainDateISO ( [ temporalTimeZoneLike ] ), https://tc39.es/proposal-temporal/#sec-temporal.now.plaindateiso
JS_DEFINE_OLD_NATIVE_FUNCTION(Now::plain_date_iso)
JS_DEFINE_NATIVE_FUNCTION(Now::plain_date_iso)
{
auto temporal_time_zone_like = vm.argument(0);
@ -126,14 +126,14 @@ JS_DEFINE_OLD_NATIVE_FUNCTION(Now::plain_date_iso)
auto* calendar = get_iso8601_calendar(global_object);
// 2. Let dateTime be ? SystemDateTime(temporalTimeZoneLike, calendar).
auto* date_time = TRY_OR_DISCARD(system_date_time(global_object, temporal_time_zone_like, calendar));
auto* date_time = TRY(system_date_time(global_object, temporal_time_zone_like, calendar));
// 3. Return ! CreateTemporalDate(dateTime.[[ISOYear]], dateTime.[[ISOMonth]], dateTime.[[ISODay]], dateTime.[[Calendar]]).
return TRY_OR_DISCARD(create_temporal_date(global_object, date_time->iso_year(), date_time->iso_month(), date_time->iso_day(), date_time->calendar()));
return TRY(create_temporal_date(global_object, date_time->iso_year(), date_time->iso_month(), date_time->iso_day(), date_time->calendar()));
}
// 2.2.9 Temporal.Now.plainTimeISO ( [ temporalTimeZoneLike ] ), https://tc39.es/proposal-temporal/#sec-temporal.now.plaintimeiso
JS_DEFINE_OLD_NATIVE_FUNCTION(Now::plain_time_iso)
JS_DEFINE_NATIVE_FUNCTION(Now::plain_time_iso)
{
auto temporal_time_zone_like = vm.argument(0);
@ -141,10 +141,10 @@ JS_DEFINE_OLD_NATIVE_FUNCTION(Now::plain_time_iso)
auto* calendar = get_iso8601_calendar(global_object);
// 2. Let dateTime be ? SystemDateTime(temporalTimeZoneLike, calendar).
auto* date_time = TRY_OR_DISCARD(system_date_time(global_object, temporal_time_zone_like, calendar));
auto* date_time = TRY(system_date_time(global_object, temporal_time_zone_like, calendar));
// 3. Return ! CreateTemporalTime(dateTime.[[ISOHour]], dateTime.[[ISOMinute]], dateTime.[[ISOSecond]], dateTime.[[ISOMillisecond]], dateTime.[[ISOMicrosecond]], dateTime.[[ISONanosecond]]).
return TRY_OR_DISCARD(create_temporal_time(global_object, date_time->iso_hour(), date_time->iso_minute(), date_time->iso_second(), date_time->iso_millisecond(), date_time->iso_microsecond(), date_time->iso_nanosecond()));
return MUST(create_temporal_time(global_object, date_time->iso_hour(), date_time->iso_minute(), date_time->iso_second(), date_time->iso_millisecond(), date_time->iso_microsecond(), date_time->iso_nanosecond()));
}
// 2.3.1 SystemTimeZone ( ), https://tc39.es/proposal-temporal/#sec-temporal-systemtimezone
@ -154,7 +154,7 @@ TimeZone* system_time_zone(GlobalObject& global_object)
auto identifier = default_time_zone();
// 2. Return ! CreateTemporalTimeZone(identifier).
return TRY_OR_DISCARD(create_temporal_time_zone(global_object, identifier));
return MUST(create_temporal_time_zone(global_object, identifier));
}
// 2.3.2 SystemUTCEpochNanoseconds ( ), https://tc39.es/proposal-temporal/#sec-temporal-systemutcepochnanoseconds