const name = currentOpenTag!.tag
currentOpenTag!.isSelfClosing = true
endOpenTag(end)
- if (stack[0]?.tag === name) {
+ if (stack[0] && stack[0].tag === name) {
onCloseTag(stack.shift()!, end)
}
},
function onText(content: string, start: number, end: number) {
if (__BROWSER__) {
- const tag = stack[0]?.tag
+ const tag = stack[0] && stack[0].tag
if (tag !== 'script' && tag !== 'style' && content.includes('&')) {
content = currentOptions.decodeEntities!(content, false)
}
}
const parent = stack[0] || currentRoot
const lastNode = parent.children[parent.children.length - 1]
- if (lastNode?.type === NodeTypes.TEXT) {
+ if (lastNode && lastNode.type === NodeTypes.TEXT) {
// merge
lastNode.content += content
setLocEnd(lastNode.loc, end)
tag === 'component' ||
isUpperCase(tag.charCodeAt(0)) ||
isCoreComponent(tag) ||
- currentOptions.isBuiltInComponent?.(tag) ||
+ (currentOptions.isBuiltInComponent &&
+ currentOptions.isBuiltInComponent(tag)) ||
(currentOptions.isNativeTag && !currentOptions.isNativeTag(tag))
) {
return true
if (node.type === NodeTypes.TEXT) {
if (!inPre) {
if (isAllWhitespace(node.content)) {
- const prev = nodes[i - 1]?.type
- const next = nodes[i + 1]?.type
+ const prev = nodes[i - 1] && nodes[i - 1].type
+ const next = nodes[i + 1] && nodes[i + 1].type
// Remove if:
// - the whitespace is the first or last node, or:
// - (condense mode) the whitespace is between two comments, or:
currentOptions.ns === Namespaces.SVG ||
currentOptions.ns === Namespaces.MATH_ML
- const delimiters = options?.delimiters
+ const delimiters = options && options.delimiters
if (delimiters) {
tokenizer.delimiterOpen = toCharCodes(delimiters[0])
tokenizer.delimiterClose = toCharCodes(delimiters[1])
let parentSuspenseId: number | undefined
const isSuspensible = isVNodeSuspensible(vnode)
if (isSuspensible) {
- if (parentSuspense?.pendingBranch) {
+ if (parentSuspense && parentSuspense.pendingBranch) {
parentSuspenseId = parentSuspense.pendingId
parentSuspense.deps++
}
}
function isVNodeSuspensible(vnode: VNode) {
- return vnode.props?.suspensible != null && vnode.props.suspensible !== false
+ const suspensible = vnode.props && vnode.props.suspensible
+ return suspensible != null && suspensible !== false
}