fix(compiler-core/v-on): only cache empty handler when the option is used

fix #1716

The original idea is that the empty handler can be cached in all cases,
but this contradicts with the assumption that `hasCachedProps` check in
the static hoist transform can simply return `false` in the browser
build.
This commit is contained in:
Evan You 2020-07-27 18:26:47 -04:00
parent c930f2ee8a
commit 5fbd1f4ccb

View File

@ -68,7 +68,7 @@ export const transformOn: DirectiveTransform = (
if (exp && !exp.content.trim()) {
exp = undefined
}
let isCacheable: boolean = !exp
let isCacheable: boolean = context.cacheHandlers && !exp
if (exp) {
const isMemberExp = isMemberExpression(exp.content)
const isInlineStatement = !(isMemberExp || fnExpRE.test(exp.content))