From fb321bad350d972b9b1cf4c27d3c3456a7466776 Mon Sep 17 00:00:00 2001 From: Luke Wilde Date: Tue, 26 Oct 2021 22:06:55 +0100 Subject: [PATCH] LibWeb: Implement URLSearchParams.getAll --- Userland/Libraries/LibWeb/URL/URLSearchParams.cpp | 12 ++++++++++++ Userland/Libraries/LibWeb/URL/URLSearchParams.h | 1 + Userland/Libraries/LibWeb/URL/URLSearchParams.idl | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/URL/URLSearchParams.cpp b/Userland/Libraries/LibWeb/URL/URLSearchParams.cpp index 82a556c09d..8785fc8f71 100644 --- a/Userland/Libraries/LibWeb/URL/URLSearchParams.cpp +++ b/Userland/Libraries/LibWeb/URL/URLSearchParams.cpp @@ -131,6 +131,18 @@ String URLSearchParams::get(String const& name) return result->value; } +// https://url.spec.whatwg.org/#dom-urlsearchparams-getall +Vector URLSearchParams::get_all(String const& name) +{ + // return the values of all name-value pairs whose name is name, in this’s list, in list order, and the empty sequence otherwise. + Vector values; + for (auto& entry : m_list) { + if (entry.name == name) + values.append(entry.value); + } + return values; +} + bool URLSearchParams::has(String const& name) { // return true if there is a name-value pair whose name is name in this’s list, and false otherwise. diff --git a/Userland/Libraries/LibWeb/URL/URLSearchParams.h b/Userland/Libraries/LibWeb/URL/URLSearchParams.h index b097e787a6..6ae6e6ad20 100644 --- a/Userland/Libraries/LibWeb/URL/URLSearchParams.h +++ b/Userland/Libraries/LibWeb/URL/URLSearchParams.h @@ -35,6 +35,7 @@ public: void append(String const& name, String const& value); void delete_(String const& name); String get(String const& name); + Vector get_all(String const& name); bool has(String const& name); void set(String const& name, String const& value); diff --git a/Userland/Libraries/LibWeb/URL/URLSearchParams.idl b/Userland/Libraries/LibWeb/URL/URLSearchParams.idl index 1ca944d8d7..68a6a7b1f9 100644 --- a/Userland/Libraries/LibWeb/URL/URLSearchParams.idl +++ b/Userland/Libraries/LibWeb/URL/URLSearchParams.idl @@ -6,7 +6,7 @@ interface URLSearchParams { undefined append(USVString name, USVString value); undefined delete(USVString name); USVString? get(USVString name); - // TODO: sequence getAll(USVString name); + sequence getAll(USVString name); boolean has(USVString name); undefined set(USVString name, USVString value);