diff --git a/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts b/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts index 40070778b2a..66f988d3474 100644 --- a/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts +++ b/packages/compiler-core/__tests__/transforms/transformExpressions.spec.ts @@ -540,6 +540,16 @@ describe('compiler: expression transform', () => { const { code } = compileWithBindingMetadata(`
{{ literal }}
`, { inline: true }) + expect(code).toMatch(`toDisplayString(literal)`) + // #7973 should skip patch for literal const + expect(code).not.toMatch( + `${PatchFlags.TEXT} /* ${PatchFlagNames[PatchFlags.TEXT]} */` + ) + }) + + test('literal const handling, non-inline mode', () => { + const { code } = compileWithBindingMetadata(`
{{ literal }}
`) + expect(code).toMatch(`toDisplayString(literal)`) // #7973 should skip patch for literal const expect(code).not.toMatch( `${PatchFlags.TEXT} /* ${PatchFlagNames[PatchFlags.TEXT]} */` diff --git a/packages/compiler-core/src/transforms/transformExpression.ts b/packages/compiler-core/src/transforms/transformExpression.ts index 080d61d739f..466027682b1 100644 --- a/packages/compiler-core/src/transforms/transformExpression.ts +++ b/packages/compiler-core/src/transforms/transformExpression.ts @@ -202,6 +202,8 @@ export function processExpression( return `$setup.${raw}` } else if (type === BindingTypes.PROPS_ALIASED) { return `$props['${bindingMetadata.__propsAliases![raw]}']` + } else if (type === BindingTypes.LITERAL_CONST) { + return raw } else if (type) { return `$${type}.${raw}` }