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)); }); }); });