feat(compiler-core): support v-is

see https://github.com/vuejs/rfcs/pull/149 for details
This commit is contained in:
Evan You
2020-03-27 16:38:31 -04:00
parent d777ac6549
commit b8ffbffaf7
4 changed files with 82 additions and 5 deletions

View File

@@ -451,9 +451,13 @@ function parseTag(
let tagType = ElementTypes.ELEMENT
const options = context.options
if (!context.inPre && !options.isCustomElement(tag)) {
if (options.isNativeTag) {
const hasVIs = props.some(
p => p.type === NodeTypes.DIRECTIVE && p.name === 'is'
)
if (options.isNativeTag && !hasVIs) {
if (!options.isNativeTag(tag)) tagType = ElementTypes.COMPONENT
} else if (
hasVIs ||
isCoreComponent(tag) ||
(options.isBuiltInComponent && options.isBuiltInComponent(tag)) ||
/^[A-Z]/.test(tag) ||