diff --git a/packages/compiler-core/src/transforms/transformElement.ts b/packages/compiler-core/src/transforms/transformElement.ts
index 0d907498b67..65963da280e 100644
--- a/packages/compiler-core/src/transforms/transformElement.ts
+++ b/packages/compiler-core/src/transforms/transformElement.ts
@@ -73,27 +73,25 @@ export const transformElement: NodeTransform = (node, context) => {
let shouldUseBlock = false
// handle dynamic component
- const isProp = findProp(node, 'is')
- if (tag === 'component') {
- if (isProp) {
- // static
- if (isProp.type === NodeTypes.ATTRIBUTE) {
- const tag = isProp.value && isProp.value.content
- if (tag) {
- context.helper(RESOLVE_COMPONENT)
- context.components.add(tag)
- dynamicComponent = toValidAssetId(tag, `component`)
- }
- }
- // dynamic
- else if (isProp.exp) {
- dynamicComponent = createCallExpression(
- context.helper(RESOLVE_DYNAMIC_COMPONENT),
- // _ctx.$ exposes the owner instance of current render function
- [isProp.exp, context.prefixIdentifiers ? `_ctx.$` : `$`]
- )
+ const isProp = tag === 'component' && findProp(node, 'is')
+ if (isProp) {
+ // static
+ if (isProp.type === NodeTypes.ATTRIBUTE) {
+ const tag = isProp.value && isProp.value.content
+ if (tag) {
+ context.helper(RESOLVE_COMPONENT)
+ context.components.add(tag)
+ dynamicComponent = toValidAssetId(tag, `component`)
}
}
+ // dynamic
+ else if (isProp.exp) {
+ dynamicComponent = createCallExpression(
+ context.helper(RESOLVE_DYNAMIC_COMPONENT),
+ // _ctx.$ exposes the owner instance of current render function
+ [isProp.exp, context.prefixIdentifiers ? `_ctx.$` : `$`]
+ )
+ }
}
let nodeType