mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-06 01:26:22 +00:00
AK: Make String::number() infallible
This API will always succeed in creating a String representing the provided number in base-10.
This commit is contained in:
parent
03569fc509
commit
dd419b5a8d
Notes:
github-actions[bot]
2024-10-14 18:49:07 +00:00
Author: https://github.com/awesomekling
Commit: dd419b5a8d
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1796
46 changed files with 77 additions and 81 deletions
|
@ -57,7 +57,7 @@ void AudioTrack::initialize(JS::Realm& realm)
|
|||
WEB_SET_PROTOTYPE_FOR_INTERFACE(AudioTrack);
|
||||
|
||||
auto id = s_audio_track_id_allocator.allocate();
|
||||
m_id = MUST(String::number(id));
|
||||
m_id = String::number(id);
|
||||
}
|
||||
|
||||
void AudioTrack::play(Badge<HTMLAudioElement>)
|
||||
|
|
|
@ -121,10 +121,10 @@ WebIDL::ExceptionOr<Optional<Vector<XHR::FormDataEntry>>> construct_entry_list(J
|
|||
auto [x, y] = input_element->selected_coordinate();
|
||||
|
||||
// 6. Create an entry with namex and x, and append it to entry list.
|
||||
entry_list.append(XHR::FormDataEntry { .name = move(name_x), .value = MUST(String::number(x)) });
|
||||
entry_list.append(XHR::FormDataEntry { .name = move(name_x), .value = String::number(x) });
|
||||
|
||||
// 7. Create an entry with namey and y, and append it to entry list.
|
||||
entry_list.append(XHR::FormDataEntry { .name = move(name_y), .value = MUST(String::number(y)) });
|
||||
entry_list.append(XHR::FormDataEntry { .name = move(name_y), .value = String::number(y) });
|
||||
|
||||
// 8. Continue.
|
||||
continue;
|
||||
|
|
|
@ -114,7 +114,7 @@ void HTMLCanvasElement::reset_context_to_default_state()
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLCanvasElement::set_width(unsigned value)
|
||||
{
|
||||
TRY(set_attribute(HTML::AttributeNames::width, MUST(String::number(value))));
|
||||
TRY(set_attribute(HTML::AttributeNames::width, String::number(value)));
|
||||
m_bitmap = nullptr;
|
||||
reset_context_to_default_state();
|
||||
return {};
|
||||
|
@ -122,7 +122,7 @@ WebIDL::ExceptionOr<void> HTMLCanvasElement::set_width(unsigned value)
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLCanvasElement::set_height(unsigned value)
|
||||
{
|
||||
TRY(set_attribute(HTML::AttributeNames::height, MUST(String::number(value))));
|
||||
TRY(set_attribute(HTML::AttributeNames::height, String::number(value)));
|
||||
m_bitmap = nullptr;
|
||||
reset_context_to_default_state();
|
||||
return {};
|
||||
|
|
|
@ -244,7 +244,7 @@ String HTMLHyperlinkElementUtils::port() const
|
|||
return String {};
|
||||
|
||||
// 4. Return url's port, serialized.
|
||||
return MUST(String::number(url->port().value()));
|
||||
return String::number(url->port().value());
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/links.html#dom-hyperlink-port
|
||||
|
|
|
@ -191,7 +191,7 @@ unsigned HTMLImageElement::width() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLImageElement::set_width(unsigned width)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::width, MUST(String::number(width)));
|
||||
return set_attribute(HTML::AttributeNames::width, String::number(width));
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-height
|
||||
|
@ -220,7 +220,7 @@ unsigned HTMLImageElement::height() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLImageElement::set_height(unsigned height)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::height, MUST(String::number(height)));
|
||||
return set_attribute(HTML::AttributeNames::height, String::number(height));
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/embedded-content.html#dom-img-naturalwidth
|
||||
|
|
|
@ -1866,7 +1866,7 @@ unsigned HTMLInputElement::size() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLInputElement::set_size(unsigned value)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::size, MUST(String::number(value)));
|
||||
return set_attribute(HTML::AttributeNames::size, String::number(value));
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/input.html#concept-input-value-string-number
|
||||
|
@ -1889,11 +1889,11 @@ String HTMLInputElement::convert_number_to_string(double input) const
|
|||
{
|
||||
// https://html.spec.whatwg.org/multipage/input.html#number-state-(type=number):concept-input-value-number-string
|
||||
if (type_state() == TypeAttributeState::Number)
|
||||
return MUST(String::number(input));
|
||||
return String::number(input);
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/input.html#range-state-(type=range):concept-input-value-number-string
|
||||
if (type_state() == TypeAttributeState::Range)
|
||||
return MUST(String::number(input));
|
||||
return String::number(input);
|
||||
|
||||
dbgln("HTMLInputElement::convert_number_to_string() not implemented for input type {}", type());
|
||||
return {};
|
||||
|
|
|
@ -24,7 +24,7 @@ public:
|
|||
i32 value() { return get_attribute(AttributeNames::value).value_or("0"_string).to_number<i32>().value_or(0); }
|
||||
void set_value(i32 value)
|
||||
{
|
||||
set_attribute(AttributeNames::value, MUST(String::number(value))).release_value_but_fixme_should_propagate_errors();
|
||||
set_attribute(AttributeNames::value, String::number(value)).release_value_but_fixme_should_propagate_errors();
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
|
@ -76,7 +76,7 @@ WebIDL::UnsignedLong HTMLMarqueeElement::scroll_amount()
|
|||
// https://html.spec.whatwg.org/multipage/obsolete.html#dom-marquee-scrollamount
|
||||
WebIDL::ExceptionOr<void> HTMLMarqueeElement::set_scroll_amount(WebIDL::UnsignedLong value)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::scrollamount, MUST(String::number(value)));
|
||||
return set_attribute(HTML::AttributeNames::scrollamount, String::number(value));
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/obsolete.html#dom-marquee-scrolldelay
|
||||
|
@ -93,7 +93,7 @@ WebIDL::UnsignedLong HTMLMarqueeElement::scroll_delay()
|
|||
// https://html.spec.whatwg.org/multipage/obsolete.html#dom-marquee-scrolldelay
|
||||
WebIDL::ExceptionOr<void> HTMLMarqueeElement::set_scroll_delay(WebIDL::UnsignedLong value)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::scrolldelay, MUST(String::number(value)));
|
||||
return set_attribute(HTML::AttributeNames::scrolldelay, String::number(value));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ double HTMLMeterElement::value() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLMeterElement::set_value(double value)
|
||||
{
|
||||
TRY(set_attribute(HTML::AttributeNames::value, MUST(String::number(value))));
|
||||
TRY(set_attribute(HTML::AttributeNames::value, String::number(value)));
|
||||
update_meter_value_element();
|
||||
return {};
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ double HTMLMeterElement::min() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLMeterElement::set_min(double value)
|
||||
{
|
||||
TRY(set_attribute(HTML::AttributeNames::min, MUST(String::number(value))));
|
||||
TRY(set_attribute(HTML::AttributeNames::min, String::number(value)));
|
||||
update_meter_value_element();
|
||||
return {};
|
||||
}
|
||||
|
@ -93,7 +93,7 @@ double HTMLMeterElement::max() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLMeterElement::set_max(double value)
|
||||
{
|
||||
TRY(set_attribute(HTML::AttributeNames::max, MUST(String::number(value))));
|
||||
TRY(set_attribute(HTML::AttributeNames::max, String::number(value)));
|
||||
update_meter_value_element();
|
||||
return {};
|
||||
}
|
||||
|
@ -116,7 +116,7 @@ double HTMLMeterElement::low() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLMeterElement::set_low(double value)
|
||||
{
|
||||
TRY(set_attribute(HTML::AttributeNames::low, MUST(String::number(value))));
|
||||
TRY(set_attribute(HTML::AttributeNames::low, String::number(value)));
|
||||
update_meter_value_element();
|
||||
return {};
|
||||
}
|
||||
|
@ -139,7 +139,7 @@ double HTMLMeterElement::high() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLMeterElement::set_high(double value)
|
||||
{
|
||||
TRY(set_attribute(HTML::AttributeNames::high, MUST(String::number(value))));
|
||||
TRY(set_attribute(HTML::AttributeNames::high, String::number(value)));
|
||||
update_meter_value_element();
|
||||
return {};
|
||||
}
|
||||
|
@ -162,7 +162,7 @@ double HTMLMeterElement::optimum() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLMeterElement::set_optimum(double value)
|
||||
{
|
||||
TRY(set_attribute(HTML::AttributeNames::optimum, MUST(String::number(value))));
|
||||
TRY(set_attribute(HTML::AttributeNames::optimum, String::number(value)));
|
||||
update_meter_value_element();
|
||||
return {};
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ public:
|
|||
i32 start() { return get_attribute(AttributeNames::start).value_or("1"_string).to_number<i32>().value_or(1); }
|
||||
void set_start(i32 start)
|
||||
{
|
||||
set_attribute(AttributeNames::start, MUST(String::number(start))).release_value_but_fixme_should_propagate_errors();
|
||||
set_attribute(AttributeNames::start, String::number(start)).release_value_but_fixme_should_propagate_errors();
|
||||
}
|
||||
|
||||
private:
|
||||
|
|
|
@ -54,7 +54,7 @@ WebIDL::ExceptionOr<void> HTMLProgressElement::set_value(double value)
|
|||
if (value < 0)
|
||||
value = 0;
|
||||
|
||||
TRY(set_attribute(HTML::AttributeNames::value, MUST(String::number(value))));
|
||||
TRY(set_attribute(HTML::AttributeNames::value, String::number(value)));
|
||||
update_progress_value_element();
|
||||
return {};
|
||||
}
|
||||
|
@ -75,7 +75,7 @@ WebIDL::ExceptionOr<void> HTMLProgressElement::set_max(double value)
|
|||
if (value <= 0)
|
||||
value = 1;
|
||||
|
||||
TRY(set_attribute(HTML::AttributeNames::max, MUST(String::number(value))));
|
||||
TRY(set_attribute(HTML::AttributeNames::max, String::number(value)));
|
||||
update_progress_value_element();
|
||||
return {};
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ WebIDL::UnsignedLong HTMLSelectElement::size() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLSelectElement::set_size(WebIDL::UnsignedLong size)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::size, MUST(String::number(size)));
|
||||
return set_attribute(HTML::AttributeNames::size, String::number(size));
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/form-elements.html#dom-select-options
|
||||
|
|
|
@ -129,7 +129,7 @@ unsigned int HTMLTableCellElement::col_span() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLTableCellElement::set_col_span(unsigned int value)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::colspan, MUST(String::number(value)));
|
||||
return set_attribute(HTML::AttributeNames::colspan, String::number(value));
|
||||
}
|
||||
|
||||
// This implements step 9 in the spec here:
|
||||
|
@ -149,7 +149,7 @@ unsigned int HTMLTableCellElement::row_span() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLTableCellElement::set_row_span(unsigned int value)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::rowspan, MUST(String::number(value)));
|
||||
return set_attribute(HTML::AttributeNames::rowspan, String::number(value));
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/tables.html#dom-tdth-cellindex
|
||||
|
|
|
@ -41,7 +41,7 @@ unsigned int HTMLTableColElement::span() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLTableColElement::set_span(unsigned int value)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::span, MUST(String::number(value)));
|
||||
return set_attribute(HTML::AttributeNames::span, String::number(value));
|
||||
}
|
||||
|
||||
void HTMLTableColElement::apply_presentational_hints(CSS::StyleProperties& style) const
|
||||
|
|
|
@ -299,7 +299,7 @@ unsigned HTMLTextAreaElement::cols() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLTextAreaElement::set_cols(unsigned cols)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::cols, MUST(String::number(cols)));
|
||||
return set_attribute(HTML::AttributeNames::cols, String::number(cols));
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/form-elements.html#dom-textarea-rows
|
||||
|
@ -315,7 +315,7 @@ unsigned HTMLTextAreaElement::rows() const
|
|||
|
||||
WebIDL::ExceptionOr<void> HTMLTextAreaElement::set_rows(unsigned rows)
|
||||
{
|
||||
return set_attribute(HTML::AttributeNames::rows, MUST(String::number(rows)));
|
||||
return set_attribute(HTML::AttributeNames::rows, String::number(rows));
|
||||
}
|
||||
|
||||
WebIDL::UnsignedLong HTMLTextAreaElement::selection_start_binding() const
|
||||
|
|
|
@ -251,8 +251,6 @@ WebIDL::ExceptionOr<void> Location::set_hostname(String const&)
|
|||
// https://html.spec.whatwg.org/multipage/history.html#dom-location-port
|
||||
WebIDL::ExceptionOr<String> Location::port() const
|
||||
{
|
||||
auto& vm = this->vm();
|
||||
|
||||
// 1. If this's relevant Document is non-null and its origin is not same origin-domain with the entry settings object's origin, then throw a "SecurityError" DOMException.
|
||||
auto const relevant_document = this->relevant_document();
|
||||
if (relevant_document && !relevant_document->origin().is_same_origin_domain(entry_settings_object().origin()))
|
||||
|
@ -265,7 +263,7 @@ WebIDL::ExceptionOr<String> Location::port() const
|
|||
return String {};
|
||||
|
||||
// 3. Return this's url's port, serialized.
|
||||
return TRY_OR_THROW_OOM(vm, String::number(*url.port()));
|
||||
return String::number(*url.port());
|
||||
}
|
||||
|
||||
WebIDL::ExceptionOr<void> Location::set_port(String const&)
|
||||
|
|
|
@ -167,7 +167,7 @@ JS::GCPtr<Navigable> Navigable::navigable_with_active_document(JS::NonnullGCPtr<
|
|||
ErrorOr<void> Navigable::initialize_navigable(JS::NonnullGCPtr<DocumentState> document_state, JS::GCPtr<Navigable> parent)
|
||||
{
|
||||
static int next_id = 0;
|
||||
m_id = TRY(String::number(next_id++));
|
||||
m_id = String::number(next_id++);
|
||||
|
||||
// 1. Assert: documentState's document is non-null.
|
||||
VERIFY(document_state->document());
|
||||
|
|
|
@ -129,7 +129,7 @@ WebIDL::ExceptionOr<String> convert_non_negative_integer_to_string(JS::Realm& re
|
|||
{
|
||||
if (value < 0)
|
||||
return WebIDL::IndexSizeError::create(realm, "The attribute is limited to only non-negative numbers"_string);
|
||||
return MUST(String::number(value));
|
||||
return String::number(value);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ void WindowEnvironmentSettingsObject::setup(Page& page, URL::URL const& creation
|
|||
// settings object's target browsing context to null,
|
||||
// and settings object's active service worker to null.
|
||||
static i64 next_id = 1;
|
||||
settings_object->id = MUST(String::number(next_id++));
|
||||
settings_object->id = String::number(next_id++);
|
||||
settings_object->target_browsing_context = nullptr;
|
||||
}
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ void VideoTrack::initialize(JS::Realm& realm)
|
|||
WEB_SET_PROTOTYPE_FOR_INTERFACE(VideoTrack);
|
||||
|
||||
auto id = s_video_track_id_allocator.allocate();
|
||||
m_id = MUST(String::number(id));
|
||||
m_id = String::number(id);
|
||||
}
|
||||
|
||||
void VideoTrack::visit_edges(Cell::Visitor& visitor)
|
||||
|
|
|
@ -78,8 +78,6 @@ WebIDL::ExceptionOr<String> WorkerLocation::hostname() const
|
|||
// https://html.spec.whatwg.org/multipage/workers.html#dom-workerlocation-port
|
||||
WebIDL::ExceptionOr<String> WorkerLocation::port() const
|
||||
{
|
||||
auto& vm = realm().vm();
|
||||
|
||||
// The port getter steps are:
|
||||
// 1. Let port be this's WorkerGlobalScope object's url's port.
|
||||
auto const& port = m_global_scope->url().port();
|
||||
|
@ -88,7 +86,7 @@ WebIDL::ExceptionOr<String> WorkerLocation::port() const
|
|||
if (!port.has_value())
|
||||
return String {};
|
||||
// 3. Return port, serialized.
|
||||
return TRY_OR_THROW_OOM(vm, String::number(port.value()));
|
||||
return String::number(port.value());
|
||||
}
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/workers.html#dom-workerlocation-pathname
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue