fix(compiler-dom): bail stringification on table elements
close #1230, close #1268
This commit is contained in:
parent
64ec8bfb54
commit
a938b61edc
@ -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]
|
||||
}
|
||||
|
@ -1,8 +1,10 @@
|
||||
// Make a map and return a function for checking if a key
|
||||
// is in that map.
|
||||
//
|
||||
// IMPORTANT: all calls of this function must be prefixed with /*#__PURE__*/
|
||||
// So that rollup can tree-shake them if necessary.
|
||||
/**
|
||||
* Make a map and return a function for checking if a key
|
||||
* is in that map.
|
||||
* IMPORTANT: all calls of this function must be prefixed with
|
||||
* \/\*#\_\_PURE\_\_\*\/
|
||||
* So that rollup can tree-shake them if necessary.
|
||||
*/
|
||||
export function makeMap(
|
||||
str: string,
|
||||
expectsLowerCase?: boolean
|
||||
|
Loading…
Reference in New Issue
Block a user