mirror of
https://github.com/vuejs/vue.git
synced 2025-12-19 17:30:01 -06:00
fix(compiler): allow inline async functions in event handlers
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/* @flow */
|
||||
|
||||
const fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/
|
||||
const fnExpRE = /^((?:async )?[\w$_]+|(?:async ?)?\([^)]*?\))\s*=>|^(?:async )?function(?:\s+[\w$]+)?\s*\(/
|
||||
const fnInvokeRE = /\([^)]*?\);*$/
|
||||
const simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/
|
||||
|
||||
|
||||
@@ -701,5 +701,30 @@ describe('codegen', () => {
|
||||
`with(this){return _c('div',[(ok)?_l((1),function(i){return _c('foo',{key:i})}):_e()],2)}`
|
||||
)
|
||||
})
|
||||
|
||||
it('should allow async arrow functions in event handlers', () => {
|
||||
assertCodegen(
|
||||
`<button @click="async () => a += await 2"></button>`,
|
||||
`with(this){return _c('button',{on:{"click":async () => a += await 2}})}`
|
||||
)
|
||||
assertCodegen(
|
||||
`<button @click="async() => a += await 2"></button>`,
|
||||
`with(this){return _c('button',{on:{"click":async() => a += await 2}})}`
|
||||
)
|
||||
})
|
||||
|
||||
it('should allow async arrow functions with parameters in event handlers', () => {
|
||||
assertCodegen(
|
||||
`<button @click="async n => n += await 2"></button>`,
|
||||
`with(this){return _c('button',{on:{"click":async n => n += await 2}})}`
|
||||
)
|
||||
})
|
||||
|
||||
it('should allow async functions in event handlers', () => {
|
||||
assertCodegen(
|
||||
`<button @click="async function () { a += await 2}"></button>`,
|
||||
`with(this){return _c('button',{on:{"click":async function () { a += await 2}}})}`
|
||||
)
|
||||
})
|
||||
})
|
||||
/* eslint-enable quotes */
|
||||
|
||||
Reference in New Issue
Block a user