pull/12335/head
Rich Harris 2 years ago
parent 10f02f44ba
commit 2bfd5b22a8

@ -883,7 +883,7 @@ function serialize_inline_component(node, component_name, context, anchor = cont
b.init(
'children',
context.state.options.dev
? b.call('$.wrap_snippet', slot_fn, b.id(context.state.analysis.name))
? b.call('$.wrap_snippet', b.id(context.state.analysis.name), slot_fn)
: slot_fn
)
);
@ -2754,7 +2754,7 @@ export const template_visitors = {
let snippet = b.arrow(args, body);
if (context.state.options.dev) {
snippet = b.call('$.wrap_snippet', snippet, b.id(context.state.analysis.name));
snippet = b.call('$.wrap_snippet', b.id(context.state.analysis.name), snippet);
}
const declaration = b.const(node.expression, snippet);

@ -1187,7 +1187,7 @@ const template_visitors = {
return /** @type {import('estree').Expression} */ (context.visit(arg));
});
if (!context.state.skip_hydration_boundaries) {
if (node.metadata.dynamic && !context.state.skip_hydration_boundaries) {
context.state.template.push(block_open);
}

@ -46,10 +46,11 @@ export function snippet(anchor, get_snippet, ...args) {
/**
* In development, wrap the snippet function so that it passes validation, and so that the
* correct component context is set for ownership checks
* @param {(node: import('#client').TemplateNode, ...args: any[]) => import('#client').Dom} fn
* @param {any} component
* @param {(node: import('#client').TemplateNode, ...args: any[]) => import('#client').Dom} fn
*/
export function wrap_snippet(fn, component) {
export function wrap_snippet(component, fn) {
// TODO do we need to pass in `component`? surely it's just `dev_current_component_function`?
return add_snippet_symbol(
(/** @type {import('#client').TemplateNode} */ node, /** @type {any[]} */ ...args) => {
var previous_component_function = dev_current_component_function;

Loading…
Cancel
Save