diff --git a/packages/compiler-core/__tests__/transforms/__snapshots__/vModel.spec.ts.snap b/packages/compiler-core/__tests__/transforms/__snapshots__/vModel.spec.ts.snap index 877561f9531..42974581f60 100644 --- a/packages/compiler-core/__tests__/transforms/__snapshots__/vModel.spec.ts.snap +++ b/packages/compiler-core/__tests__/transforms/__snapshots__/vModel.spec.ts.snap @@ -6,7 +6,7 @@ exports[`compiler: transform v-model compound expression (with prefixIdentifiers export function render(_ctx, _cache) { return (_openBlock(), _createElementBlock(\\"input\\", { modelValue: _ctx.model[_ctx.index], - \\"onUpdate:modelValue\\": $event => (_ctx.model[_ctx.index] = $event) + \\"onUpdate:modelValue\\": $event => ((_ctx.model[_ctx.index]) = $event) }, null, 8 /* PROPS */, [\\"modelValue\\", \\"onUpdate:modelValue\\"])) }" `; @@ -20,7 +20,7 @@ return function render(_ctx, _cache) { return (_openBlock(), _createElementBlock(\\"input\\", { modelValue: model[index], - \\"onUpdate:modelValue\\": $event => (model[index] = $event) + \\"onUpdate:modelValue\\": $event => ((model[index]) = $event) }, null, 8 /* PROPS */, [\\"modelValue\\", \\"onUpdate:modelValue\\"])) } }" @@ -39,11 +39,11 @@ return function render(_ctx, _cache) { . foo , - \\"onUpdate:modelValue\\": $event => ( + \\"onUpdate:modelValue\\": $event => (( model . foo - = $event) +) = $event) }, null, 8 /* PROPS */, [\\"modelValue\\", \\"onUpdate:modelValue\\"])) } }" @@ -55,7 +55,7 @@ exports[`compiler: transform v-model simple expression (with prefixIdentifiers) export function render(_ctx, _cache) { return (_openBlock(), _createElementBlock(\\"input\\", { modelValue: _ctx.model, - \\"onUpdate:modelValue\\": $event => (_ctx.model = $event) + \\"onUpdate:modelValue\\": $event => ((_ctx.model) = $event) }, null, 8 /* PROPS */, [\\"modelValue\\", \\"onUpdate:modelValue\\"])) }" `; @@ -69,7 +69,7 @@ return function render(_ctx, _cache) { return (_openBlock(), _createElementBlock(\\"input\\", { modelValue: model, - \\"onUpdate:modelValue\\": $event => (model = $event) + \\"onUpdate:modelValue\\": $event => ((model) = $event) }, null, 8 /* PROPS */, [\\"modelValue\\", \\"onUpdate:modelValue\\"])) } }" @@ -84,7 +84,7 @@ return function render(_ctx, _cache) { return (_openBlock(), _createElementBlock(\\"input\\", { value: model, - \\"onUpdate:value\\": $event => (model = $event) + \\"onUpdate:value\\": $event => ((model) = $event) }, null, 40 /* PROPS, HYDRATE_EVENTS */, [\\"value\\", \\"onUpdate:value\\"])) } }" @@ -96,7 +96,7 @@ exports[`compiler: transform v-model with dynamic argument (with prefixIdentifie export function render(_ctx, _cache) { return (_openBlock(), _createElementBlock(\\"input\\", _normalizeProps({ [_ctx.value]: _ctx.model, - [\\"onUpdate:\\" + _ctx.value]: $event => (_ctx.model = $event) + [\\"onUpdate:\\" + _ctx.value]: $event => ((_ctx.model) = $event) }), null, 16 /* FULL_PROPS */)) }" `; @@ -110,7 +110,7 @@ return function render(_ctx, _cache) { return (_openBlock(), _createElementBlock(\\"input\\", _normalizeProps({ [value]: model, - [\\"onUpdate:\\" + value]: $event => (model = $event) + [\\"onUpdate:\\" + value]: $event => ((model) = $event) }), null, 16 /* FULL_PROPS */)) } }" diff --git a/packages/compiler-core/__tests__/transforms/vModel.spec.ts b/packages/compiler-core/__tests__/transforms/vModel.spec.ts index 92051b76717..96dbe2cb5fb 100644 --- a/packages/compiler-core/__tests__/transforms/vModel.spec.ts +++ b/packages/compiler-core/__tests__/transforms/vModel.spec.ts @@ -65,12 +65,12 @@ describe('compiler: transform v-model', () => { }, value: { children: [ - '$event => (', + '$event => ((', { content: 'model', isStatic: false }, - ' = $event)' + ') = $event)' ] } }) @@ -104,12 +104,12 @@ describe('compiler: transform v-model', () => { }, value: { children: [ - '$event => (', + '$event => ((', { content: '_ctx.model', isStatic: false }, - ' = $event)' + ') = $event)' ] } }) @@ -142,12 +142,12 @@ describe('compiler: transform v-model', () => { }, value: { children: [ - '$event => (', + '$event => ((', { content: '\n model\n.\nfoo \n', isStatic: false }, - ' = $event)' + ') = $event)' ] } }) @@ -179,12 +179,12 @@ describe('compiler: transform v-model', () => { }, value: { children: [ - '$event => (', + '$event => ((', { content: 'model[index]', isStatic: false }, - ' = $event)' + ') = $event)' ] } }) @@ -228,7 +228,7 @@ describe('compiler: transform v-model', () => { }, value: { children: [ - '$event => (', + '$event => ((', { children: [ { @@ -243,7 +243,7 @@ describe('compiler: transform v-model', () => { ']' ] }, - ' = $event)' + ') = $event)' ] } }) @@ -274,12 +274,12 @@ describe('compiler: transform v-model', () => { }, value: { children: [ - '$event => (', + '$event => ((', { content: 'model', isStatic: false }, - ' = $event)' + ') = $event)' ] } }) @@ -322,12 +322,12 @@ describe('compiler: transform v-model', () => { }, value: { children: [ - '$event => (', + '$event => ((', { content: 'model', isStatic: false }, - ' = $event)' + ') = $event)' ] } } @@ -376,12 +376,12 @@ describe('compiler: transform v-model', () => { }, value: { children: [ - '$event => (', + '$event => ((', { content: '_ctx.model', isStatic: false }, - ' = $event)' + ') = $event)' ] } } diff --git a/packages/compiler-core/src/transforms/vModel.ts b/packages/compiler-core/src/transforms/vModel.ts index bfd51c60406..bcf3749bdfe 100644 --- a/packages/compiler-core/src/transforms/vModel.ts +++ b/packages/compiler-core/src/transforms/vModel.ts @@ -76,9 +76,9 @@ export const transformModel: DirectiveTransform = (dir, node, context) => { if (bindingType === BindingTypes.SETUP_REF) { // v-model used on known ref. assignmentExp = createCompoundExpression([ - `${eventArg} => (`, + `${eventArg} => ((`, createSimpleExpression(rawExp, false, exp.loc), - `.value = $event)` + `).value = $event)` ]) } else { // v-model used on a potentially ref binding in