/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ export function eventTargetPatch(_global: any, api: _ZonePrivate) { if ((Zone as any)[api.symbol('patchEventTarget')]) { // EventTarget is already patched. return; } const {eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX} = api.getGlobalObjects() !; // predefine all __zone_symbol__ + eventName + true/false string for (let i = 0; i < eventNames.length; i++) { const eventName = eventNames[i]; const falseEventName = eventName + FALSE_STR; const trueEventName = eventName + TRUE_STR; const symbol = ZONE_SYMBOL_PREFIX + falseEventName; const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; zoneSymbolEventNames[eventName] = {}; zoneSymbolEventNames[eventName][FALSE_STR] = symbol; zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; } const EVENT_TARGET = _global['EventTarget']; if (!EVENT_TARGET || !EVENT_TARGET.prototype) { return; } api.patchEventTarget(_global, [EVENT_TARGET && EVENT_TARGET.prototype]); return true; } export function patchEvent(global: any, api: _ZonePrivate) { api.patchEventPrototype(global, api); }