diff --git a/packages/svelte/src/compiler/phases/2-analyze/visitors/HtmlTag.js b/packages/svelte/src/compiler/phases/2-analyze/visitors/HtmlTag.js index 7b0e501760..f5ba9cd3d3 100644 --- a/packages/svelte/src/compiler/phases/2-analyze/visitors/HtmlTag.js +++ b/packages/svelte/src/compiler/phases/2-analyze/visitors/HtmlTag.js @@ -2,12 +2,16 @@ /** @import { Context } from '../types' */ import { mark_subtree_dynamic } from './shared/fragment.js'; import { validate_opening_tag } from './shared/utils.js'; +import * as e from '../../../errors.js'; /** * @param {AST.HtmlTag} node * @param {Context} context */ export function HtmlTag(node, context) { + if (context.state.analysis.custom_renderer) { + e.incompatible_with_custom_renderer(node, '`@html`'); + } if (context.state.analysis.runes) { validate_opening_tag(node, context.state, '@'); } diff --git a/packages/svelte/tests/custom-renderers/samples/html-tag/_config.js b/packages/svelte/tests/custom-renderers/samples/html-tag/_config.js new file mode 100644 index 0000000000..e00a19bcfc --- /dev/null +++ b/packages/svelte/tests/custom-renderers/samples/html-tag/_config.js @@ -0,0 +1,5 @@ +import { test } from '../../test'; + +export default test({ + compile_error: '`@html` is not compatible with `customRenderer`' +}); diff --git a/packages/svelte/tests/custom-renderers/samples/html-tag/main.svelte b/packages/svelte/tests/custom-renderers/samples/html-tag/main.svelte new file mode 100644 index 0000000000..7360363916 --- /dev/null +++ b/packages/svelte/tests/custom-renderers/samples/html-tag/main.svelte @@ -0,0 +1 @@ +{@html ""} \ No newline at end of file