From 8de9dc61447fbad9d0984ffaa9434ce3f9655c16 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Mon, 3 Jul 2023 22:50:23 +0200 Subject: [PATCH] fix: handle falsy srcset values (#8901) fixes #8899 --- .changeset/early-lizards-decide.md | 5 +++++ packages/svelte/src/runtime/internal/utils.js | 4 ++-- packages/svelte/test/utils/utils.test.js | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 .changeset/early-lizards-decide.md diff --git a/.changeset/early-lizards-decide.md b/.changeset/early-lizards-decide.md new file mode 100644 index 0000000000..fbd2f8de0f --- /dev/null +++ b/.changeset/early-lizards-decide.md @@ -0,0 +1,5 @@ +--- +'svelte': patch +--- + +fix: handle falsy srcset values diff --git a/packages/svelte/src/runtime/internal/utils.js b/packages/svelte/src/runtime/internal/utils.js index 190c4534c6..ec39c0d9e4 100644 --- a/packages/svelte/src/runtime/internal/utils.js +++ b/packages/svelte/src/runtime/internal/utils.js @@ -90,12 +90,12 @@ function split_srcset(srcset) { /** * @param {HTMLSourceElement | HTMLImageElement} element_srcset - * @param {string} srcset + * @param {string | undefined | null} srcset * @returns {boolean} */ export function srcset_url_equal(element_srcset, srcset) { const element_urls = split_srcset(element_srcset.srcset); - const urls = split_srcset(srcset); + const urls = split_srcset(srcset || ''); return ( urls.length === element_urls.length && diff --git a/packages/svelte/test/utils/utils.test.js b/packages/svelte/test/utils/utils.test.js index 301361ea3d..2764f0098a 100644 --- a/packages/svelte/test/utils/utils.test.js +++ b/packages/svelte/test/utils/utils.test.js @@ -162,6 +162,7 @@ describe('utils', () => { it('should return false if urls are different', () => { assert.notOk(srcset_url_equal(create_element('a 1x'), 'b 1x')); assert.notOk(srcset_url_equal(create_element('a 2x'), 'a 1x')); + assert.notOk(srcset_url_equal(create_element('a 2x'), null)); }); }); });