From 7122ebaeb081f1fcc50dfe7e453b4f912bb719f6 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Tue, 3 Dec 2024 14:35:10 +0000 Subject: [PATCH 1/2] chore: add test for binding event reactive context --- .../effect-tracking-binding-set/_config.js | 11 +++++++++++ .../effect-tracking-binding-set/main.svelte | 17 +++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/_config.js create mode 100644 packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/main.svelte diff --git a/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/_config.js b/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/_config.js new file mode 100644 index 000000000000..a2dfc25611f1 --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/_config.js @@ -0,0 +1,11 @@ +import { test } from '../../test'; + +export default test({ + test({ target, assert, logs }) { + const input = /** @type {HTMLInputElement} */ (target.querySelector('input')); + input.value = 'everybody'; + input.dispatchEvent(new window.Event('input')); + + assert.deepEqual(logs, [false]); + } +}); diff --git a/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/main.svelte b/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/main.svelte new file mode 100644 index 000000000000..3937dec4bbba --- /dev/null +++ b/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/main.svelte @@ -0,0 +1,17 @@ + + + From 7812a70b9a2253579e079191a8905ea905102581 Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Tue, 3 Dec 2024 14:43:52 +0000 Subject: [PATCH 2/2] revised --- .../src/internal/client/dom/elements/bindings/input.js | 2 +- .../samples/effect-tracking-binding-set/_config.js | 6 +----- .../samples/effect-tracking-binding-set/main.svelte | 9 ++++++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/svelte/src/internal/client/dom/elements/bindings/input.js b/packages/svelte/src/internal/client/dom/elements/bindings/input.js index aec6f815a012..1cbe2a731f01 100644 --- a/packages/svelte/src/internal/client/dom/elements/bindings/input.js +++ b/packages/svelte/src/internal/client/dom/elements/bindings/input.js @@ -1,6 +1,6 @@ import { DEV } from 'esm-env'; import { render_effect, teardown } from '../../../reactivity/effects.js'; -import { listen_to_event_and_reset_event, without_reactive_context } from './shared.js'; +import { listen_to_event_and_reset_event } from './shared.js'; import * as e from '../../../errors.js'; import { is } from '../../../proxy.js'; import { queue_micro_task } from '../../task.js'; diff --git a/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/_config.js b/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/_config.js index a2dfc25611f1..aebbfec832f6 100644 --- a/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/_config.js @@ -1,11 +1,7 @@ import { test } from '../../test'; export default test({ - test({ target, assert, logs }) { - const input = /** @type {HTMLInputElement} */ (target.querySelector('input')); - input.value = 'everybody'; - input.dispatchEvent(new window.Event('input')); - + test({ assert, logs }) { assert.deepEqual(logs, [false]); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/main.svelte b/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/main.svelte index 3937dec4bbba..f21ecfdce6cb 100644 --- a/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/effect-tracking-binding-set/main.svelte @@ -12,6 +12,13 @@ return bar; } } + + let input; + + $effect(() => { + input.value = 'everybody'; + input.dispatchEvent(new window.Event('input')); + }) - +