1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-28 17:02:12 +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

@ -82,13 +82,10 @@ String JSONObject::stringify_impl(GlobalObject& global_object, Value value, Valu
if (space.is_object()) {
auto& space_object = space.as_object();
if (is<NumberObject>(space_object)) {
space = space.to_number(global_object);
if (vm.exception())
return {};
} else if (is<StringObject>(space_object)) {
if (is<NumberObject>(space_object))
space = TRY_OR_DISCARD(space.to_number(global_object));
else if (is<StringObject>(space_object))
space = TRY_OR_DISCARD(space.to_primitive_string(global_object));
}
}
if (space.is_number()) {
@ -148,17 +145,14 @@ String JSONObject::serialize_json_property(GlobalObject& global_object, Stringif
if (value.is_object()) {
auto& value_object = value.as_object();
if (is<NumberObject>(value_object)) {
value = value.to_number(global_object);
if (vm.exception())
return {};
} else if (is<StringObject>(value_object)) {
if (is<NumberObject>(value_object))
value = TRY_OR_DISCARD(value.to_number(global_object));
else if (is<StringObject>(value_object))
value = TRY_OR_DISCARD(value.to_primitive_string(global_object));
} else if (is<BooleanObject>(value_object)) {
else if (is<BooleanObject>(value_object))
value = static_cast<BooleanObject&>(value_object).value_of();
} else if (is<BigIntObject>(value_object)) {
else if (is<BigIntObject>(value_object))
value = static_cast<BigIntObject&>(value_object).value_of();
}
}
if (value.is_null())