@@ -110,43 +110,56 @@ export function hasQueuedContinuousEvents(): boolean {
110
110
return hasAnyQueuedContinuousEvents ;
111
111
}
112
112
113
+ const discreteReplayableEvents = [
114
+ TOP_MOUSE_DOWN ,
115
+ TOP_MOUSE_UP ,
116
+ TOP_TOUCH_CANCEL ,
117
+ TOP_TOUCH_END ,
118
+ TOP_TOUCH_START ,
119
+ TOP_AUX_CLICK ,
120
+ TOP_DOUBLE_CLICK ,
121
+ TOP_POINTER_CANCEL ,
122
+ TOP_POINTER_DOWN ,
123
+ TOP_POINTER_UP ,
124
+ TOP_DRAG_END ,
125
+ TOP_DRAG_START ,
126
+ TOP_DROP ,
127
+ TOP_COMPOSITION_END ,
128
+ TOP_COMPOSITION_START ,
129
+ TOP_KEY_DOWN ,
130
+ TOP_KEY_PRESS ,
131
+ TOP_KEY_UP ,
132
+ TOP_INPUT ,
133
+ TOP_TEXT_INPUT ,
134
+ TOP_CLOSE ,
135
+ TOP_CANCEL ,
136
+ TOP_COPY ,
137
+ TOP_CUT ,
138
+ TOP_PASTE ,
139
+ TOP_CLICK ,
140
+ TOP_CHANGE ,
141
+ TOP_CONTEXT_MENU ,
142
+ TOP_RESET ,
143
+ TOP_SUBMIT ,
144
+ ] ;
145
+
146
+ const continuousReplayableEvents = [
147
+ TOP_FOCUS ,
148
+ TOP_BLUR ,
149
+ TOP_DRAG_ENTER ,
150
+ TOP_DRAG_LEAVE ,
151
+ TOP_MOUSE_OVER ,
152
+ TOP_MOUSE_OUT ,
153
+ TOP_POINTER_OVER ,
154
+ TOP_POINTER_OUT ,
155
+ TOP_GOT_POINTER_CAPTURE ,
156
+ TOP_LOST_POINTER_CAPTURE ,
157
+ ] ;
158
+
113
159
export function isReplayableDiscreteEvent (
114
160
eventType : DOMTopLevelEventType ,
115
161
) : boolean {
116
- switch ( eventType ) {
117
- case TOP_MOUSE_DOWN :
118
- case TOP_MOUSE_UP :
119
- case TOP_TOUCH_CANCEL :
120
- case TOP_TOUCH_END :
121
- case TOP_TOUCH_START :
122
- case TOP_AUX_CLICK :
123
- case TOP_DOUBLE_CLICK :
124
- case TOP_POINTER_CANCEL :
125
- case TOP_POINTER_DOWN :
126
- case TOP_POINTER_UP :
127
- case TOP_DRAG_END :
128
- case TOP_DRAG_START :
129
- case TOP_DROP :
130
- case TOP_COMPOSITION_END :
131
- case TOP_COMPOSITION_START :
132
- case TOP_KEY_DOWN :
133
- case TOP_KEY_PRESS :
134
- case TOP_KEY_UP :
135
- case TOP_INPUT :
136
- case TOP_TEXT_INPUT :
137
- case TOP_CLOSE :
138
- case TOP_CANCEL :
139
- case TOP_COPY :
140
- case TOP_CUT :
141
- case TOP_PASTE :
142
- case TOP_CLICK :
143
- case TOP_CHANGE :
144
- case TOP_CONTEXT_MENU :
145
- case TOP_RESET :
146
- case TOP_SUBMIT :
147
- return true ;
148
- }
149
- return false ;
162
+ return discreteReplayableEvents . indexOf ( eventType ) > - 1 ;
150
163
}
151
164
152
165
function trapReplayableEvent (
@@ -181,47 +194,13 @@ function trapReplayableEvent(
181
194
export function eagerlyTrapReplayableEvents ( document : Document ) {
182
195
const listeningSet = getListeningSetForElement ( document ) ;
183
196
// Discrete
184
- trapReplayableEvent ( TOP_MOUSE_DOWN , document , listeningSet ) ;
185
- trapReplayableEvent ( TOP_MOUSE_UP , document , listeningSet ) ;
186
- trapReplayableEvent ( TOP_TOUCH_CANCEL , document , listeningSet ) ;
187
- trapReplayableEvent ( TOP_TOUCH_END , document , listeningSet ) ;
188
- trapReplayableEvent ( TOP_TOUCH_START , document , listeningSet ) ;
189
- trapReplayableEvent ( TOP_AUX_CLICK , document , listeningSet ) ;
190
- trapReplayableEvent ( TOP_DOUBLE_CLICK , document , listeningSet ) ;
191
- trapReplayableEvent ( TOP_POINTER_CANCEL , document , listeningSet ) ;
192
- trapReplayableEvent ( TOP_POINTER_DOWN , document , listeningSet ) ;
193
- trapReplayableEvent ( TOP_POINTER_UP , document , listeningSet ) ;
194
- trapReplayableEvent ( TOP_DRAG_END , document , listeningSet ) ;
195
- trapReplayableEvent ( TOP_DRAG_START , document , listeningSet ) ;
196
- trapReplayableEvent ( TOP_DROP , document , listeningSet ) ;
197
- trapReplayableEvent ( TOP_COMPOSITION_END , document , listeningSet ) ;
198
- trapReplayableEvent ( TOP_COMPOSITION_START , document , listeningSet ) ;
199
- trapReplayableEvent ( TOP_KEY_DOWN , document , listeningSet ) ;
200
- trapReplayableEvent ( TOP_KEY_PRESS , document , listeningSet ) ;
201
- trapReplayableEvent ( TOP_KEY_UP , document , listeningSet ) ;
202
- trapReplayableEvent ( TOP_INPUT , document , listeningSet ) ;
203
- trapReplayableEvent ( TOP_TEXT_INPUT , document , listeningSet ) ;
204
- trapReplayableEvent ( TOP_CLOSE , document , listeningSet ) ;
205
- trapReplayableEvent ( TOP_CANCEL , document , listeningSet ) ;
206
- trapReplayableEvent ( TOP_COPY , document , listeningSet ) ;
207
- trapReplayableEvent ( TOP_CUT , document , listeningSet ) ;
208
- trapReplayableEvent ( TOP_PASTE , document , listeningSet ) ;
209
- trapReplayableEvent ( TOP_CLICK , document , listeningSet ) ;
210
- trapReplayableEvent ( TOP_CHANGE , document , listeningSet ) ;
211
- trapReplayableEvent ( TOP_CONTEXT_MENU , document , listeningSet ) ;
212
- trapReplayableEvent ( TOP_RESET , document , listeningSet ) ;
213
- trapReplayableEvent ( TOP_SUBMIT , document , listeningSet ) ;
197
+ discreteReplayableEvents . forEach ( topLevelType => {
198
+ trapReplayableEvent ( topLevelType , document , listeningSet ) ;
199
+ } ) ;
214
200
// Continuous
215
- trapReplayableEvent ( TOP_FOCUS , document , listeningSet ) ;
216
- trapReplayableEvent ( TOP_BLUR , document , listeningSet ) ;
217
- trapReplayableEvent ( TOP_DRAG_ENTER , document , listeningSet ) ;
218
- trapReplayableEvent ( TOP_DRAG_LEAVE , document , listeningSet ) ;
219
- trapReplayableEvent ( TOP_MOUSE_OVER , document , listeningSet ) ;
220
- trapReplayableEvent ( TOP_MOUSE_OUT , document , listeningSet ) ;
221
- trapReplayableEvent ( TOP_POINTER_OVER , document , listeningSet ) ;
222
- trapReplayableEvent ( TOP_POINTER_OUT , document , listeningSet ) ;
223
- trapReplayableEvent ( TOP_GOT_POINTER_CAPTURE , document , listeningSet ) ;
224
- trapReplayableEvent ( TOP_LOST_POINTER_CAPTURE , document , listeningSet ) ;
201
+ continuousReplayableEvents . forEach ( topLevelType => {
202
+ trapReplayableEvent ( topLevelType , document , listeningSet ) ;
203
+ } ) ;
225
204
}
226
205
227
206
function createQueuedReplayableEvent (
0 commit comments