Parcourir la source

fix: fix function expression regex (#9922)

fix #9920
GU Yiling il y a 7 ans
Parent
commit
569b728ab1
2 fichiers modifiés avec 6 ajouts et 1 suppressions
  1. 1 1
      src/compiler/codegen/events.js
  2. 5 0
      test/unit/modules/compiler/codegen.spec.js

+ 1 - 1
src/compiler/codegen/events.js

@@ -1,6 +1,6 @@
 /* @flow */
 
-const fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*(?:[\w$]+)?\s*\(/
+const fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/
 const fnInvokeRE = /\([^)]*?\);*$/
 const simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/
 

+ 5 - 0
test/unit/modules/compiler/codegen.spec.js

@@ -345,6 +345,11 @@ describe('codegen', () => {
       `<input @input="onInput(');[\\'());');">`,
       `with(this){return _c('input',{on:{"input":function($event){onInput(');[\\'());');}}})}`
     )
+    // function name including a `function` part (#9920)
+    assertCodegen(
+      '<input @input="functionName()">',
+      `with(this){return _c('input',{on:{"input":function($event){return functionName()}}})}`
+    )
   })
 
   it('generate events with multiple statements', () => {