]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
refactor: only inject rest args for member expression handlers + fix tests
authorEvan You <yyx990803@gmail.com>
Mon, 15 Jun 2020 19:24:46 +0000 (15:24 -0400)
committerEvan You <yyx990803@gmail.com>
Mon, 15 Jun 2020 19:24:46 +0000 (15:24 -0400)
packages/compiler-core/__tests__/transforms/vOn.spec.ts
packages/compiler-core/src/transforms/vOn.ts

index 300a4624d1457c4f3f8e389258a557f1d40709d4..f17c5b9aa464d7530bc03a3a02192e55418ec791 100644 (file)
@@ -142,7 +142,7 @@ describe('compiler: transform v-on', () => {
           key: { content: `onClick` },
           value: {
             type: NodeTypes.COMPOUND_EXPRESSION,
-            children: [`($event, ...args) => (`, { content: `i++` }, `)`]
+            children: [`$event => (`, { content: `i++` }, `)`]
           }
         }
       ]
@@ -160,18 +160,14 @@ describe('compiler: transform v-on', () => {
             // should wrap with `{` for multiple statements
             // in this case the return value is discarded and the behavior is
             // consistent with 2.x
-            children: [
-              `($event, ...args) => {`,
-              { content: `foo();bar()` },
-              `}`
-            ]
+            children: [`$event => {`, { content: `foo();bar()` }, `}`]
           }
         }
       ]
     })
   })
 
-  test('should handle multiple line statement', () => {
+  test('should handle multi-line statement', () => {
     const { node } = parseWithVOn(`<div @click="\nfoo();\nbar()\n"/>`)
     expect((node.codegenNode as VNodeCall).props).toMatchObject({
       properties: [
@@ -200,7 +196,7 @@ describe('compiler: transform v-on', () => {
           value: {
             type: NodeTypes.COMPOUND_EXPRESSION,
             children: [
-              `($event, ...args) => (`,
+              `$event => (`,
               {
                 type: NodeTypes.COMPOUND_EXPRESSION,
                 children: [
@@ -230,7 +226,7 @@ describe('compiler: transform v-on', () => {
           value: {
             type: NodeTypes.COMPOUND_EXPRESSION,
             children: [
-              `($event, ...args) => {`,
+              `$event => {`,
               {
                 children: [
                   { content: `_ctx.foo` },
@@ -452,7 +448,7 @@ describe('compiler: transform v-on', () => {
         value: {
           type: NodeTypes.COMPOUND_EXPRESSION,
           children: [
-            `($event, ...args) => (`,
+            `$event => (`,
             { children: [{ content: `_ctx.foo` }, `++`] },
             `)`
           ]
index 026ad3cf9f8172f84dec3101b29da4dad8fbb4f2..76988578860a9bf4f797e8beee02906f0a1d78e6 100644 (file)
@@ -102,7 +102,9 @@ export const transformOn: DirectiveTransform = (
     if (isInlineStatement || (isCacheable && isMemberExp)) {
       // wrap inline statement in a function expression
       exp = createCompoundExpression([
-        `($event, ...args) => ${hasMultipleStatements ? `{` : `(`}`,
+        `${isInlineStatement ? `$event` : `($event, ...args)`} => ${
+          hasMultipleStatements ? `{` : `(`
+        }`,
         exp,
         hasMultipleStatements ? `}` : `)`
       ])