fix validation (we were mutating the wrong array)

pull/15789/head
Rich Harris 1 year ago
parent b90635b368
commit 4a6ea8b626

@ -9,12 +9,6 @@ import * as b from '#compiler/builders';
* @param {ComponentContext} context * @param {ComponentContext} context
*/ */
export function SnippetBlock(node, context) { export function SnippetBlock(node, context) {
const body = /** @type {BlockStatement} */ (context.visit(node.body));
if (dev) {
body.body.unshift(b.stmt(b.call('$.validate_snippet_args', b.id('$$payload'))));
}
let fn = b.function_declaration( let fn = b.function_declaration(
node.expression, node.expression,
[b.id('$$payload'), ...node.parameters], [b.id('$$payload'), ...node.parameters],
@ -27,6 +21,7 @@ export function SnippetBlock(node, context) {
const push_to = node.metadata.can_hoist ? context.state.hoisted : context.state.init; const push_to = node.metadata.can_hoist ? context.state.hoisted : context.state.init;
if (dev) { if (dev) {
fn.body.body.unshift(b.stmt(b.call('$.validate_snippet_args', b.id('$$payload'))));
push_to.push(b.stmt(b.call('$.prevent_snippet_stringification', fn.id))); push_to.push(b.stmt(b.call('$.prevent_snippet_stringification', fn.id)));
} }

@ -0,0 +1,9 @@
import { test } from '../../test';
export default test({
compileOptions: {
dev: true
},
error: 'invalid_snippet_arguments'
});

@ -0,0 +1,7 @@
<script>
test();
</script>
{#snippet test()}
<p>hello</p>
{/snippet}
Loading…
Cancel
Save