GeezerVison is showing github.com — fix(zone.js): harden zoneSymbolEventNames against __proto__ key (defe… · angular/angular@fd7c2da
File tree
Expand file treeCollapse file tree
Open diff view settings
packages/zone.js/lib/common
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: packages/zone.js/lib/common/events.ts +6-4Lines changed: 6 additions & 4 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -85,7 +85,8 @@ const OPTIMIZED_ZONE_EVENT_TASK_DATA: EventTaskData = { |
85 | 85 | useG: true, |
86 | 86 | }; |
87 | 87 |
|
88 | | -export const zoneSymbolEventNames: any = {}; |
| 88 | +// tslint:disable-next-line:no-toplevel-property-access |
| 89 | +export const zoneSymbolEventNames: any = Object.create(null); |
89 | 90 | export const globalSources: any = {}; |
90 | 91 |
|
91 | 92 | const EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\w+)(true|false)$'); |
@@ -96,9 +97,10 @@ function prepareEventNames(eventName: string, eventNameToString?: (eventName: st |
96 | 97 | const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR; |
97 | 98 | const symbol = ZONE_SYMBOL_PREFIX + falseEventName; |
98 | 99 | const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName; |
99 | | - zoneSymbolEventNames[eventName] = {}; |
100 | | - zoneSymbolEventNames[eventName][FALSE_STR] = symbol; |
101 | | - zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture; |
| 100 | + zoneSymbolEventNames[eventName] = { |
| 101 | + [FALSE_STR]: symbol, |
| 102 | + [TRUE_STR]: symbolCapture, |
| 103 | + }; |
102 | 104 | } |
103 | 105 |
|
104 | 106 | export interface PatchEventTargetOptions { |
|