diff --git a/.changeset/shiny-pillows-relax.md b/.changeset/shiny-pillows-relax.md new file mode 100644 index 000000000000..15286e12c00d --- /dev/null +++ b/.changeset/shiny-pillows-relax.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +fix: assign message to error object in `handle_error` using `Object.defineProperty` diff --git a/packages/svelte/src/internal/client/runtime.js b/packages/svelte/src/internal/client/runtime.js index 3e3206ad6621..92a13dc6d469 100644 --- a/packages/svelte/src/internal/client/runtime.js +++ b/packages/svelte/src/internal/client/runtime.js @@ -311,7 +311,9 @@ function handle_error(error, effect, component_context) { } const indent = /Firefox/.test(navigator.userAgent) ? ' ' : '\t'; - error.message += `\n${component_stack.map((name) => `\n${indent}in ${name}`).join('')}\n`; + define_property(error, 'message', { + value: error.message + `\n${component_stack.map((name) => `\n${indent}in ${name}`).join('')}\n` + }); const stack = error.stack; @@ -326,7 +328,9 @@ function handle_error(error, effect, component_context) { } new_lines.push(line); } - error.stack = new_lines.join('\n'); + define_property(error, 'stack', { + value: error.stack + new_lines.join('\n') + }); } handled_errors.add(error);