mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 08:07:34 +00:00
LibJS: Convert to_double() to ThrowCompletionOr
This commit is contained in:
parent
51c33b3b35
commit
1639ed7e0a
10 changed files with 23 additions and 40 deletions
|
@ -141,13 +141,13 @@ static ByteBuffer numeric_to_raw_bytes(GlobalObject& global_object, Value value,
|
|||
swap(raw_bytes[i], raw_bytes[sizeof(UnderlyingBufferDataType) - 1 - i]);
|
||||
};
|
||||
if constexpr (IsSame<UnderlyingBufferDataType, float>) {
|
||||
float raw_value = value.to_double(global_object);
|
||||
float raw_value = MUST(value.to_double(global_object));
|
||||
ReadonlyBytes { &raw_value, sizeof(float) }.copy_to(raw_bytes);
|
||||
flip_if_needed();
|
||||
return raw_bytes;
|
||||
}
|
||||
if constexpr (IsSame<UnderlyingBufferDataType, double>) {
|
||||
double raw_value = value.to_double(global_object);
|
||||
double raw_value = MUST(value.to_double(global_object));
|
||||
ReadonlyBytes { &raw_value, sizeof(double) }.copy_to(raw_bytes);
|
||||
flip_if_needed();
|
||||
return raw_bytes;
|
||||
|
|
|
@ -59,8 +59,10 @@ Value GeneratorObject::next_impl(VM& vm, GlobalObject& global_object, Optional<V
|
|||
};
|
||||
|
||||
auto generated_continuation = [&](Value value) -> Bytecode::BasicBlock const* {
|
||||
if (value.is_object())
|
||||
return reinterpret_cast<Bytecode::BasicBlock const*>(static_cast<u64>(TRY_OR_DISCARD(value.as_object().get("continuation")).to_double(global_object)));
|
||||
if (value.is_object()) {
|
||||
auto number_value = TRY_OR_DISCARD(value.as_object().get("continuation"));
|
||||
return reinterpret_cast<Bytecode::BasicBlock const*>(static_cast<u64>(TRY_OR_DISCARD(number_value.to_double(global_object))));
|
||||
}
|
||||
return nullptr;
|
||||
};
|
||||
|
||||
|
|
|
@ -559,11 +559,11 @@ ThrowCompletionOr<u64> Value::to_bigint_uint64(GlobalObject& global_object) cons
|
|||
return bigint->big_integer().to_u64();
|
||||
}
|
||||
|
||||
double Value::to_double(GlobalObject& global_object) const
|
||||
ThrowCompletionOr<double> Value::to_double(GlobalObject& global_object) const
|
||||
{
|
||||
auto number = to_number(global_object);
|
||||
if (global_object.vm().exception())
|
||||
return {};
|
||||
if (auto* exception = global_object.vm().exception())
|
||||
return throw_completion(exception->value());
|
||||
return number.as_double();
|
||||
}
|
||||
|
||||
|
|
|
@ -313,7 +313,7 @@ public:
|
|||
ThrowCompletionOr<BigInt*> to_bigint(GlobalObject&) const;
|
||||
ThrowCompletionOr<i64> to_bigint_int64(GlobalObject&) const;
|
||||
ThrowCompletionOr<u64> to_bigint_uint64(GlobalObject&) const;
|
||||
double to_double(GlobalObject&) const;
|
||||
ThrowCompletionOr<double> to_double(GlobalObject&) const;
|
||||
StringOrSymbol to_property_key(GlobalObject&) const;
|
||||
i32 to_i32(GlobalObject& global_object) const
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue