@@ -182,8 +182,13 @@ class FileReader extends EventTarget {
182
182
set onloadend ( fn ) {
183
183
webidl . brandCheck ( this , FileReader )
184
184
185
+ if ( this [ kEvents ] . loadend ) {
186
+ this . removeEventListener ( 'loadend' , this [ kEvents ] . loadend )
187
+ }
188
+
185
189
if ( typeof fn === 'function' ) {
186
190
this [ kEvents ] . loadend = fn
191
+ this . addEventListener ( 'loadend' , fn )
187
192
} else {
188
193
this [ kEvents ] . loadend = null
189
194
}
@@ -198,8 +203,13 @@ class FileReader extends EventTarget {
198
203
set onerror ( fn ) {
199
204
webidl . brandCheck ( this , FileReader )
200
205
206
+ if ( this [ kEvents ] . error ) {
207
+ this . removeEventListener ( 'error' , this [ kEvents ] . error )
208
+ }
209
+
201
210
if ( typeof fn === 'function' ) {
202
211
this [ kEvents ] . error = fn
212
+ this . addEventListener ( 'error' , fn )
203
213
} else {
204
214
this [ kEvents ] . error = null
205
215
}
@@ -214,8 +224,13 @@ class FileReader extends EventTarget {
214
224
set onloadstart ( fn ) {
215
225
webidl . brandCheck ( this , FileReader )
216
226
227
+ if ( this [ kEvents ] . loadstart ) {
228
+ this . removeEventListener ( 'loadstart' , this [ kEvents ] . loadstart )
229
+ }
230
+
217
231
if ( typeof fn === 'function' ) {
218
232
this [ kEvents ] . loadstart = fn
233
+ this . addEventListener ( 'loadstart' , fn )
219
234
} else {
220
235
this [ kEvents ] . loadstart = null
221
236
}
@@ -230,8 +245,13 @@ class FileReader extends EventTarget {
230
245
set onprogress ( fn ) {
231
246
webidl . brandCheck ( this , FileReader )
232
247
248
+ if ( this [ kEvents ] . progress ) {
249
+ this . removeEventListener ( 'progress' , this [ kEvents ] . progress )
250
+ }
251
+
233
252
if ( typeof fn === 'function' ) {
234
253
this [ kEvents ] . progress = fn
254
+ this . addEventListener ( 'progress' , fn )
235
255
} else {
236
256
this [ kEvents ] . progress = null
237
257
}
@@ -246,8 +266,13 @@ class FileReader extends EventTarget {
246
266
set onload ( fn ) {
247
267
webidl . brandCheck ( this , FileReader )
248
268
269
+ if ( this [ kEvents ] . load ) {
270
+ this . removeEventListener ( 'load' , this [ kEvents ] . load )
271
+ }
272
+
249
273
if ( typeof fn === 'function' ) {
250
274
this [ kEvents ] . load = fn
275
+ this . addEventListener ( 'load' , fn )
251
276
} else {
252
277
this [ kEvents ] . load = null
253
278
}
@@ -262,8 +287,13 @@ class FileReader extends EventTarget {
262
287
set onabort ( fn ) {
263
288
webidl . brandCheck ( this , FileReader )
264
289
290
+ if ( this [ kEvents ] . abort ) {
291
+ this . removeEventListener ( 'abort' , this [ kEvents ] . abort )
292
+ }
293
+
265
294
if ( typeof fn === 'function' ) {
266
295
this [ kEvents ] . abort = fn
296
+ this . addEventListener ( 'abort' , fn )
267
297
} else {
268
298
this [ kEvents ] . abort = null
269
299
}
0 commit comments