diff --git a/packages/zone.js/lib/common/utils.ts b/packages/zone.js/lib/common/utils.ts index fe30d8528c18..03c9880c453f 100644 --- a/packages/zone.js/lib/common/utils.ts +++ b/packages/zone.js/lib/common/utils.ts @@ -129,7 +129,8 @@ export const isMix: boolean = !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']); -const zoneSymbolEventNames: {[eventName: string]: string} = {}; +// tslint:disable-next-line:no-toplevel-property-access +const zoneSymbolEventNames: {[eventName: string]: string} = Object.create(null); const enableBeforeunloadSymbol = zoneSymbol('enable_beforeunload'); diff --git a/packages/zone.js/lib/zone-impl.ts b/packages/zone.js/lib/zone-impl.ts index f0e01ee2c0ec..ba2fb0367e3b 100644 --- a/packages/zone.js/lib/zone-impl.ts +++ b/packages/zone.js/lib/zone-impl.ts @@ -814,7 +814,7 @@ export function initZone(): ZoneType { } static __load_patch(name: string, fn: PatchFn, ignoreDuplicate = false): void { - if (patches.hasOwnProperty(name)) { + if (Object.hasOwn(patches, name)) { // `checkDuplicate` option is defined from global variable // so it works for all modules. // `ignoreDuplicate` can work for the specified module @@ -1601,7 +1601,7 @@ export function initZone(): ZoneType { macroTask: 'macroTask' = 'macroTask', eventTask: 'eventTask' = 'eventTask'; - const patches: {[key: string]: any} = {}; + const patches: {[key: string]: any} = Object.create(null); const _api: ZonePrivate = { symbol: __symbol__, currentZoneFrame: () => _currentZoneFrame, diff --git a/packages/zone.js/tsconfig.json b/packages/zone.js/tsconfig.json index e673fa744a3f..c4f34e08f941 100644 --- a/packages/zone.js/tsconfig.json +++ b/packages/zone.js/tsconfig.json @@ -18,7 +18,8 @@ "es2015.iterable", "es2015.promise", "es2015.symbol", - "es2015.symbol.wellknown" - ], - }, + "es2015.symbol.wellknown", + "es2022.object" + ] + } }