From c7f5c70ebac8f91daf6b56c131b2af2df6e162c8 Mon Sep 17 00:00:00 2001 From: Hongkun Peng Date: Fri, 19 Jul 2024 16:48:13 +0800 Subject: [PATCH 1/4] chore(build): fix build error on Windows (#11389) --- scripts/utils.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/utils.js b/scripts/utils.js index 7eec806531d..2050b05b7cd 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -60,13 +60,14 @@ export function fuzzyMatchTarget(partialTargets, includeAllMatching) { */ export async function exec(command, args, options) { return new Promise((resolve, reject) => { - const process = spawn(command, args, { + const _process = spawn(command, args, { stdio: [ 'ignore', // stdin 'pipe', // stdout 'pipe', // stderr ], ...options, + shell: process.platform === 'win32', }) /** @@ -78,19 +79,19 @@ export async function exec(command, args, options) { */ const stdoutChunks = [] - process.stderr?.on('data', chunk => { + _process.stderr?.on('data', chunk => { stderrChunks.push(chunk) }) - process.stdout?.on('data', chunk => { + _process.stdout?.on('data', chunk => { stdoutChunks.push(chunk) }) - process.on('error', error => { + _process.on('error', error => { reject(error) }) - process.on('exit', code => { + _process.on('exit', code => { const ok = code === 0 const stderr = Buffer.concat(stderrChunks).toString().trim() const stdout = Buffer.concat(stdoutChunks).toString().trim() From 5df67e36756639ea7b923d1b139d6cb14450123b Mon Sep 17 00:00:00 2001 From: Tycho Date: Fri, 19 Jul 2024 16:52:03 +0800 Subject: [PATCH 2/4] fix(runtime-dom): handle undefined values in v-html (#11403) --- packages/runtime-dom/__tests__/patchProps.spec.ts | 6 ++++++ packages/runtime-dom/src/modules/props.ts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/runtime-dom/__tests__/patchProps.spec.ts b/packages/runtime-dom/__tests__/patchProps.spec.ts index 7f418847f5f..3e7de54a767 100644 --- a/packages/runtime-dom/__tests__/patchProps.spec.ts +++ b/packages/runtime-dom/__tests__/patchProps.spec.ts @@ -152,6 +152,12 @@ describe('runtime-dom: props patching', () => { expect(root.innerHTML).toBe(`
baz
`) }) + test('patch innerHTML porp w/ undefined value', async () => { + const root = document.createElement('div') + render(h('div', { innerHTML: undefined }), root) + expect(root.innerHTML).toBe(`
`) + }) + test('textContent unmount prev children', () => { const fn = vi.fn() const comp = { diff --git a/packages/runtime-dom/src/modules/props.ts b/packages/runtime-dom/src/modules/props.ts index 04f0d0e866d..aaacd81972c 100644 --- a/packages/runtime-dom/src/modules/props.ts +++ b/packages/runtime-dom/src/modules/props.ts @@ -15,7 +15,7 @@ export function patchDOMProp( if (key === 'innerHTML' || key === 'textContent') { // null value case is handled in renderer patchElement before patching // children - if (value === null) return + if (value == null) return el[key] = value return } From 1b81d14bfdc01ea403d0ee1b419718abaf930f52 Mon Sep 17 00:00:00 2001 From: edison Date: Fri, 19 Jul 2024 17:02:14 +0800 Subject: [PATCH 3/4] refactor(runtime-core): remove attrsProxy and slotsProxy from instance (#11390) --- packages/runtime-core/src/component.ts | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/packages/runtime-core/src/component.ts b/packages/runtime-core/src/component.ts index df3a6376989..238c718199d 100644 --- a/packages/runtime-core/src/component.ts +++ b/packages/runtime-core/src/component.ts @@ -396,9 +396,6 @@ export interface ComponentInternalInstance { refs: Data emit: EmitFn - attrsProxy: Data | null - slotsProxy: Slots | null - /** * used for keeping track of .once event handlers on components * @internal @@ -599,9 +596,6 @@ export function createComponentInstance( setupState: EMPTY_OBJ, setupContext: null, - attrsProxy: null, - slotsProxy: null, - // suspense related suspense, suspenseId: suspense ? suspense.pendingId : 0, @@ -1042,15 +1036,12 @@ const attrsProxyHandlers = __DEV__ * Dev-only */ function getSlotsProxy(instance: ComponentInternalInstance): Slots { - return ( - instance.slotsProxy || - (instance.slotsProxy = new Proxy(instance.slots, { - get(target, key: string) { - track(instance, TrackOpTypes.GET, '$slots') - return target[key] - }, - })) - ) + return new Proxy(instance.slots, { + get(target, key: string) { + track(instance, TrackOpTypes.GET, '$slots') + return target[key] + }, + }) } export function createSetupContext( @@ -1084,6 +1075,7 @@ export function createSetupContext( // We use getters in dev in case libs like test-utils overwrite instance // properties (overwrites should not be done in prod) let attrsProxy: Data + let slotsProxy: Slots return Object.freeze({ get attrs() { return ( @@ -1092,7 +1084,7 @@ export function createSetupContext( ) }, get slots() { - return getSlotsProxy(instance) + return slotsProxy || (slotsProxy = getSlotsProxy(instance)) }, get emit() { return (event: string, ...args: any[]) => instance.emit(event, ...args) From 422ef34e487f801e1162bed80c0e88e868576e1d Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 19 Jul 2024 17:24:34 +0800 Subject: [PATCH 4/4] release: v3.4.33 --- CHANGELOG.md | 9 +++++++++ package.json | 2 +- packages/compiler-core/package.json | 2 +- packages/compiler-dom/package.json | 2 +- packages/compiler-sfc/package.json | 2 +- packages/compiler-ssr/package.json | 2 +- packages/reactivity/package.json | 2 +- packages/runtime-core/package.json | 2 +- packages/runtime-dom/package.json | 2 +- packages/server-renderer/package.json | 2 +- packages/shared/package.json | 2 +- packages/vue-compat/package.json | 2 +- packages/vue/package.json | 2 +- 13 files changed, 21 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bb29d9eedc..5c2ca79bdb5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## [3.4.33](https://github.com/vuejs/core/compare/v3.4.32...v3.4.33) (2024-07-19) + + +### Bug Fixes + +* **runtime-dom:** handle undefined values in v-html ([#11403](https://github.com/vuejs/core/issues/11403)) ([5df67e3](https://github.com/vuejs/core/commit/5df67e36756639ea7b923d1b139d6cb14450123b)) + + + ## [3.4.32](https://github.com/vuejs/core/compare/v3.4.31...v3.4.32) (2024-07-17) diff --git a/package.json b/package.json index e4fa3447529..c7c67bcdbfe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "private": true, - "version": "3.4.32", + "version": "3.4.33", "packageManager": "pnpm@9.5.0", "type": "module", "scripts": { diff --git a/packages/compiler-core/package.json b/packages/compiler-core/package.json index f3202f80fb0..8bc86be5a7f 100644 --- a/packages/compiler-core/package.json +++ b/packages/compiler-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-core", - "version": "3.4.32", + "version": "3.4.33", "description": "@vue/compiler-core", "main": "index.js", "module": "dist/compiler-core.esm-bundler.js", diff --git a/packages/compiler-dom/package.json b/packages/compiler-dom/package.json index 131abe7b33b..a133afaf18b 100644 --- a/packages/compiler-dom/package.json +++ b/packages/compiler-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-dom", - "version": "3.4.32", + "version": "3.4.33", "description": "@vue/compiler-dom", "main": "index.js", "module": "dist/compiler-dom.esm-bundler.js", diff --git a/packages/compiler-sfc/package.json b/packages/compiler-sfc/package.json index 0031aac7df1..a2c994f6dd1 100644 --- a/packages/compiler-sfc/package.json +++ b/packages/compiler-sfc/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-sfc", - "version": "3.4.32", + "version": "3.4.33", "description": "@vue/compiler-sfc", "main": "dist/compiler-sfc.cjs.js", "module": "dist/compiler-sfc.esm-browser.js", diff --git a/packages/compiler-ssr/package.json b/packages/compiler-ssr/package.json index 2e90c2f292a..6fd6e16f8f6 100644 --- a/packages/compiler-ssr/package.json +++ b/packages/compiler-ssr/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compiler-ssr", - "version": "3.4.32", + "version": "3.4.33", "description": "@vue/compiler-ssr", "main": "dist/compiler-ssr.cjs.js", "types": "dist/compiler-ssr.d.ts", diff --git a/packages/reactivity/package.json b/packages/reactivity/package.json index bbea042b9cb..95ddefb0233 100644 --- a/packages/reactivity/package.json +++ b/packages/reactivity/package.json @@ -1,6 +1,6 @@ { "name": "@vue/reactivity", - "version": "3.4.32", + "version": "3.4.33", "description": "@vue/reactivity", "main": "index.js", "module": "dist/reactivity.esm-bundler.js", diff --git a/packages/runtime-core/package.json b/packages/runtime-core/package.json index f08ce5c9b35..adf471ab997 100644 --- a/packages/runtime-core/package.json +++ b/packages/runtime-core/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-core", - "version": "3.4.32", + "version": "3.4.33", "description": "@vue/runtime-core", "main": "index.js", "module": "dist/runtime-core.esm-bundler.js", diff --git a/packages/runtime-dom/package.json b/packages/runtime-dom/package.json index 49b301b4717..ca9fbd84156 100644 --- a/packages/runtime-dom/package.json +++ b/packages/runtime-dom/package.json @@ -1,6 +1,6 @@ { "name": "@vue/runtime-dom", - "version": "3.4.32", + "version": "3.4.33", "description": "@vue/runtime-dom", "main": "index.js", "module": "dist/runtime-dom.esm-bundler.js", diff --git a/packages/server-renderer/package.json b/packages/server-renderer/package.json index 81a3fd1d444..10ff8b514bb 100644 --- a/packages/server-renderer/package.json +++ b/packages/server-renderer/package.json @@ -1,6 +1,6 @@ { "name": "@vue/server-renderer", - "version": "3.4.32", + "version": "3.4.33", "description": "@vue/server-renderer", "main": "index.js", "module": "dist/server-renderer.esm-bundler.js", diff --git a/packages/shared/package.json b/packages/shared/package.json index c60f0873017..23255bfadd4 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@vue/shared", - "version": "3.4.32", + "version": "3.4.33", "description": "internal utils shared across @vue packages", "main": "index.js", "module": "dist/shared.esm-bundler.js", diff --git a/packages/vue-compat/package.json b/packages/vue-compat/package.json index 6503406872b..3086d398627 100644 --- a/packages/vue-compat/package.json +++ b/packages/vue-compat/package.json @@ -1,6 +1,6 @@ { "name": "@vue/compat", - "version": "3.4.32", + "version": "3.4.33", "description": "Vue 3 compatibility build for Vue 2", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js", diff --git a/packages/vue/package.json b/packages/vue/package.json index df1f4ea2c17..d7487c97148 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "vue", - "version": "3.4.32", + "version": "3.4.33", "description": "The progressive JavaScript framework for building modern web UI.", "main": "index.js", "module": "dist/vue.runtime.esm-bundler.js",