mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 02:17:34 +00:00
LibWeb: Port NamedNodeMap from DeprecatedString to String
The conversion which is required here is unfortunately quite ugly, but in the spirit of making forwards progress, just leave a FIXME for our future selves to deal with.
This commit is contained in:
parent
f5efe9bb63
commit
75133cf733
3 changed files with 17 additions and 7 deletions
|
@ -87,9 +87,14 @@ Attr const* NamedNodeMap::get_named_item(StringView qualified_name) const
|
|||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-namednodemap-getnameditemns
|
||||
Attr const* NamedNodeMap::get_named_item_ns(StringView namespace_, StringView local_name) const
|
||||
Attr const* NamedNodeMap::get_named_item_ns(Optional<String> const& namespace_, StringView local_name) const
|
||||
{
|
||||
return get_attribute_ns(namespace_, local_name);
|
||||
// FIXME: This conversion is quite ugly.
|
||||
StringView namespace_view;
|
||||
if (namespace_.has_value())
|
||||
namespace_view = namespace_->bytes_as_string_view();
|
||||
|
||||
return get_attribute_ns(namespace_view, local_name);
|
||||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-namednodemap-setnameditem
|
||||
|
@ -119,10 +124,15 @@ WebIDL::ExceptionOr<Attr const*> NamedNodeMap::remove_named_item(StringView qual
|
|||
}
|
||||
|
||||
// https://dom.spec.whatwg.org/#dom-namednodemap-removenameditemns
|
||||
WebIDL::ExceptionOr<Attr const*> NamedNodeMap::remove_named_item_ns(StringView namespace_, StringView local_name)
|
||||
WebIDL::ExceptionOr<Attr const*> NamedNodeMap::remove_named_item_ns(Optional<String> const& namespace_, StringView local_name)
|
||||
{
|
||||
// FIXME: This conversion is quite ugly.
|
||||
StringView namespace_view;
|
||||
if (namespace_.has_value())
|
||||
namespace_view = namespace_->bytes_as_string_view();
|
||||
|
||||
// 1. Let attr be the result of removing an attribute given namespace, localName, and element.
|
||||
auto const* attribute = remove_attribute_ns(namespace_, local_name);
|
||||
auto const* attribute = remove_attribute_ns(namespace_view, local_name);
|
||||
|
||||
// 2. If attr is null, then throw a "NotFoundError" DOMException.
|
||||
if (!attribute)
|
||||
|
|
|
@ -36,11 +36,11 @@ public:
|
|||
// Methods defined by the spec for JavaScript:
|
||||
Attr const* item(u32 index) const;
|
||||
Attr const* get_named_item(StringView qualified_name) const;
|
||||
Attr const* get_named_item_ns(StringView namespace_, StringView local_name) const;
|
||||
Attr const* get_named_item_ns(Optional<String> const& namespace_, StringView local_name) const;
|
||||
WebIDL::ExceptionOr<JS::GCPtr<Attr>> set_named_item(Attr& attribute);
|
||||
WebIDL::ExceptionOr<JS::GCPtr<Attr>> set_named_item_ns(Attr& attribute);
|
||||
WebIDL::ExceptionOr<Attr const*> remove_named_item(StringView qualified_name);
|
||||
WebIDL::ExceptionOr<Attr const*> remove_named_item_ns(StringView namespace_, StringView local_name);
|
||||
WebIDL::ExceptionOr<Attr const*> remove_named_item_ns(Optional<String> const& namespace_, StringView local_name);
|
||||
|
||||
// Methods defined by the spec for internal use:
|
||||
Attr* get_attribute(StringView qualified_name, size_t* item_index = nullptr);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#import <DOM/Attr.idl>
|
||||
|
||||
[Exposed=Window, LegacyUnenumerableNamedProperties, UseDeprecatedAKString]
|
||||
[Exposed=Window, LegacyUnenumerableNamedProperties]
|
||||
interface NamedNodeMap {
|
||||
readonly attribute unsigned long length;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue