/** * @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 */ import {globalSources, patchEventPrototype, patchEventTarget, zoneSymbolEventNames} from '../common/events'; import {ADD_EVENT_LISTENER_STR, ArraySlice, FALSE_STR, ObjectCreate, ObjectDefineProperty, ObjectGetOwnPropertyDescriptor, REMOVE_EVENT_LISTENER_STR, TRUE_STR, ZONE_SYMBOL_PREFIX, attachOriginToPatched, bindArguments, isBrowser, isIEOrEdge, isMix, isNode, patchClass, patchMacroTask, patchMethod, patchOnProperties, wrapWithCurrentZone} from '../common/utils'; import {patchCallbacks} from './browser-util'; import {eventNames, filterProperties} from './property-descriptor'; Zone.__load_patch('util', (global: any, Zone: ZoneType, api: _ZonePrivate) => { api.patchOnProperties = patchOnProperties; api.patchMethod = patchMethod; api.bindArguments = bindArguments; api.patchMacroTask = patchMacroTask; // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to // define which events will not be patched by `Zone.js`. // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep // the name consistent with angular repo. // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for // backwards compatibility. const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS'); const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS'); if (global[SYMBOL_UNPATCHED_EVENTS]) { global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS]; } if (global[SYMBOL_BLACK_LISTED_EVENTS]) { (Zone as any)[SYMBOL_BLACK_LISTED_EVENTS] = (Zone as any)[SYMBOL_UNPATCHED_EVENTS] = global[SYMBOL_BLACK_LISTED_EVENTS]; } api.patchEventPrototype = patchEventPrototype; api.patchEventTarget = patchEventTarget; api.isIEOrEdge = isIEOrEdge; api.ObjectDefineProperty = ObjectDefineProperty; api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor; api.ObjectCreate = ObjectCreate; api.ArraySlice = ArraySlice; api.patchClass = patchClass; api.wrapWithCurrentZone = wrapWithCurrentZone; api.filterProperties = filterProperties; api.attachOriginToPatched = attachOriginToPatched; api._redefineProperty = Object.defineProperty; api.patchCallbacks = patchCallbacks; api.getGlobalObjects = () => ({globalSources, zoneSymbolEventNames, eventNames, isBrowser, isMix, isNode, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX, ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR}); });