Skip to content

Commit f4ee658

Browse files
committed
patch(FileReader): fix angular#868, patch onProperty and addEventListener of FileReader
1 parent a66595a commit f4ee658

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

lib/browser/browser.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,21 @@ Zone.__load_patch('blocking', (global: any, Zone: ZoneType, api: _ZonePrivate) =
4545
Zone.__load_patch('EventTarget', (global: any, Zone: ZoneType, api: _ZonePrivate) => {
4646
eventTargetPatch(global, api);
4747
// patch XMLHttpRequestEventTarget's addEventListener/removeEventListener
48-
const XMLHttpRequestEventTarget = (global as any)['XMLHttpRequestEventTarget'];
48+
const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];
4949
if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {
5050
api.patchEventTarget(global, [XMLHttpRequestEventTarget.prototype]);
5151
}
5252
patchClass('MutationObserver');
5353
patchClass('WebKitMutationObserver');
54-
patchClass('FileReader');
54+
// FileReader's onProperty should be patched
55+
// and if FileReader not implements EventTarget
56+
// we should patch FileReader.prototype.addEventListener
57+
const FileReader = global['FileReader'];
58+
if (FileReader && FileReader.prototype) {
59+
patchOnProperties(
60+
FileReader.prototype, ['abort', 'error', 'load', 'loadstart', 'loadend', 'progress']);
61+
api.patchEventTarget(global, [FileReader.prototype]);
62+
}
5563
});
5664

5765
Zone.__load_patch('on_property', (global: any, Zone: ZoneType, api: _ZonePrivate) => {

0 commit comments

Comments
 (0)