@@ -11,7 +11,7 @@ import {
11
11
isStaticExp
12
12
} from '@vue/compiler-core'
13
13
import { V_ON_WITH_MODIFIERS , V_ON_WITH_KEYS } from '../runtimeHelpers'
14
- import { makeMap } from '@vue/shared'
14
+ import { makeMap , capitalize } from '@vue/shared'
15
15
16
16
const isEventOptionModifier = /*#__PURE__*/ makeMap ( `passive,once,capture` )
17
17
const isNonKeyModifier = /*#__PURE__*/ makeMap (
@@ -38,7 +38,8 @@ const resolveModifiers = (key: ExpressionNode, modifiers: string[]) => {
38
38
const modifier = modifiers [ i ]
39
39
40
40
if ( isEventOptionModifier ( modifier ) ) {
41
- // eventOptionModifiers: modifiers for addEventListener() options, e.g. .passive & .capture
41
+ // eventOptionModifiers: modifiers for addEventListener() options,
42
+ // e.g. .passive & .capture
42
43
eventOptionModifiers . push ( modifier )
43
44
} else {
44
45
// runtimeModifiers: modifiers that needs runtime guards
@@ -125,16 +126,10 @@ export const transformOn: DirectiveTransform = (dir, node, context) => {
125
126
}
126
127
127
128
if ( eventOptionModifiers . length ) {
129
+ const modifierPostfix = eventOptionModifiers . map ( capitalize ) . join ( '' )
128
130
key = isStaticExp ( key )
129
- ? createSimpleExpression (
130
- `${ key . content } .${ eventOptionModifiers . join ( `.` ) } ` ,
131
- true
132
- )
133
- : createCompoundExpression ( [
134
- `(` ,
135
- key ,
136
- `) + ".${ eventOptionModifiers . join ( `.` ) } "`
137
- ] )
131
+ ? createSimpleExpression ( `${ key . content } ${ modifierPostfix } ` , true )
132
+ : createCompoundExpression ( [ `(` , key , `) + "${ modifierPostfix } "` ] )
138
133
}
139
134
140
135
return {
0 commit comments