From: Evan You Date: Wed, 8 Jul 2020 15:36:31 +0000 (-0400) Subject: refactor(compiler-core): remove unnecessary arg in cached handler codegen X-Git-Tag: v3.0.0-beta.20~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4b5ce8b4567f87461384bb55ee8351568d7ef77e;p=thirdparty%2Fvuejs%2Fcore.git refactor(compiler-core): remove unnecessary arg in cached handler codegen --- diff --git a/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap b/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap index d4415ede0c..6926708345 100644 --- a/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap +++ b/packages/compiler-core/__tests__/transforms/__snapshots__/hoistStatic.spec.ts.snap @@ -209,7 +209,7 @@ export function render(_ctx, _cache) { return (_openBlock(), _createBlock(\\"div\\", null, [ _createVNode(\\"div\\", null, [ _createVNode(\\"div\\", { - onClick: _cache[1] || (_cache[1] = ($event, ...args) => (_ctx.foo($event, ...args))) + onClick: _cache[1] || (_cache[1] = (...args) => (_ctx.foo(...args))) }) ]) ])) diff --git a/packages/compiler-core/__tests__/transforms/vOn.spec.ts b/packages/compiler-core/__tests__/transforms/vOn.spec.ts index f17c5b9aa4..996d63e490 100644 --- a/packages/compiler-core/__tests__/transforms/vOn.spec.ts +++ b/packages/compiler-core/__tests__/transforms/vOn.spec.ts @@ -400,11 +400,7 @@ describe('compiler: transform v-on', () => { index: 1, value: { type: NodeTypes.COMPOUND_EXPRESSION, - children: [ - `($event, ...args) => (`, - { content: `_ctx.foo($event, ...args)` }, - `)` - ] + children: [`(...args) => (`, { content: `_ctx.foo(...args)` }, `)`] } }) }) diff --git a/packages/compiler-core/src/transforms/vOn.ts b/packages/compiler-core/src/transforms/vOn.ts index 7698857886..40e61a3f7b 100644 --- a/packages/compiler-core/src/transforms/vOn.ts +++ b/packages/compiler-core/src/transforms/vOn.ts @@ -70,9 +70,9 @@ export const transformOn: DirectiveTransform = ( // process the expression since it's been skipped if (!__BROWSER__ && context.prefixIdentifiers) { - context.addIdentifiers(`$event`) + isInlineStatement && context.addIdentifiers(`$event`) exp = processExpression(exp, context, false, hasMultipleStatements) - context.removeIdentifiers(`$event`) + isInlineStatement && context.removeIdentifiers(`$event`) // with scope analysis, the function is hoistable if it has no reference // to scope variables. isCacheable = @@ -83,9 +83,9 @@ export const transformOn: DirectiveTransform = ( // avoiding the need to be patched. if (isCacheable && isMemberExp) { if (exp.type === NodeTypes.SIMPLE_EXPRESSION) { - exp.content += `($event, ...args)` + exp.content += `(...args)` } else { - exp.children.push(`($event, ...args)`) + exp.children.push(`(...args)`) } } } @@ -102,7 +102,7 @@ export const transformOn: DirectiveTransform = ( if (isInlineStatement || (isCacheable && isMemberExp)) { // wrap inline statement in a function expression exp = createCompoundExpression([ - `${isInlineStatement ? `$event` : `($event, ...args)`} => ${ + `${isInlineStatement ? `$event` : `(...args)`} => ${ hasMultipleStatements ? `{` : `(` }`, exp,