12
12
13
13
import { findEventTasks } from '../common/events' ;
14
14
import { patchTimer } from '../common/timers' ;
15
- import { bindArguments , i , j , o , patchClass , patchMacroTask , patchMethod , patchOnProperties , patchPrototype , r , zoneSymbol } from '../common/utils' ;
15
+ import { bindArguments , patchClass , patchMacroTask , patchMethod , patchOnProperties , patchPrototype , ZONE_SYMBOL_ADD_EVENT_LISTENER , ZONE_SYMBOL_REMOVE_EVENT_LISTENER , zoneSymbol } from '../common/utils' ;
16
16
17
17
import { propertyPatch } from './define-property' ;
18
18
import { eventTargetPatch , patchEvent } from './event-target' ;
19
19
import { propertyDescriptorPatch } from './property-descriptor' ;
20
20
import { registerElementPatch } from './register-element' ;
21
21
22
- ( Zone as any ) . l ( 'util' , ( global : any , Zone : ZoneType , api : _ZonePrivate ) => {
22
+ Zone . __load_patch ( 'util' , ( global : any , Zone : ZoneType , api : _ZonePrivate ) => {
23
23
api . patchOnProperties = patchOnProperties ;
24
24
api . patchMethod = patchMethod ;
25
25
api . bindArguments = bindArguments ;
26
26
} ) ;
27
27
28
- ( Zone as any ) . l ( 'timers' , ( global : any ) => {
28
+ Zone . __load_patch ( 'timers' , ( global : any ) => {
29
29
const set = 'set' ;
30
30
const clear = 'clear' ;
31
31
patchTimer ( global , set , clear , 'Timeout' ) ;
32
32
patchTimer ( global , set , clear , 'Interval' ) ;
33
33
patchTimer ( global , set , clear , 'Immediate' ) ;
34
34
} ) ;
35
35
36
- ( Zone as any ) . l ( 'requestAnimationFrame' , ( global : any ) => {
36
+ Zone . __load_patch ( 'requestAnimationFrame' , ( global : any ) => {
37
37
patchTimer ( global , 'request' , 'cancel' , 'AnimationFrame' ) ;
38
38
patchTimer ( global , 'mozRequest' , 'mozCancel' , 'AnimationFrame' ) ;
39
39
patchTimer ( global , 'webkitRequest' , 'webkitCancel' , 'AnimationFrame' ) ;
40
40
} ) ;
41
41
42
- ( Zone as any ) . l ( 'blocking' , ( global : any , Zone : ZoneType ) => {
42
+ Zone . __load_patch ( 'blocking' , ( global : any , Zone : ZoneType ) => {
43
43
const blockingMethods = [ 'alert' , 'prompt' , 'confirm' ] ;
44
44
for ( let i = 0 ; i < blockingMethods . length ; i ++ ) {
45
45
const name = blockingMethods [ i ] ;
46
46
patchMethod ( global , name , ( delegate , symbol , name ) => {
47
47
return function ( s : any , args : any [ ] ) {
48
- // Zone.current.run
49
- return ( Zone as any ) . c . r ( delegate , global , args , name ) ;
48
+ return Zone . current . run ( delegate , global , args , name ) ;
50
49
} ;
51
50
} ) ;
52
51
}
53
52
} ) ;
54
53
55
- ( Zone as any ) . l ( 'EventTarget' , ( global : any , Zone : ZoneType , api : _ZonePrivate ) => {
54
+ Zone . __load_patch ( 'EventTarget' , ( global : any , Zone : ZoneType , api : _ZonePrivate ) => {
56
55
// load blackListEvents from global
57
- // Zone.__symbol__
58
- const SYMBOL_BLACK_LISTED_EVENTS = ( Zone as any ) . s ( 'BLACK_LISTED_EVENTS' ) ;
56
+ const SYMBOL_BLACK_LISTED_EVENTS = Zone . __symbol__ ( 'BLACK_LISTED_EVENTS' ) ;
59
57
if ( global [ SYMBOL_BLACK_LISTED_EVENTS ] ) {
60
58
( Zone as any ) [ SYMBOL_BLACK_LISTED_EVENTS ] = global [ SYMBOL_BLACK_LISTED_EVENTS ] ;
61
59
}
@@ -73,25 +71,24 @@ import {registerElementPatch} from './register-element';
73
71
patchClass ( 'FileReader' ) ;
74
72
} ) ;
75
73
76
- ( Zone as any ) . l ( 'on_property' , ( global : any , Zone : ZoneType , api : _ZonePrivate ) => {
74
+ Zone . __load_patch ( 'on_property' , ( global : any , Zone : ZoneType , api : _ZonePrivate ) => {
77
75
propertyDescriptorPatch ( api , global ) ;
78
76
propertyPatch ( ) ;
79
77
registerElementPatch ( global ) ;
80
78
} ) ;
81
79
82
- ( Zone as any ) . l ( 'canvas' , ( global : any ) => {
80
+ Zone . __load_patch ( 'canvas' , ( global : any ) => {
83
81
const HTMLCanvasElement = global [ 'HTMLCanvasElement' ] ;
84
- // o is 'undefined'
85
- if ( typeof HTMLCanvasElement !== o && HTMLCanvasElement . prototype &&
82
+ if ( typeof HTMLCanvasElement !== 'undefined' && HTMLCanvasElement . prototype &&
86
83
HTMLCanvasElement . prototype . toBlob ) {
87
84
patchMacroTask ( HTMLCanvasElement . prototype , 'toBlob' , ( self : any , args : any [ ] ) => {
88
85
return { name : 'HTMLCanvasElement.toBlob' , target : self , cbIdx : 0 , args : args } ;
89
86
} ) ;
90
87
}
91
88
} ) ;
92
89
93
- ( Zone as any ) . l ( 'XHR' , ( global : any , Zone : ZoneType ) => {
94
- // Treat XMLHTTPRequest as a macrotask.
90
+ Zone . __load_patch ( 'XHR' , ( global : any , Zone : ZoneType ) => {
91
+ // Treat XMLHttpRequest as a macrotask.
95
92
patchXHR ( global ) ;
96
93
97
94
const XHR_TASK = zoneSymbol ( 'xhrTask' ) ;
@@ -111,18 +108,17 @@ import {registerElementPatch} from './register-element';
111
108
const XMLHttpRequestPrototype : any = XMLHttpRequest . prototype ;
112
109
113
110
function findPendingTask ( target : any ) {
114
- const pendingTask : Task = target [ XHR_TASK ] ;
115
- return pendingTask ;
111
+ return target [ XHR_TASK ] ;
116
112
}
117
113
118
- let oriAddListener = XMLHttpRequestPrototype [ i ] ;
119
- let oriRemoveListener = XMLHttpRequestPrototype [ j ] ;
114
+ let oriAddListener = XMLHttpRequestPrototype [ ZONE_SYMBOL_ADD_EVENT_LISTENER ] ;
115
+ let oriRemoveListener = XMLHttpRequestPrototype [ ZONE_SYMBOL_REMOVE_EVENT_LISTENER ] ;
120
116
if ( ! oriAddListener ) {
121
117
const XMLHttpRequestEventTarget = window [ 'XMLHttpRequestEventTarget' ] ;
122
118
if ( XMLHttpRequestEventTarget ) {
123
119
const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget . prototype ;
124
- oriAddListener = XMLHttpRequestEventTargetPrototype [ i ] ;
125
- oriRemoveListener = XMLHttpRequestEventTargetPrototype [ j ] ;
120
+ oriAddListener = XMLHttpRequestEventTargetPrototype [ ZONE_SYMBOL_ADD_EVENT_LISTENER ] ;
121
+ oriRemoveListener = XMLHttpRequestEventTargetPrototype [ ZONE_SYMBOL_REMOVE_EVENT_LISTENER ] ;
126
122
}
127
123
}
128
124
@@ -136,14 +132,12 @@ import {registerElementPatch} from './register-element';
136
132
// remove existing event listener
137
133
const listener = target [ XHR_LISTENER ] ;
138
134
if ( ! oriAddListener ) {
139
- // i is addEventListener zoneSymbol
140
- // j is removeEventListener zoneSymbol
141
- oriAddListener = target [ i ] ;
142
- oriRemoveListener = target [ j ] ;
135
+ oriAddListener = target [ ZONE_SYMBOL_ADD_EVENT_LISTENER ] ;
136
+ oriRemoveListener = target [ ZONE_SYMBOL_REMOVE_EVENT_LISTENER ] ;
143
137
}
144
138
145
139
if ( listener ) {
146
- oriRemoveListener . apply ( target , [ READY_STATE_CHANGE , listener ] ) ;
140
+ oriRemoveListener . call ( target , READY_STATE_CHANGE , listener ) ;
147
141
}
148
142
const newListener = target [ XHR_LISTENER ] = ( ) => {
149
143
if ( target . readyState === target . DONE ) {
@@ -154,7 +148,7 @@ import {registerElementPatch} from './register-element';
154
148
}
155
149
}
156
150
} ;
157
- oriAddListener . apply ( target , [ READY_STATE_CHANGE , newListener ] ) ;
151
+ oriAddListener . call ( target , READY_STATE_CHANGE , newListener ) ;
158
152
159
153
const storedTask : Task = target [ XHR_TASK ] ;
160
154
if ( ! storedTask ) {
@@ -185,8 +179,7 @@ import {registerElementPatch} from './register-element';
185
179
const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send' ;
186
180
const sendNative : Function =
187
181
patchMethod ( XMLHttpRequestPrototype , 'send' , ( ) => function ( self : any , args : any [ ] ) {
188
- // Zone.current
189
- const zone = ( Zone as any ) . c ;
182
+ const zone = Zone . current ;
190
183
if ( self [ XHR_SYNC ] ) {
191
184
// if the XHR is sync there is no task to schedule, just execute the code.
192
185
return sendNative . apply ( self , args ) ;
@@ -199,25 +192,22 @@ import {registerElementPatch} from './register-element';
199
192
args : args ,
200
193
aborted : false
201
194
} ;
202
- // Zone.scheduleMacroTask
203
- return zone . sc (
195
+ return zone . scheduleMacroTask (
204
196
XMLHTTPREQUEST_SOURCE , placeholderCallback , options , scheduleTask , clearTask ) ;
205
197
}
206
198
} ) ;
207
199
208
200
const abortNative = patchMethod ( XMLHttpRequestPrototype , 'abort' , ( ) => function ( self : any ) {
209
201
const task : Task = findPendingTask ( self ) ;
210
- // r is 'string'
211
- if ( task && typeof task . type == r ) {
202
+ if ( task && typeof task . type == 'string' ) {
212
203
// If the XHR has already completed, do nothing.
213
204
// If the XHR has already been aborted, do nothing.
214
205
// Fix #569, call abort multiple times before done will cause
215
206
// macroTask task count be negative number
216
207
if ( task . cancelFn == null || ( task . data && ( < XHROptions > task . data ) . aborted ) ) {
217
208
return ;
218
209
}
219
- // Zone.cancelTask
220
- ( task . zone as any ) . ct ( task ) ;
210
+ task . zone . cancelTask ( task ) ;
221
211
}
222
212
// Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no
223
213
// task
@@ -226,14 +216,14 @@ import {registerElementPatch} from './register-element';
226
216
}
227
217
} ) ;
228
218
229
- ( Zone as any ) . l ( 'geolocation' , ( global : any ) => {
219
+ Zone . __load_patch ( 'geolocation' , ( global : any ) => {
230
220
/// GEO_LOCATION
231
221
if ( global [ 'navigator' ] && global [ 'navigator' ] . geolocation ) {
232
222
patchPrototype ( global [ 'navigator' ] . geolocation , [ 'getCurrentPosition' , 'watchPosition' ] ) ;
233
223
}
234
224
} ) ;
235
225
236
- ( Zone as any ) . l ( 'PromiseRejectionEvent' , ( global : any , Zone : ZoneType ) => {
226
+ Zone . __load_patch ( 'PromiseRejectionEvent' , ( global : any , Zone : ZoneType ) => {
237
227
// handle unhandled promise rejection
238
228
function findPromiseRejectionHandler ( evtName : string ) {
239
229
return function ( e : any ) {
0 commit comments