diff --git a/src/compiler/compile/nodes/InlineComponent.ts b/src/compiler/compile/nodes/InlineComponent.ts index bf7c58a327..a7bc986e9b 100644 --- a/src/compiler/compile/nodes/InlineComponent.ts +++ b/src/compiler/compile/nodes/InlineComponent.ts @@ -126,17 +126,17 @@ export default class InlineComponent extends Node { slot_template.attributes.push(attribute); } } - + children.push(slot_template); info.children.splice(i, 1); } } if (info.children.some(node => not_whitespace_text(node))) { - children.push({ + children.push({ start: info.start, end: info.end, - type: 'SlotTemplate', + type: 'SlotTemplate', name: 'svelte:fragment', attributes: [], children: info.children diff --git a/src/compiler/compile/render_ssr/Renderer.ts b/src/compiler/compile/render_ssr/Renderer.ts index cc89745ec4..64e9ee1f4e 100644 --- a/src/compiler/compile/render_ssr/Renderer.ts +++ b/src/compiler/compile/render_ssr/Renderer.ts @@ -112,6 +112,7 @@ export default class Renderer { render(nodes: INode[], options: RenderOptions) { nodes.forEach(node => { const handler = handlers[node.type]; + if (!handler) { throw new Error(`No handler for '${node.type}' nodes`); } diff --git a/src/compiler/parse/state/tag.ts b/src/compiler/parse/state/tag.ts index 298086ede5..15b1f1571c 100644 --- a/src/compiler/parse/state/tag.ts +++ b/src/compiler/parse/state/tag.ts @@ -102,15 +102,12 @@ export default function tag(parser: Parser) { } } - const type = (function () { - if (meta_tags.has(name)) return meta_tags.get(name); - if ((/[A-Z]/.test(name[0]) || name === 'svelte:self' || name === 'svelte:component')) return 'InlineComponent'; - if (name === 'svelte:fragment') return 'SlotTemplate'; - if (name === 'title' && parent_is_head(parser.stack)) return 'Title'; - if (name === 'slot' && !parser.customElement) return 'Slot'; - if (name === 'svelte:element') return 'Element'; - return 'Element'; - })(); + const type = meta_tags.has(name) + ? meta_tags.get(name) + : (/[A-Z]/.test(name[0]) || name === 'svelte:self' || name === 'svelte:component') ? 'InlineComponent' + : name === 'svelte:fragment' ? 'SlotTemplate' + : name === 'title' && parent_is_head(parser.stack) ? 'Title' + : name === 'slot' && !parser.customElement ? 'Slot' : 'Element'; const element: TemplateNode = { start,