From 6c6fe2c0cd89ce513503b1f85e0ddb696fd81e54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9F=90=E6=97=B6=E6=A9=99?= <1163675107@qq.com> Date: Tue, 27 Sep 2022 17:18:29 +0800 Subject: [PATCH] fix(compiler-dom): remove v-bind boolean attribute with literal false value when stringifying (#6635) fix #6617 --- .../transforms/stringifyStatic.spec.ts | 23 +++++++++++++++++++ .../src/transforms/stringifyStatic.ts | 10 +++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/packages/compiler-dom/__tests__/transforms/stringifyStatic.spec.ts b/packages/compiler-dom/__tests__/transforms/stringifyStatic.spec.ts index c737071a827..bedec9fc00a 100644 --- a/packages/compiler-dom/__tests__/transforms/stringifyStatic.spec.ts +++ b/packages/compiler-dom/__tests__/transforms/stringifyStatic.spec.ts @@ -410,6 +410,29 @@ describe('stringify static html', () => { }) }) + // #6617 + test('should remove boolean attribute for `false`', () => { + const { ast } = compileWithStringify( + `${repeat( + `
`, + StringifyThresholds.NODE_COUNT + )}` + ) + expect(ast.hoists[0]).toMatchObject({ + type: NodeTypes.JS_CALL_EXPRESSION, + callee: CREATE_STATIC, + arguments: [ + JSON.stringify( + `${repeat( + ``, + StringifyThresholds.NODE_COUNT + )}` + ), + '21' + ] + }) + }) + test('should stringify svg', () => { const svg = `