LibWeb: Use correct value when parsing datetime-local input type

This commit is contained in:
Tim Ledbetter 2024-09-10 10:43:22 +01:00 committed by Tim Ledbetter
commit eb4e40bc49
Notes: github-actions[bot] 2024-09-10 15:14:13 +00:00
3 changed files with 24 additions and 24 deletions

View file

@ -33,7 +33,7 @@ date did not throw: NaN
month did not throw: NaN
week did not throw: NaN
time did not throw: NaN
datetime-local threw exception: InvalidStateError: valueAsNumber: Invalid input type used
datetime-local did not throw: NaN
number did not throw: 100
range did not throw: 100
color threw exception: InvalidStateError: valueAsNumber: Invalid input type used

View file

@ -1291,7 +1291,7 @@ WebIDL::ExceptionOr<void> HTMLInputElement::handle_src_attribute(String const& v
HTMLInputElement::TypeAttributeState HTMLInputElement::parse_type_attribute(StringView type)
{
#define __ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(keyword, state) \
if (type.equals_ignoring_ascii_case(#keyword##sv)) \
if (type.equals_ignoring_ascii_case(keyword##sv)) \
return HTMLInputElement::TypeAttributeState::state;
ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTES
#undef __ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE
@ -1308,7 +1308,7 @@ StringView HTMLInputElement::type() const
switch (m_type) {
#define __ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(keyword, state) \
case TypeAttributeState::state: \
return #keyword##sv;
return keyword##sv;
ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTES
#undef __ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE
}

View file

@ -24,28 +24,28 @@ namespace Web::HTML {
// https://html.spec.whatwg.org/multipage/input.html#attr-input-type
#define ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTES \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(hidden, Hidden) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(text, Text) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(search, Search) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(tel, Telephone) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(url, URL) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(email, Email) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(password, Password) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(date, Date) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(month, Month) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(week, Week) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(time, Time) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("hidden", Hidden) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("text", Text) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("search", Search) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("tel", Telephone) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("url", URL) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("email", Email) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("password", Password) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("date", Date) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("month", Month) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("week", Week) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("time", Time) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("datetime-local", LocalDateAndTime) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(number, Number) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(range, Range) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(color, Color) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(checkbox, Checkbox) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(radio, RadioButton) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(file, FileUpload) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(submit, SubmitButton) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(image, ImageButton) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(reset, ResetButton) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE(button, Button)
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("number", Number) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("range", Range) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("color", Color) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("checkbox", Checkbox) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("radio", RadioButton) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("file", FileUpload) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("submit", SubmitButton) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("image", ImageButton) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("reset", ResetButton) \
__ENUMERATE_HTML_INPUT_TYPE_ATTRIBUTE("button", Button)
class HTMLInputElement final
: public HTMLElement