diff --git a/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js b/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js index ec74c3ed27..0746c5f867 100644 --- a/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js +++ b/packages/svelte/src/compiler/phases/3-transform/client/visitors/RegularElement.js @@ -346,9 +346,25 @@ export function RegularElement(node, context) { const empty_string = value.type === 'Literal' && value.value === ''; if (!empty_string) { - child_state.init.push( - b.stmt(b.assignment('=', b.member(context.state.node, 'textContent'), value)) - ); + if (context.state.options.customRenderer) { + // custom renderers need to use the method to invoke the renderer + context.state.template.push_text([ + { + type: 'Text', + data: '', + raw: '', + start: -1, + end: -1 + } + ]); + const text = context.state.scope.generate('text'); + context.state.init.push(b.var(text, b.call('$.child', node_id))); + context.state.init.push(b.stmt(b.call('$.set_text', b.id(text), value))); + } else { + child_state.init.push( + b.stmt(b.assignment('=', b.member(context.state.node, 'textContent'), value)) + ); + } } } else if (is_customizable_select_element(node)) { // For , or