diff --git a/src/compile/Component.ts b/src/compile/Component.ts index aad5e98413..dd41a0a645 100644 --- a/src/compile/Component.ts +++ b/src/compile/Component.ts @@ -759,7 +759,7 @@ export default class Component { const { name } = object; if (name[0] === '$' && !scope.has(name)) { - component.warn_if_undefined(object, null); + component.warn_if_undefined(name, object, null); } } }, @@ -1202,9 +1202,7 @@ export default class Component { return `ctx.${name}`; } - warn_if_undefined(node, template_scope: TemplateScope) { - let { name } = node; - + warn_if_undefined(name: string, node, template_scope: TemplateScope) { if (name[0] === '$') { name = name.slice(1); this.has_reactive_assignments = true; // TODO does this belong here? diff --git a/src/compile/nodes/Action.ts b/src/compile/nodes/Action.ts index feec3fada8..77b9e3c846 100644 --- a/src/compile/nodes/Action.ts +++ b/src/compile/nodes/Action.ts @@ -11,7 +11,7 @@ export default class Action extends Node { constructor(component: Component, parent, scope, info) { super(component, parent, scope, info); - component.warn_if_undefined(info, scope); + component.warn_if_undefined(info.name, info, scope); this.name = info.name; component.qualify(info.name); diff --git a/src/compile/nodes/Animation.ts b/src/compile/nodes/Animation.ts index 638a88b169..6ccdbb0803 100644 --- a/src/compile/nodes/Animation.ts +++ b/src/compile/nodes/Animation.ts @@ -10,7 +10,7 @@ export default class Animation extends Node { constructor(component: Component, parent, scope, info) { super(component, parent, scope, info); - component.warn_if_undefined(info, scope); + component.warn_if_undefined(info.name, info, scope); this.name = info.name; component.qualify(info.name); diff --git a/src/compile/nodes/InlineComponent.ts b/src/compile/nodes/InlineComponent.ts index 0d8801aad1..3359e981ed 100644 --- a/src/compile/nodes/InlineComponent.ts +++ b/src/compile/nodes/InlineComponent.ts @@ -23,8 +23,9 @@ export default class InlineComponent extends Node { super(component, parent, scope, info); if (info.name !== 'svelte:component' && info.name !== 'svelte:self') { - component.warn_if_undefined(info, scope); - component.add_reference(info.name); + const name = info.name.split('.')[0]; // accommodate namespaces + component.warn_if_undefined(name, info, scope); + component.add_reference(name); } this.name = info.name; diff --git a/src/compile/nodes/Transition.ts b/src/compile/nodes/Transition.ts index c3f22d888e..82eb578f0f 100644 --- a/src/compile/nodes/Transition.ts +++ b/src/compile/nodes/Transition.ts @@ -12,7 +12,7 @@ export default class Transition extends Node { constructor(component: Component, parent, scope, info) { super(component, parent, scope, info); - component.warn_if_undefined(info, scope); + component.warn_if_undefined(info.name, info, scope); this.name = info.name; component.qualify(info.name); diff --git a/src/compile/nodes/shared/Expression.ts b/src/compile/nodes/shared/Expression.ts index 22cb403f75..fc188e9673 100644 --- a/src/compile/nodes/shared/Expression.ts +++ b/src/compile/nodes/shared/Expression.ts @@ -149,7 +149,7 @@ export default class Expression { } component.add_reference(name); - component.warn_if_undefined(nodes[0], template_scope); + component.warn_if_undefined(name, nodes[0], template_scope); } this.skip();