mirror of https://github.com/vuejs/core.git
perf: optimize away isBuiltInType
This commit is contained in:
parent
bc170c49fc
commit
66c0ed0a3c
|
@ -71,4 +71,4 @@ export {
|
|||
CompilerDeprecationTypes
|
||||
} from './compat/compatConfig'
|
||||
|
||||
export { baseParse as newParse } from './parser/index'
|
||||
// export { baseParse as newParse } from './parser/index'
|
||||
|
|
|
@ -30,13 +30,7 @@ import { createCompilerError, ErrorCodes } from '../errors'
|
|||
import { processExpression } from './transformExpression'
|
||||
import { validateBrowserExpression } from '../validateExpression'
|
||||
import { FRAGMENT, CREATE_COMMENT } from '../runtimeHelpers'
|
||||
import {
|
||||
injectProp,
|
||||
findDir,
|
||||
findProp,
|
||||
isBuiltInType,
|
||||
getMemoedVNodeCall
|
||||
} from '../utils'
|
||||
import { injectProp, findDir, findProp, getMemoedVNodeCall } from '../utils'
|
||||
import { PatchFlags, PatchFlagNames } from '@vue/shared'
|
||||
|
||||
export const transformIf = createStructuralDirectiveTransform(
|
||||
|
@ -165,7 +159,8 @@ export function processIf(
|
|||
!(
|
||||
context.parent &&
|
||||
context.parent.type === NodeTypes.ELEMENT &&
|
||||
isBuiltInType(context.parent.tag, 'transition')
|
||||
(context.parent.tag === 'transition' ||
|
||||
context.parent.tag === 'Transition')
|
||||
)
|
||||
) {
|
||||
branch.children = [...comments, ...branch.children]
|
||||
|
|
|
@ -37,7 +37,7 @@ import {
|
|||
GUARD_REACTIVE_PROPS,
|
||||
WITH_MEMO
|
||||
} from './runtimeHelpers'
|
||||
import { isString, isObject, hyphenate, extend, NOOP } from '@vue/shared'
|
||||
import { isString, isObject, extend, NOOP } from '@vue/shared'
|
||||
import { PropsExpression } from './transforms/transformElement'
|
||||
import { parseExpression } from '@babel/parser'
|
||||
import { Expression } from '@babel/types'
|
||||
|
@ -45,9 +45,6 @@ import { Expression } from '@babel/types'
|
|||
export const isStaticExp = (p: JSChildNode): p is SimpleExpressionNode =>
|
||||
p.type === NodeTypes.SIMPLE_EXPRESSION && p.isStatic
|
||||
|
||||
export const isBuiltInType = (tag: string, expected: string): boolean =>
|
||||
tag === expected || tag === hyphenate(expected)
|
||||
|
||||
export function isCoreComponent(tag: string): symbol | void {
|
||||
switch (tag) {
|
||||
case 'Teleport':
|
||||
|
|
|
@ -2,8 +2,7 @@ import {
|
|||
TextModes,
|
||||
ParserOptions,
|
||||
ElementNode,
|
||||
NodeTypes,
|
||||
isBuiltInType
|
||||
NodeTypes
|
||||
} from '@vue/compiler-core'
|
||||
import { isVoidTag, isHTMLTag, isSVGTag } from '@vue/shared'
|
||||
import { TRANSITION, TRANSITION_GROUP } from './runtimeHelpers'
|
||||
|
@ -23,9 +22,9 @@ export const parserOptions: ParserOptions = {
|
|||
decodeEntities: __BROWSER__ ? decodeHtmlBrowser : decodeHtml,
|
||||
|
||||
isBuiltInComponent: (tag: string): symbol | undefined => {
|
||||
if (isBuiltInType(tag, `Transition`)) {
|
||||
if (tag === 'Transition' || tag === 'transition') {
|
||||
return TRANSITION
|
||||
} else if (isBuiltInType(tag, `TransitionGroup`)) {
|
||||
} else if (tag === 'TransitionGroup' || tag === 'transition-group') {
|
||||
return TRANSITION_GROUP
|
||||
}
|
||||
},
|
||||
|
|
|
@ -6,8 +6,7 @@ import {
|
|||
createSimpleExpression,
|
||||
RootNode,
|
||||
TemplateChildNode,
|
||||
findDir,
|
||||
isBuiltInType
|
||||
findDir
|
||||
} from '@vue/compiler-dom'
|
||||
|
||||
export const ssrInjectCssVars: NodeTransform = (node, context) => {
|
||||
|
@ -43,7 +42,7 @@ function injectCssVars(node: RootNode | TemplateChildNode) {
|
|||
node.tagType === ElementTypes.COMPONENT) &&
|
||||
!findDir(node, 'for')
|
||||
) {
|
||||
if (isBuiltInType(node.tag, 'Suspense')) {
|
||||
if (node.tag === 'suspense' || node.tag === 'Suspense') {
|
||||
for (const child of node.children) {
|
||||
if (
|
||||
child.type === NodeTypes.ELEMENT &&
|
||||
|
|
|
@ -7,8 +7,7 @@ import {
|
|||
RootNode,
|
||||
TemplateChildNode,
|
||||
ParentNode,
|
||||
findDir,
|
||||
isBuiltInType
|
||||
findDir
|
||||
} from '@vue/compiler-dom'
|
||||
|
||||
const filterChild = (node: ParentNode) =>
|
||||
|
@ -28,8 +27,10 @@ export const ssrInjectFallthroughAttrs: NodeTransform = (node, context) => {
|
|||
if (
|
||||
node.type === NodeTypes.ELEMENT &&
|
||||
node.tagType === ElementTypes.COMPONENT &&
|
||||
(isBuiltInType(node.tag, 'Transition') ||
|
||||
isBuiltInType(node.tag, 'KeepAlive'))
|
||||
(node.tag === 'transition' ||
|
||||
node.tag === 'Transition' ||
|
||||
node.tag === 'KeepAlive' ||
|
||||
node.tag === 'keep-alive')
|
||||
) {
|
||||
const rootChildren = filterChild(context.root)
|
||||
if (rootChildren.length === 1 && rootChildren[0] === node) {
|
||||
|
|
Loading…
Reference in New Issue