From e40ec79f6531cf57e57173861610b2e2a9fdd46b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Veronika=20Bu=C5=A1=C5=AF?= Date: Mon, 8 May 2023 19:47:29 +0200 Subject: Add value argument to URLSearchParams's has() and delete() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit should fix #29725. Signed-off-by: Veronika Bušů --- components/script/dom/urlsearchparams.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'components/script/dom/urlsearchparams.rs') diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs index 923d8f9e6ad..4b7e2880ef1 100644 --- a/components/script/dom/urlsearchparams.rs +++ b/components/script/dom/urlsearchparams.rs @@ -105,9 +105,14 @@ impl URLSearchParamsMethods for URLSearchParams { } // https://url.spec.whatwg.org/#dom-urlsearchparams-delete - fn Delete(&self, name: USVString) { + fn Delete(&self, name: USVString, value: Option) { // Step 1. - self.list.borrow_mut().retain(|&(ref k, _)| k != &name.0); + self.list + .borrow_mut() + .retain(|&(ref k, ref v)| match &value { + Some(value) => !(k == &name.0 && v == &value.0), + None => k != &name.0, + }); // Step 2. self.update_steps(); } @@ -135,9 +140,12 @@ impl URLSearchParamsMethods for URLSearchParams { } // https://url.spec.whatwg.org/#dom-urlsearchparams-has - fn Has(&self, name: USVString) -> bool { + fn Has(&self, name: USVString, value: Option) -> bool { let list = self.list.borrow(); - list.iter().any(|&(ref k, _)| k == &name.0) + list.iter().any(|&(ref k, ref v)| match &value { + Some(value) => k == &name.0 && v == &value.0, + None => k == &name.0, + }) } // https://url.spec.whatwg.org/#dom-urlsearchparams-set -- cgit v1.2.3