Forráskód Böngészése

LibWeb: Implement URLSearchParams.getAll

Luke Wilde 3 éve
szülő
commit
fb321bad35

+ 12 - 0
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<String> 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<String> 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.

+ 1 - 0
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<String> get_all(String const& name);
     bool has(String const& name);
     void set(String const& name, String const& value);
 

+ 1 - 1
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<USVString> getAll(USVString name);
+  sequence<USVString> getAll(USVString name);
   boolean has(USVString name);
   undefined set(USVString name, USVString value);