From 16865fb1f16e4a4ef9163bae8b88225fd6f28169 Mon Sep 17 00:00:00 2001 From: yangchangtao Date: Wed, 20 Nov 2024 18:15:32 +0800 Subject: [PATCH 1/4] fix(compat): fix compat handler of draggable --- packages/runtime-dom/src/modules/attrs.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/runtime-dom/src/modules/attrs.ts b/packages/runtime-dom/src/modules/attrs.ts index 95e0a1485..d8caddab1 100644 --- a/packages/runtime-dom/src/modules/attrs.ts +++ b/packages/runtime-dom/src/modules/attrs.ts @@ -59,7 +59,7 @@ export function compatCoerceAttr( ): boolean { if (isEnumeratedAttr(key)) { const v2CoercedValue = - value === null + value == null || value === false || value === 'false' ? 'false' : typeof value !== 'boolean' && value !== undefined ? 'true' From 67d5bb3088ab89c463a1c711e6d3e934f26e79c0 Mon Sep 17 00:00:00 2001 From: yangchangtao Date: Wed, 20 Nov 2024 18:51:31 +0800 Subject: [PATCH 2/4] chore: update --- packages/runtime-dom/src/modules/attrs.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/runtime-dom/src/modules/attrs.ts b/packages/runtime-dom/src/modules/attrs.ts index d8caddab1..1c7d766a8 100644 --- a/packages/runtime-dom/src/modules/attrs.ts +++ b/packages/runtime-dom/src/modules/attrs.ts @@ -59,9 +59,9 @@ export function compatCoerceAttr( ): boolean { if (isEnumeratedAttr(key)) { const v2CoercedValue = - value == null || value === false || value === 'false' + value === null || value === false || value === 'false' ? 'false' - : typeof value !== 'boolean' && value !== undefined + : value !== undefined ? 'true' : null if ( From 17462b55a22c0b89c15d244d05fa235f81f6c093 Mon Sep 17 00:00:00 2001 From: yangchangtao Date: Wed, 20 Nov 2024 19:41:09 +0800 Subject: [PATCH 3/4] chore: testcase --- packages/vue-compat/__tests__/global.spec.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/vue-compat/__tests__/global.spec.ts b/packages/vue-compat/__tests__/global.spec.ts index fcbdefa2f..5f19be891 100644 --- a/packages/vue-compat/__tests__/global.spec.ts +++ b/packages/vue-compat/__tests__/global.spec.ts @@ -500,3 +500,11 @@ test('local app config should not affect other local apps in v3 mode', () => { const app2 = createApp({}) expect(app2.config.globalProperties.test).toBe(undefined) }) + +test('ATTR_ENUMERATED_COERCION: false', () => { + const vm = new Vue({ + compatConfig: { ATTR_ENUMERATED_COERCION: true }, + template: `
hello
`, + }).$mount() + expect(vm.$el.innerHTML).toBe(`
hello
`) +}) From f006bad1a0e31e85b227eab72da1d5acd5b595ea Mon Sep 17 00:00:00 2001 From: yangchangtao Date: Thu, 21 Nov 2024 11:06:48 +0800 Subject: [PATCH 4/4] chore: update --- packages/vue-compat/__tests__/global.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vue-compat/__tests__/global.spec.ts b/packages/vue-compat/__tests__/global.spec.ts index 5f19be891..0eb5de731 100644 --- a/packages/vue-compat/__tests__/global.spec.ts +++ b/packages/vue-compat/__tests__/global.spec.ts @@ -501,7 +501,7 @@ test('local app config should not affect other local apps in v3 mode', () => { expect(app2.config.globalProperties.test).toBe(undefined) }) -test('ATTR_ENUMERATED_COERCION: false', () => { +test('ATTR_ENUMERATED_COERCION: true', () => { const vm = new Vue({ compatConfig: { ATTR_ENUMERATED_COERCION: true }, template: `
hello
`,