@@ -5,22 +5,18 @@ import { cached, isUndef } from 'shared/util'
55
66const normalizeEvent = cached ( ( name : string ) : {
77 name : string ,
8- plain : boolean ,
98 once : boolean ,
109 capture : boolean ,
11- passive : boolean ,
12- handler ?: Function
10+ passive : boolean
1311} = > {
1412 const passive = name . charAt ( 0 ) === '&'
1513 name = passive ? name . slice ( 1 ) : name
1614 const once = name . charAt ( 0 ) === '~' // Prefixed last, checked first
1715 name = once ? name . slice ( 1 ) : name
1816 const capture = name . charAt ( 0 ) === '!'
1917 name = capture ? name . slice ( 1 ) : name
20- const plain = ! ( passive || once || capture )
2118 return {
2219 name ,
23- plain,
2420 once,
2521 capture,
2622 passive
@@ -44,11 +40,6 @@ export function createFnInvoker (fns: Function | Array<Function>): Function {
4440 return invoker
4541}
4642
47- // #6552
48- function prioritizePlainEvents ( a , b ) {
49- return a . plain ? - 1 : b . plain ? 1 : 0
50- }
51-
5243export function updateListeners (
5344 on : Object ,
5445 oldOn : Object ,
@@ -57,13 +48,10 @@ export function updateListeners (
5748 vm : Component
5849) {
5950 let name , cur , old , event
60- const toAdd = [ ]
61- let hasModifier = false
6251 for ( name in on ) {
6352 cur = on [ name ]
6453 old = oldOn [ name ]
6554 event = normalizeEvent ( name )
66- if ( ! event . plain ) hasModifier = true
6755 if ( isUndef ( cur ) ) {
6856 process . env . NODE_ENV !== 'production' && warn (
6957 `Invalid handler for event "${ event . name } ": got ` + String ( cur ) ,
@@ -73,20 +61,12 @@ export function updateListeners (
7361 if ( isUndef ( cur . fns ) ) {
7462 cur = on [ name ] = createFnInvoker ( cur )
7563 }
76- event . handler = cur
77- toAdd . push ( event )
64+ add ( event . name , cur , event . once , event . capture , event . passive )
7865 } else if ( cur !== old ) {
7966 old . fns = cur
8067 on [ name ] = old
8168 }
8269 }
83- if ( toAdd . length ) {
84- if ( hasModifier ) toAdd . sort ( prioritizePlainEvents )
85- for ( let i = 0 ; i < toAdd . length ; i ++ ) {
86- const event = toAdd [ i ]
87- add ( event . name , event . handler , event . once , event . capture , event . passive )
88- }
89- }
9070 for ( name in oldOn ) {
9171 if ( isUndef ( on [ name ] ) ) {
9272 event = normalizeEvent ( name )
0 commit comments