From 9911ca6f9addc16c2dd085e2eaf02c08e19dfc5d Mon Sep 17 00:00:00 2001 From: 524c Date: Sat, 3 Dec 2022 18:02:10 -0300 Subject: [PATCH 1/5] fix properties of null (reading 'getAttribute') --- packages/kit/src/runtime/client/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/src/runtime/client/utils.js b/packages/kit/src/runtime/client/utils.js index 8cdd0146f128..7f953d1f4dbd 100644 --- a/packages/kit/src/runtime/client/utils.js +++ b/packages/kit/src/runtime/client/utils.js @@ -153,7 +153,7 @@ export function get_router_options(element) { /** @type {Element} */ let el = element; - while (el !== document.documentElement) { + while (el && el !== document.documentElement) { if (preload_code === null) preload_code = link_option(el, 'preload-code'); if (preload_data === null) preload_data = link_option(el, 'preload-data'); if (noscroll === null) noscroll = link_option(el, 'noscroll'); From 747ac7455dda12303086836c60531579f71f05ba Mon Sep 17 00:00:00 2001 From: 524c Date: Sat, 3 Dec 2022 18:41:35 -0300 Subject: [PATCH 2/5] add changeset --- .changeset/chatty-mice-tan.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/chatty-mice-tan.md diff --git a/.changeset/chatty-mice-tan.md b/.changeset/chatty-mice-tan.md new file mode 100644 index 000000000000..5559262ab076 --- /dev/null +++ b/.changeset/chatty-mice-tan.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': minor +--- + +Checks if element is null before reading getAttribute From 8287149df25bdadaa3ae17e89be1a34486a28e40 Mon Sep 17 00:00:00 2001 From: Roger Lucas Date: Sat, 3 Dec 2022 18:43:18 -0300 Subject: [PATCH 3/5] Update chatty-mice-tan.md --- .changeset/chatty-mice-tan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/chatty-mice-tan.md b/.changeset/chatty-mice-tan.md index 5559262ab076..49e6b85ceb0c 100644 --- a/.changeset/chatty-mice-tan.md +++ b/.changeset/chatty-mice-tan.md @@ -2,4 +2,4 @@ '@sveltejs/kit': minor --- -Checks if element is null before reading getAttribute +Checks that element is not null before reading getAttribute From 389f6a3c66663b420b88fadd42c4fe1cda994d91 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Mon, 5 Dec 2022 09:51:00 +0100 Subject: [PATCH 4/5] add test --- .../src/routes/interactivity/toggle-element/+page.svelte | 2 ++ packages/kit/test/apps/basics/test/client.test.js | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/packages/kit/test/apps/basics/src/routes/interactivity/toggle-element/+page.svelte b/packages/kit/test/apps/basics/src/routes/interactivity/toggle-element/+page.svelte index 449acb98612c..cc0dcf6b0606 100644 --- a/packages/kit/test/apps/basics/src/routes/interactivity/toggle-element/+page.svelte +++ b/packages/kit/test/apps/basics/src/routes/interactivity/toggle-element/+page.svelte @@ -8,6 +8,8 @@ {#if visible} + remove {:else} + add {/if} diff --git a/packages/kit/test/apps/basics/test/client.test.js b/packages/kit/test/apps/basics/test/client.test.js index ed5270f285dc..5bbe286f75de 100644 --- a/packages/kit/test/apps/basics/test/client.test.js +++ b/packages/kit/test/apps/basics/test/client.test.js @@ -1200,6 +1200,10 @@ test.describe('Interactivity', () => { await page.click('button'); expect(await page.textContent('button')).toBe('add'); + expect(await page.textContent('a')).toBe('add'); + + await page.click('a'); + expect(await page.textContent('a')).toBe('remove'); expect(errored).toBe(false); }); From 47c6b80dba7fd648703233d9b3a3715a7e3cc7c0 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Mon, 5 Dec 2022 10:26:29 +0100 Subject: [PATCH 5/5] lint --- packages/kit/test/apps/basics/test/client.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/test/apps/basics/test/client.test.js b/packages/kit/test/apps/basics/test/client.test.js index 5bbe286f75de..b81213171568 100644 --- a/packages/kit/test/apps/basics/test/client.test.js +++ b/packages/kit/test/apps/basics/test/client.test.js @@ -1201,7 +1201,7 @@ test.describe('Interactivity', () => { await page.click('button'); expect(await page.textContent('button')).toBe('add'); expect(await page.textContent('a')).toBe('add'); - + await page.click('a'); expect(await page.textContent('a')).toBe('remove');