diff --git a/.changeset/hot-buses-end.md b/.changeset/hot-buses-end.md index d98860c54c..dd5a28fca8 100644 --- a/.changeset/hot-buses-end.md +++ b/.changeset/hot-buses-end.md @@ -2,4 +2,4 @@ 'svelte': patch --- -feat: add parent hierarchy to \_\_svelte_meta objects at dev time +feat: add parent hierarchy to `__svelte_meta` objects diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js index a93fced0d5..8e8e87a755 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/shared/utils.js @@ -416,14 +416,12 @@ export function with_dev_stack(call_expression, node, type, additional) { return b.stmt( b.call( '$.with_dev_stack', - b.arrow([], b.block([b.stmt(call_expression)])), + b.arrow([], call_expression), b.literal(type), b.literal(filename), b.literal(location.line), b.literal(location.column), - additional - ? b.object(Object.entries(additional).map(([key, value]) => b.init(key, b.literal(value)))) - : b.null + additional && b.object(Object.entries(additional).map(([k, v]) => b.init(k, b.literal(v)))) ) ); } diff --git a/packages/svelte/src/internal/client/context.js b/packages/svelte/src/internal/client/context.js index ee90241b7e..6eed404325 100644 --- a/packages/svelte/src/internal/client/context.js +++ b/packages/svelte/src/internal/client/context.js @@ -39,22 +39,21 @@ export function set_dev_stack(stack) { * @returns {any} */ export function with_dev_stack(callback, type, file, line, column, additional) { - /** @type {DevStackEntry} */ - const new_entry = { + const parent = dev_stack; + + dev_stack = { type, file, line, column, - parent: dev_stack, + parent, ...additional }; - const previous_stack = dev_stack; - dev_stack = new_entry; try { return callback(); } finally { - dev_stack = previous_stack; + dev_stack = parent; } }