fix(compiler-dom): bail stringification on table elements

close #1230, close #1268
This commit is contained in:
Evan You
2020-06-09 17:02:27 -04:00
parent 64ec8bfb54
commit a938b61edc
2 changed files with 15 additions and 6 deletions

View File

@@ -25,7 +25,8 @@ import {
toDisplayString,
normalizeClass,
normalizeStyle,
stringifyStyle
stringifyStyle,
makeMap
} from '@vue/shared'
export const enum StringifyThresholds {
@@ -145,6 +146,8 @@ const replaceHoist = (
context.hoists[context.hoists.indexOf(hoistToReplace)] = replacement
}
const isNonStringifiable = /*#__PURE__*/ makeMap(`thead,tr,th,tbody,td`)
/**
* for a hoisted node, analyze it and return:
* - false: bailed (contains runtime constant)
@@ -153,6 +156,10 @@ const replaceHoist = (
* - ec is the number of element with bindings inside
*/
function analyzeNode(node: StringifiableNode): [number, number] | false {
if (node.type === NodeTypes.ELEMENT && isNonStringifiable(node.tag)) {
return false
}
if (node.type === NodeTypes.TEXT_CALL) {
return [1, 0]
}