diff --git a/packages/compiler-dom/__tests__/transforms/__snapshots__/stringifyStatic.spec.ts.snap b/packages/compiler-dom/__tests__/transforms/__snapshots__/stringifyStatic.spec.ts.snap index da24c26551e..b671d3252e5 100644 --- a/packages/compiler-dom/__tests__/transforms/__snapshots__/stringifyStatic.spec.ts.snap +++ b/packages/compiler-dom/__tests__/transforms/__snapshots__/stringifyStatic.spec.ts.snap @@ -52,3 +52,13 @@ return function render(_ctx, _cache) { return _hoisted_1 }" `; + +exports[`stringify static html > stringify v-text with escape 1`] = ` +"const { createElementVNode: _createElementVNode, createStaticVNode: _createStaticVNode } = Vue + +const _hoisted_1 = /*#__PURE__*/_createStaticVNode(\\"
text1
12
\\", 2) + +return function render(_ctx, _cache) { + return _hoisted_1 +}" +`; diff --git a/packages/compiler-dom/__tests__/transforms/stringifyStatic.spec.ts b/packages/compiler-dom/__tests__/transforms/stringifyStatic.spec.ts index bedec9fc00a..85efeafb8c9 100644 --- a/packages/compiler-dom/__tests__/transforms/stringifyStatic.spec.ts +++ b/packages/compiler-dom/__tests__/transforms/stringifyStatic.spec.ts @@ -477,4 +477,15 @@ describe('stringify static html', () => { expect(code).toMatch(`<span>show-it </span>`) expect(code).toMatchSnapshot() }) + + test('stringify v-text with escape', () => { + const { code } = compileWithStringify(` +
+
+ 12 +
`) + expect(code).toMatch(`text1`) + expect(code).toMatchSnapshot() + }) }) diff --git a/packages/compiler-dom/src/transforms/stringifyStatic.ts b/packages/compiler-dom/src/transforms/stringifyStatic.ts index d3f58bdb9da..0b47cb435b0 100644 --- a/packages/compiler-dom/src/transforms/stringifyStatic.ts +++ b/packages/compiler-dom/src/transforms/stringifyStatic.ts @@ -356,7 +356,7 @@ function stringifyElement( // (see compiler-core/src/transforms/transformExpression) function evaluateConstant(exp: ExpressionNode): string { if (exp.type === NodeTypes.SIMPLE_EXPRESSION) { - return new Function(`return ${exp.content}`)() + return new Function(`return (${exp.content})`)() } else { // compound let res = ``