@@ -96,7 +96,8 @@ var boundFnsKey = keys.create('boundFns');
96
96
function patchEventTargetMethods ( obj ) {
97
97
// This is required for the addEventListener hook on the root zone.
98
98
obj [ keys . common . addEventListener ] = obj . addEventListener ;
99
- obj . addEventListener = function ( eventName , handler ) {
99
+ obj . addEventListener = function ( eventName , handler , useCapturing ) {
100
+ var eventType = eventName + ( useCapturing ? '$capturing' : '$bubbling' ) ;
100
101
var fn ;
101
102
//Ignore special listeners of IE11 & Edge dev tools, see https://github.com/angular/zone.js/issues/150
102
103
if ( handler . toString ( ) !== "[object FunctionWrapper]" ) {
@@ -114,19 +115,20 @@ function patchEventTargetMethods(obj) {
114
115
115
116
handler [ originalFnKey ] = fn ;
116
117
handler [ boundFnsKey ] = handler [ boundFnsKey ] || { } ;
117
- arguments [ 1 ] = handler [ boundFnsKey ] [ eventName ] = zone . bind ( fn ) ;
118
+ arguments [ 1 ] = handler [ boundFnsKey ] [ eventType ] = zone . bind ( fn ) ;
118
119
}
119
120
return global . zone . addEventListener . apply ( this , arguments ) ;
120
121
} ;
121
122
122
123
// This is required for the removeEventListener hook on the root zone.
123
124
obj [ keys . common . removeEventListener ] = obj . removeEventListener ;
124
- obj . removeEventListener = function ( eventName , handler ) {
125
- if ( handler [ boundFnsKey ] && handler [ boundFnsKey ] [ eventName ] ) {
125
+ obj . removeEventListener = function ( eventName , handler , useCapturing ) {
126
+ var eventType = eventName + ( useCapturing ? '$capturing' : '$bubbling' ) ;
127
+ if ( handler [ boundFnsKey ] && handler [ boundFnsKey ] [ eventType ] ) {
126
128
var _bound = handler [ boundFnsKey ] ;
127
129
128
- arguments [ 1 ] = _bound [ eventName ] ;
129
- delete _bound [ eventName ] ;
130
+ arguments [ 1 ] = _bound [ eventType ] ;
131
+ delete _bound [ eventType ] ;
130
132
}
131
133
var result = global . zone . removeEventListener . apply ( this , arguments ) ;
132
134
global . zone . dequeueTask ( handler [ originalFnKey ] ) ;
0 commit comments