1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 18:07:34 +00:00

LibJS: Convert to_number() to ThrowCompletionOr

This commit is contained in:
Idan Horowitz 2021-10-17 23:20:05 +03:00
parent a36ee213b9
commit 20d990563c
22 changed files with 149 additions and 343 deletions

View file

@ -139,9 +139,7 @@ ThrowCompletionOr<Value> get_option(GlobalObject& global_object, Object const& o
// 8. Else if type is Number, then
else if (type == OptionType::Number) {
// a. Set value to ? ToNumber(value).
value = value.to_number(global_object);
if (auto* exception = vm.exception())
return throw_completion(exception->value());
value = TRY(value.to_number(global_object));
// b. If value is NaN, throw a RangeError exception.
if (value.is_nan())

View file

@ -98,9 +98,7 @@ ThrowCompletionOr<TemporalDuration> to_temporal_duration_record(GlobalObject& gl
any = true;
// ii. Let val be ? ToNumber(val).
value = value.to_number(global_object);
if (auto* exception = vm.exception())
return throw_completion(exception->value());
value = TRY(value.to_number(global_object));
// iii. If ! IsIntegralNumber(val) is false, then
if (!value.is_integral_number()) {
@ -196,9 +194,7 @@ ThrowCompletionOr<PartialDuration> to_partial_duration(GlobalObject& global_obje
any = true;
// ii. Set value to ? ToNumber(value).
value = value.to_number(global_object);
if (auto* exception = vm.exception())
return throw_completion(exception->value());
value = TRY(value.to_number(global_object));
// iii. If ! IsIntegralNumber(value) is false, then
if (!value.is_integral_number()) {

View file

@ -87,9 +87,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantConstructor::from)
JS_DEFINE_NATIVE_FUNCTION(InstantConstructor::from_epoch_seconds)
{
// 1. Set epochSeconds to ? ToNumber(epochSeconds).
auto epoch_seconds_value = vm.argument(0).to_number(global_object);
if (vm.exception())
return {};
auto epoch_seconds_value = TRY_OR_DISCARD(vm.argument(0).to_number(global_object));
// 2. Set epochSeconds to ? NumberToBigInt(epochSeconds).
auto* epoch_seconds = number_to_bigint(global_object, epoch_seconds_value);
@ -113,9 +111,7 @@ JS_DEFINE_NATIVE_FUNCTION(InstantConstructor::from_epoch_seconds)
JS_DEFINE_NATIVE_FUNCTION(InstantConstructor::from_epoch_milliseconds)
{
// 1. Set epochMilliseconds to ? ToNumber(epochMilliseconds).
auto epoch_milliseconds_value = vm.argument(0).to_number(global_object);
if (vm.exception())
return {};
auto epoch_milliseconds_value = TRY_OR_DISCARD(vm.argument(0).to_number(global_object));
// 2. Set epochMilliseconds to ? NumberToBigInt(epochMilliseconds).
auto* epoch_milliseconds = number_to_bigint(global_object, epoch_milliseconds_value);