diff --git a/packages/svelte/src/internal/client/constants.js b/packages/svelte/src/internal/client/constants.js index bf276347bc..dd3d1b2df6 100644 --- a/packages/svelte/src/internal/client/constants.js +++ b/packages/svelte/src/internal/client/constants.js @@ -28,7 +28,10 @@ export const LOADING_ATTR_SYMBOL = Symbol(''); export const PROXY_PATH_SYMBOL = Symbol('proxy path'); // allow users to ignore aborted signal errors if `reason.stale` -export const STALE_REACTION = { stale: true }; +export const STALE_REACTION = new (class StaleReactionError extends Error { + name = 'StaleReactionError'; + message = 'The reaction that called `getAbortSignal()` was re-run or destroyed'; +})(); export const ELEMENT_NODE = 1; export const TEXT_NODE = 3; diff --git a/packages/svelte/tests/runtime-runes/samples/get-abort-signal/_config.js b/packages/svelte/tests/runtime-runes/samples/get-abort-signal/_config.js index ecc2de4db7..6a85e2615a 100644 --- a/packages/svelte/tests/runtime-runes/samples/get-abort-signal/_config.js +++ b/packages/svelte/tests/runtime-runes/samples/get-abort-signal/_config.js @@ -7,7 +7,11 @@ export default test({ await new Promise((f) => setTimeout(f, 50)); if (variant === 'hydrate') { - assert.deepEqual(logs, ['aborted', { stale: true }]); + assert.deepEqual(logs, [ + 'aborted', + 'StaleReactionError', + 'The reaction that called `getAbortSignal()` was re-run or destroyed' + ]); } logs.length = 0; @@ -21,6 +25,10 @@ export default test({ await new Promise((f) => setTimeout(f, 50)); assert.htmlEqual(target.innerHTML, '

2

'); - assert.deepEqual(logs, ['aborted', { stale: true }]); + assert.deepEqual(logs, [ + 'aborted', + 'StaleReactionError', + 'The reaction that called `getAbortSignal()` was re-run or destroyed' + ]); } }); diff --git a/packages/svelte/tests/runtime-runes/samples/get-abort-signal/main.svelte b/packages/svelte/tests/runtime-runes/samples/get-abort-signal/main.svelte index 5933b0bae3..be5625125b 100644 --- a/packages/svelte/tests/runtime-runes/samples/get-abort-signal/main.svelte +++ b/packages/svelte/tests/runtime-runes/samples/get-abort-signal/main.svelte @@ -11,7 +11,7 @@ await new Promise((f) => setTimeout(f)); if (signal.aborted) { - console.log('aborted', signal.reason); + console.log('aborted', signal.reason.name, signal.reason.message); } return c;