diff --git a/site/content/docs/02-template-syntax.md b/site/content/docs/02-template-syntax.md index e985234025..75ac845938 100644 --- a/site/content/docs/02-template-syntax.md +++ b/site/content/docs/02-template-syntax.md @@ -1551,7 +1551,7 @@ If `this` is falsy, no component is rendered. ### `` ```sv - + ``` --- @@ -1560,7 +1560,7 @@ The `` element lets you render an element of a dynamically speci The only supported binding is `bind:this`, since the element type specific bindings that Svelte does at build time (e.g. `bind:value` for input elements) does not work with a dynamic tag type. -If `tag` has a nullish value, a warning will be logged in development mode. +If `this` has a nullish value, a warning will be logged in development mode. ```sv -Foo +Foo ``` ### `` diff --git a/src/compiler/parse/errors.ts b/src/compiler/parse/errors.ts index ef1f72a8be..63bd5b0919 100644 --- a/src/compiler/parse/errors.ts +++ b/src/compiler/parse/errors.ts @@ -99,6 +99,10 @@ export default { code: `invalid-${slug}-content`, message: `<${name}> cannot have children` }), + invalid_element_definition: { + code: 'invalid-element-definition', + message: 'Invalid element definition' + }, invalid_element_placement: (slug: string, name: string) => ({ code: `invalid-${slug}-placement`, message: `<${name}> tags cannot be inside elements or blocks` @@ -161,6 +165,10 @@ export default { code: 'missing-attribute-value', message: 'Expected value for the attribute' }, + missing_element_definition: { + code: 'missing-element-definition', + message: ' must have a \'this\' attribute' + }, unclosed_script: { code: 'unclosed-script', message: ' - + diff --git a/test/runtime/samples/dynamic-element-binding-invalid/main.svelte b/test/runtime/samples/dynamic-element-binding-invalid/main.svelte index 4639427fdf..45f8f96061 100644 --- a/test/runtime/samples/dynamic-element-binding-invalid/main.svelte +++ b/test/runtime/samples/dynamic-element-binding-invalid/main.svelte @@ -3,4 +3,4 @@ let value; - + diff --git a/test/runtime/samples/dynamic-element-binding-this/main.svelte b/test/runtime/samples/dynamic-element-binding-this/main.svelte index 0c1e3a3f15..75e8b02ce1 100644 --- a/test/runtime/samples/dynamic-element-binding-this/main.svelte +++ b/test/runtime/samples/dynamic-element-binding-this/main.svelte @@ -3,4 +3,4 @@ export let foo; - + diff --git a/test/runtime/samples/dynamic-element-change-tag/main.svelte b/test/runtime/samples/dynamic-element-change-tag/main.svelte index 8e30ac99c5..a9c4d5c00c 100644 --- a/test/runtime/samples/dynamic-element-change-tag/main.svelte +++ b/test/runtime/samples/dynamic-element-change-tag/main.svelte @@ -2,4 +2,4 @@ export let tag = 'div'; -Foo \ No newline at end of file +Foo \ No newline at end of file diff --git a/test/runtime/samples/dynamic-element-event-handler/main.svelte b/test/runtime/samples/dynamic-element-event-handler/main.svelte index 1fd8c41dcf..7a7fef9c22 100644 --- a/test/runtime/samples/dynamic-element-event-handler/main.svelte +++ b/test/runtime/samples/dynamic-element-event-handler/main.svelte @@ -3,4 +3,4 @@ export let handler; -Foo \ No newline at end of file +Foo \ No newline at end of file diff --git a/test/runtime/samples/dynamic-element-expression/main.svelte b/test/runtime/samples/dynamic-element-expression/main.svelte index f12ee38b97..7ec11e4ef6 100644 --- a/test/runtime/samples/dynamic-element-expression/main.svelte +++ b/test/runtime/samples/dynamic-element-expression/main.svelte @@ -1 +1 @@ -Foo \ No newline at end of file +Foo \ No newline at end of file diff --git a/test/runtime/samples/dynamic-element-pass-props/main.svelte b/test/runtime/samples/dynamic-element-pass-props/main.svelte index dbd4e79abd..6a54a93f27 100644 --- a/test/runtime/samples/dynamic-element-pass-props/main.svelte +++ b/test/runtime/samples/dynamic-element-pass-props/main.svelte @@ -3,4 +3,4 @@ export let onClick; -Foo \ No newline at end of file +Foo \ No newline at end of file diff --git a/test/runtime/samples/dynamic-element-reuse-children/main.svelte b/test/runtime/samples/dynamic-element-reuse-children/main.svelte index a46765658f..4be99aab09 100644 --- a/test/runtime/samples/dynamic-element-reuse-children/main.svelte +++ b/test/runtime/samples/dynamic-element-reuse-children/main.svelte @@ -2,7 +2,7 @@ export let tag = 'div', text = 'Foo'; - +
{text}
diff --git a/test/runtime/samples/dynamic-element-store/main.svelte b/test/runtime/samples/dynamic-element-store/main.svelte index 5b8098d244..84a577ecee 100644 --- a/test/runtime/samples/dynamic-element-store/main.svelte +++ b/test/runtime/samples/dynamic-element-store/main.svelte @@ -3,4 +3,4 @@ const foo = writable('div'); - \ No newline at end of file + \ No newline at end of file diff --git a/test/runtime/samples/dynamic-element-string/main.svelte b/test/runtime/samples/dynamic-element-string/main.svelte index 2cf3b2b189..62d65d5f20 100644 --- a/test/runtime/samples/dynamic-element-string/main.svelte +++ b/test/runtime/samples/dynamic-element-string/main.svelte @@ -1 +1 @@ -Foo \ No newline at end of file +Foo \ No newline at end of file diff --git a/test/runtime/samples/dynamic-element-variable/main.svelte b/test/runtime/samples/dynamic-element-variable/main.svelte index 4cac422635..d60953bba5 100644 --- a/test/runtime/samples/dynamic-element-variable/main.svelte +++ b/test/runtime/samples/dynamic-element-variable/main.svelte @@ -3,4 +3,4 @@ export let text = "Foo"; -{text} \ No newline at end of file +{text} \ No newline at end of file diff --git a/test/server-side-rendering/samples/dynamic-element-string/main.svelte b/test/server-side-rendering/samples/dynamic-element-string/main.svelte index 2cf3b2b189..62d65d5f20 100644 --- a/test/server-side-rendering/samples/dynamic-element-string/main.svelte +++ b/test/server-side-rendering/samples/dynamic-element-string/main.svelte @@ -1 +1 @@ -Foo \ No newline at end of file +Foo \ No newline at end of file diff --git a/test/server-side-rendering/samples/dynamic-element-variable/main.svelte b/test/server-side-rendering/samples/dynamic-element-variable/main.svelte index 45addc2576..9aaba18bf1 100644 --- a/test/server-side-rendering/samples/dynamic-element-variable/main.svelte +++ b/test/server-side-rendering/samples/dynamic-element-variable/main.svelte @@ -3,5 +3,5 @@ let tag = 'div'; -Foo -Bar \ No newline at end of file +Foo +Bar \ No newline at end of file