From: daiwei Date: Wed, 11 Dec 2024 09:10:52 +0000 (+0800) Subject: wip: save X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1bd71367755f5c11ab8861e876276c10fd816da5;p=thirdparty%2Fvuejs%2Fcore.git wip: save --- diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/transformElement.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/transformElement.spec.ts.snap index 0aabad8075..874a378776 100644 --- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/transformElement.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/transformElement.spec.ts.snap @@ -348,8 +348,8 @@ const t0 = _template("
") export function render(_ctx) { const n0 = t0() - let _obj - _renderEffect(() => _obj !== _ctx.obj && (_obj = _setDynamicProps(n0, _obj, [_ctx.obj], true))) + let _obj, _prev_obj + _renderEffect(() => _obj !== _ctx.obj && (_prev_obj = _setDynamicProps(n0, _prev_obj, [_ctx.obj], true))) return n0 }" `; @@ -360,8 +360,8 @@ const t0 = _template("
") export function render(_ctx) { const n0 = t0() - let _obj - _renderEffect(() => _obj !== _ctx.obj && (_obj = _setDynamicProps(n0, _obj, [{ id: "foo" }, _ctx.obj], true))) + let _obj, _prev_obj + _renderEffect(() => _obj !== _ctx.obj && (_prev_obj = _setDynamicProps(n0, _prev_obj, [{ id: "foo" }, _ctx.obj], true))) return n0 }" `; @@ -372,8 +372,8 @@ const t0 = _template("
") export function render(_ctx) { const n0 = t0() - let _obj - _renderEffect(() => _obj !== _ctx.obj && (_obj = _setDynamicProps(n0, _obj, [_ctx.obj, { id: "foo" }], true))) + let _obj, _prev_obj + _renderEffect(() => _obj !== _ctx.obj && (_prev_obj = _setDynamicProps(n0, _prev_obj, [_ctx.obj, { id: "foo" }], true))) return n0 }" `; @@ -384,8 +384,8 @@ const t0 = _template("
") export function render(_ctx) { const n0 = t0() - let _obj - _renderEffect(() => _obj !== _ctx.obj && (_obj = _setDynamicProps(n0, _obj, [{ id: "foo" }, _ctx.obj, { class: "bar" }], true))) + let _obj, _prev_obj + _renderEffect(() => _obj !== _ctx.obj && (_prev_obj = _setDynamicProps(n0, _prev_obj, [{ id: "foo" }, _ctx.obj, { class: "bar" }], true))) return n0 }" `; diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap index 5710d104e5..d19901d5af 100644 --- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vBind.spec.ts.snap @@ -78,8 +78,8 @@ const t0 = _template("
") export function render(_ctx) { const n0 = t0() - let _id - _renderEffect(() => _id !== _ctx.id && (_id = _setDynamicProp(n0, "fooBar", _id, _ctx.id))) + let _id, _prev_id + _renderEffect(() => _id !== _ctx.id && (_prev_id = _setDynamicProp(n0, "fooBar", _prev_id, _ctx.id))) return n0 }" `; @@ -102,8 +102,8 @@ const t0 = _template("
") export function render(_ctx) { const n0 = t0() - let _fooBar - _renderEffect(() => _fooBar !== _ctx.fooBar && (_fooBar = _setDynamicProp(n0, "fooBar", _fooBar, _ctx.fooBar))) + let _fooBar, _prev_fooBar + _renderEffect(() => _fooBar !== _ctx.fooBar && (_prev_fooBar = _setDynamicProp(n0, "fooBar", _prev_fooBar, _ctx.fooBar))) return n0 }" `; @@ -306,8 +306,8 @@ const t0 = _template("") export function render(_ctx) { const n0 = t0() - let _foo - _renderEffect(() => _foo !== _ctx.foo && (_foo = _setDynamicProp(n0, "value", _foo, _ctx.foo))) + let _foo, _prev_foo + _renderEffect(() => _foo !== _ctx.foo && (_prev_foo = _setDynamicProp(n0, "value", _prev_foo, _ctx.foo))) return n0 }" `; @@ -451,8 +451,8 @@ const t0 = _template("
") export function render(_ctx) { const n0 = t0() - let _id - _renderEffect(() => _id !== _ctx.id && (_id = _setDynamicProps(n0, _id, [{ [_ctx.id]: _ctx.id, foo: "bar", checked: "" }], true))) + let _id, _prev_id + _renderEffect(() => _id !== _ctx.id && (_prev_id = _setDynamicProps(n0, _prev_id, [{ [_ctx.id]: _ctx.id, foo: "bar", checked: "" }], true))) return n0 }" `; @@ -463,8 +463,8 @@ const t0 = _template("
") export function render(_ctx) { const n0 = t0() - let _camelCase - _renderEffect(() => _camelCase !== _ctx.camelCase && (_camelCase = _setDynamicProp(n0, "camel-case", _camelCase, _ctx.camelCase))) + let _camelCase, _prev_camelCase + _renderEffect(() => _camelCase !== _ctx.camelCase && (_prev_camelCase = _setDynamicProp(n0, "camel-case", _prev_camelCase, _ctx.camelCase))) return n0 }" `; diff --git a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vModel.spec.ts.snap b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vModel.spec.ts.snap index 1d73b32cb6..f5e794fcda 100644 --- a/packages/compiler-vapor/__tests__/transforms/__snapshots__/vModel.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/transforms/__snapshots__/vModel.spec.ts.snap @@ -242,8 +242,8 @@ export function render(_ctx) { const n0 = t0() _withDirectives(n0, [[_vModelDynamic, () => _ctx.model]]) _delegate(n0, "update:modelValue", () => $event => (_ctx.model = $event)) - let _obj - _renderEffect(() => _obj !== _ctx.obj && (_obj = _setDynamicProps(n0, _obj, [_ctx.obj], true))) + let _obj, _prev_obj + _renderEffect(() => _obj !== _ctx.obj && (_prev_obj = _setDynamicProps(n0, _prev_obj, [_ctx.obj], true))) return n0 }" `; diff --git a/packages/compiler-vapor/__tests__/transforms/transformElement.spec.ts b/packages/compiler-vapor/__tests__/transforms/transformElement.spec.ts index 19d01e0847..8fa8f688f4 100644 --- a/packages/compiler-vapor/__tests__/transforms/transformElement.spec.ts +++ b/packages/compiler-vapor/__tests__/transforms/transformElement.spec.ts @@ -573,7 +573,7 @@ describe('compiler: element transform', () => { }, ]) expect(code).contains( - '_obj !== _ctx.obj && (_obj = _setDynamicProps(n0, _obj, [_ctx.obj], true))', + '_obj !== _ctx.obj && (_prev_obj = _setDynamicProps(n0, _prev_obj, [_ctx.obj], true))', ) }) @@ -611,7 +611,7 @@ describe('compiler: element transform', () => { }, ]) expect(code).contains( - '_obj !== _ctx.obj && (_obj = _setDynamicProps(n0, _obj, [{ id: "foo" }, _ctx.obj], true))', + '_obj !== _ctx.obj && (_prev_obj = _setDynamicProps(n0, _prev_obj, [{ id: "foo" }, _ctx.obj], true))', ) }) @@ -639,7 +639,7 @@ describe('compiler: element transform', () => { }, ]) expect(code).contains( - '_obj !== _ctx.obj && (_obj = _setDynamicProps(n0, _obj, [_ctx.obj, { id: "foo" }], true))', + '_obj !== _ctx.obj && (_prev_obj = _setDynamicProps(n0, _prev_obj, [_ctx.obj, { id: "foo" }], true))', ) }) @@ -668,7 +668,7 @@ describe('compiler: element transform', () => { }, ]) expect(code).contains( - '_obj !== _ctx.obj && (_obj = _setDynamicProps(n0, _obj, [{ id: "foo" }, _ctx.obj, { class: "bar" }], true))', + '_obj !== _ctx.obj && (_prev_obj = _setDynamicProps(n0, _prev_obj, [{ id: "foo" }, _ctx.obj, { class: "bar" }], true))', ) }) diff --git a/packages/compiler-vapor/__tests__/transforms/vBind.spec.ts b/packages/compiler-vapor/__tests__/transforms/vBind.spec.ts index 87c7752aa3..12f231e40b 100644 --- a/packages/compiler-vapor/__tests__/transforms/vBind.spec.ts +++ b/packages/compiler-vapor/__tests__/transforms/vBind.spec.ts @@ -131,7 +131,7 @@ describe('compiler v-bind', () => { }, }) expect(code).contains( - '_camelCase !== _ctx.camelCase && (_camelCase = _setDynamicProp(n0, "camel-case", _camelCase, _ctx.camelCase))', + '_camelCase !== _ctx.camelCase && (_prev_camelCase = _setDynamicProp(n0, "camel-case", _prev_camelCase, _ctx.camelCase))', ) }) @@ -230,7 +230,7 @@ describe('compiler v-bind', () => { ], }) expect(code).contains( - '_id !== _ctx.id && (_id = _setDynamicProps(n0, _id, [{ [_ctx.id]: _ctx.id, foo: "bar", checked: "" }], true))', + '_id !== _ctx.id && (_prev_id = _setDynamicProps(n0, _prev_id, [{ [_ctx.id]: _ctx.id, foo: "bar", checked: "" }], true))', ) }) @@ -293,7 +293,7 @@ describe('compiler v-bind', () => { expect(code).matchSnapshot() expect(code).contains( - '_id !== _ctx.id && (_id = _setDynamicProp(n0, "fooBar", _id, _ctx.id))', + '_id !== _ctx.id && (_prev_id = _setDynamicProp(n0, "fooBar", _prev_id, _ctx.id))', ) }) @@ -319,7 +319,7 @@ describe('compiler v-bind', () => { }) expect(code).contains('renderEffect') expect(code).contains( - '_fooBar !== _ctx.fooBar && (_fooBar = _setDynamicProp(n0, "fooBar", _fooBar, _ctx.fooBar))', + '_fooBar !== _ctx.fooBar && (_prev_fooBar = _setDynamicProp(n0, "fooBar", _prev_fooBar, _ctx.fooBar))', ) }) @@ -788,7 +788,7 @@ describe('compiler v-bind', () => { `) expect(code).matchSnapshot() expect(code).contains( - '_foo !== _ctx.foo && (_foo = _setDynamicProp(n0, "value", _foo, _ctx.foo))', + '_foo !== _ctx.foo && (_prev_foo = _setDynamicProp(n0, "value", _prev_foo, _ctx.foo))', ) }) diff --git a/packages/compiler-vapor/src/generators/prop.ts b/packages/compiler-vapor/src/generators/prop.ts index fef5e09875..817cce2aba 100644 --- a/packages/compiler-vapor/src/generators/prop.ts +++ b/packages/compiler-vapor/src/generators/prop.ts @@ -253,7 +253,9 @@ function processPropValues( // if the operation needs to cache the return value and has multiple declareNames, // combine them into a single name as the return value name. if (declareNames.size > 0 && needReturnValue) { - prevValueName = [...declareNames].join('') + const names = [...declareNames] + prevValueName = + declareNames.size === 1 ? `_prev${names[0]}` : names.join('') declareNames.add(prevValueName) } shouldWrapInParentheses = processingRenderEffect!.operations.length === 1 @@ -269,7 +271,8 @@ export function processValues( const allCheckExps: string[] = [] values.forEach(value => { const checkExps = processValue(context, value, needRewrite) - if (checkExps) allCheckExps.push(...checkExps, ' && ') + if (checkExps && checkExps.length > 0) + allCheckExps.push(...checkExps, ' && ') }) return allCheckExps.length > 0