From 74fa960b7f3e59058ec3a3b075d9f8ddc3cde2e3 Mon Sep 17 00:00:00 2001 From: Balaji R Date: Thu, 21 May 2026 05:23:58 +0530 Subject: [PATCH 1/2] fix(#510): fix fragment parsing for padded hash values --- core_js/utils/URLHashParams.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/core_js/utils/URLHashParams.js b/core_js/utils/URLHashParams.js index 5afa78aa..623f1044 100644 --- a/core_js/utils/URLHashParams.js +++ b/core_js/utils/URLHashParams.js @@ -32,14 +32,13 @@ class URLHashParams { const hash = url.hash.slice(1); const params = hash.split('&'); for (const p of params) { - const param = p.split('='); - if (!param[0]) + if (!p) continue; - const key = param[0]; - let value = null; - if (param.length === 2 && param[1]) { - value = param[1]; - } + const separator = p.indexOf('='); + const key = separator === -1 ? p : p.slice(0, separator); + if (!key) + continue; + const value = separator === -1 ? null : p.slice(separator + 1); this._params.put(key, value); } } @@ -51,7 +50,7 @@ class URLHashParams { } get(name) { const [first] = this._params.get(name); - if (first) { + if (first !== undefined) { return first; } return null; @@ -65,7 +64,7 @@ class URLHashParams { toString() { const rtn = []; this._params.forEach((key, value) => { - if (value) { + if (value !== null) { rtn.push(key + '=' + value); } else { From 52fb38374ff89b2012cd17962c81f0c2434ff137 Mon Sep 17 00:00:00 2001 From: Balaji R Date: Thu, 21 May 2026 05:44:15 +0530 Subject: [PATCH 2/2] refactor: remove negated check --- core_js/utils/URLHashParams.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core_js/utils/URLHashParams.js b/core_js/utils/URLHashParams.js index 623f1044..7138b39c 100644 --- a/core_js/utils/URLHashParams.js +++ b/core_js/utils/URLHashParams.js @@ -64,11 +64,11 @@ class URLHashParams { toString() { const rtn = []; this._params.forEach((key, value) => { - if (value !== null) { - rtn.push(key + '=' + value); + if (value === null) { + rtn.push(key); } else { - rtn.push(key); + rtn.push(key + '=' + value); } }); return rtn.join('&');