pull/15844/head
Rich Harris 2 months ago
commit 693da2ce29

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: don't show adjusted error messages in boundaries

@ -66,18 +66,12 @@ export function invoke_error_boundary(error, effect) {
throw error;
}
/** @type {WeakSet<Error>} */
const adjusted_errors = new WeakSet();
/**
* Add useful information to the error message/stack in development
* @param {Error} error
* @param {Effect} effect
*/
function get_adjustments(error, effect) {
if (adjusted_errors.has(error)) return;
adjusted_errors.add(error);
const message_descriptor = get_descriptor(error, 'message');
// if the message was already changed and it's not configurable we can't change it

@ -9,6 +9,6 @@ export default test({
flushSync();
assert.deepEqual(logs, ['error caught']);
assert.htmlEqual(target.innerHTML, `<div>Fallback!</div><button>+</button>`);
assert.htmlEqual(target.innerHTML, `<div>oh no!</div><button>+</button>`);
}
});

@ -1,6 +1,6 @@
<script>
function throw_error() {
throw new Error('test')
throw new Error('oh no!')
}
let count = $state(0);
@ -9,8 +9,8 @@
<svelte:boundary onerror={(e) => console.log('error caught')}>
{count > 0 ? throw_error() : null}
{#snippet failed()}
<div>Fallback!</div>
{#snippet failed(e)}
<div>{e.message}</div>
{/snippet}
</svelte:boundary>

Loading…
Cancel
Save