mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 08:47:34 +00:00
LibJS: Remove last use of DeprecatedString from Intl.MathematicalValue
This commit is contained in:
parent
a65bf16cd5
commit
a824e1ac6a
3 changed files with 10 additions and 9 deletions
|
@ -229,17 +229,18 @@ bool MathematicalValue::modulo_is_zero(Checked<i32> mod) const
|
||||||
[](auto) -> bool { VERIFY_NOT_REACHED(); });
|
[](auto) -> bool { VERIFY_NOT_REACHED(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
int MathematicalValue::logarithmic_floor() const
|
ThrowCompletionOr<int> MathematicalValue::logarithmic_floor(VM& vm) const
|
||||||
{
|
{
|
||||||
return m_value.visit(
|
return m_value.visit(
|
||||||
[](double value) {
|
[](double value) -> ThrowCompletionOr<int> {
|
||||||
return static_cast<int>(floor(log10(value)));
|
return static_cast<int>(floor(log10(value)));
|
||||||
},
|
},
|
||||||
[](Crypto::SignedBigInteger const& value) {
|
[&](Crypto::SignedBigInteger const& value) -> ThrowCompletionOr<int> {
|
||||||
// FIXME: Can we do this without string conversion?
|
// FIXME: Can we do this without string conversion?
|
||||||
return static_cast<int>(value.to_base_deprecated(10).length() - 1);
|
auto value_as_string = TRY_OR_THROW_OOM(vm, value.to_base(10));
|
||||||
|
return static_cast<int>(value_as_string.bytes_as_string_view().length() - 1);
|
||||||
},
|
},
|
||||||
[](auto) -> int { VERIFY_NOT_REACHED(); });
|
[](auto) -> ThrowCompletionOr<int> { VERIFY_NOT_REACHED(); });
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MathematicalValue::is_equal_to(MathematicalValue const& other) const
|
bool MathematicalValue::is_equal_to(MathematicalValue const& other) const
|
||||||
|
|
|
@ -79,7 +79,7 @@ public:
|
||||||
|
|
||||||
bool modulo_is_zero(Checked<i32> mod) const;
|
bool modulo_is_zero(Checked<i32> mod) const;
|
||||||
|
|
||||||
int logarithmic_floor() const;
|
ThrowCompletionOr<int> logarithmic_floor(VM&) const;
|
||||||
|
|
||||||
bool is_equal_to(MathematicalValue const&) const;
|
bool is_equal_to(MathematicalValue const&) const;
|
||||||
bool is_less_than(MathematicalValue const&) const;
|
bool is_less_than(MathematicalValue const&) const;
|
||||||
|
|
|
@ -995,7 +995,7 @@ struct RawPrecisionResult {
|
||||||
static ThrowCompletionOr<RawPrecisionResult> to_raw_precision_function(VM& vm, MathematicalValue const& number, int precision, PreferredResult mode)
|
static ThrowCompletionOr<RawPrecisionResult> to_raw_precision_function(VM& vm, MathematicalValue const& number, int precision, PreferredResult mode)
|
||||||
{
|
{
|
||||||
RawPrecisionResult result {};
|
RawPrecisionResult result {};
|
||||||
result.exponent = number.logarithmic_floor();
|
result.exponent = MUST_OR_THROW_OOM(number.logarithmic_floor(vm));
|
||||||
|
|
||||||
if (number.is_number()) {
|
if (number.is_number()) {
|
||||||
result.number = number.divided_by_power(result.exponent - precision + 1);
|
result.number = number.divided_by_power(result.exponent - precision + 1);
|
||||||
|
@ -1506,7 +1506,7 @@ ThrowCompletionOr<int> compute_exponent(VM& vm, NumberFormat& number_format, Mat
|
||||||
}
|
}
|
||||||
|
|
||||||
// 3. Let magnitude be the base 10 logarithm of x rounded down to the nearest integer.
|
// 3. Let magnitude be the base 10 logarithm of x rounded down to the nearest integer.
|
||||||
int magnitude = number.logarithmic_floor();
|
int magnitude = MUST_OR_THROW_OOM(number.logarithmic_floor(vm));
|
||||||
|
|
||||||
// 4. Let exponent be ComputeExponentForMagnitude(numberFormat, magnitude).
|
// 4. Let exponent be ComputeExponentForMagnitude(numberFormat, magnitude).
|
||||||
int exponent = MUST_OR_THROW_OOM(compute_exponent_for_magnitude(vm, number_format, magnitude));
|
int exponent = MUST_OR_THROW_OOM(compute_exponent_for_magnitude(vm, number_format, magnitude));
|
||||||
|
@ -1524,7 +1524,7 @@ ThrowCompletionOr<int> compute_exponent(VM& vm, NumberFormat& number_format, Mat
|
||||||
}
|
}
|
||||||
|
|
||||||
// 8. Let newMagnitude be the base 10 logarithm of formatNumberResult.[[RoundedNumber]] rounded down to the nearest integer.
|
// 8. Let newMagnitude be the base 10 logarithm of formatNumberResult.[[RoundedNumber]] rounded down to the nearest integer.
|
||||||
int new_magnitude = format_number_result.rounded_number.logarithmic_floor();
|
int new_magnitude = MUST_OR_THROW_OOM(format_number_result.rounded_number.logarithmic_floor(vm));
|
||||||
|
|
||||||
// 9. If newMagnitude is magnitude - exponent, then
|
// 9. If newMagnitude is magnitude - exponent, then
|
||||||
if (new_magnitude == magnitude - exponent) {
|
if (new_magnitude == magnitude - exponent) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue