@@ -16,18 +16,13 @@ exports._cancelWith = function (nonCanceler, aff, canceler1) {
16
16
result = result || bool ;
17
17
18
18
if ( cancellations === 2 && ! errored ) {
19
- try {
20
- success ( result ) ;
21
- } catch ( err ) {
22
- error ( err ) ;
23
- }
19
+ success ( result ) ;
24
20
}
25
21
} ;
26
22
27
23
var f = function ( err ) {
28
24
if ( ! errored ) {
29
25
errored = true ;
30
-
31
26
error ( err ) ;
32
27
}
33
28
} ;
@@ -60,13 +55,7 @@ exports._setTimeout = function (nonCanceler, millis, aff) {
60
55
return canceler ( e ) ( s , f ) ;
61
56
} else {
62
57
clear ( timeout ) ;
63
-
64
- try {
65
- s ( true ) ;
66
- } catch ( err ) {
67
- f ( err ) ;
68
- }
69
-
58
+ s ( true ) ;
70
59
return nonCanceler ;
71
60
}
72
61
} ;
@@ -83,13 +72,7 @@ exports._forkAff = function (nonCanceler, aff) {
83
72
84
73
return function ( success , error ) {
85
74
var canceler = aff ( voidF , voidF ) ;
86
-
87
- try {
88
- success ( canceler ) ;
89
- } catch ( err ) {
90
- error ( err ) ;
91
- }
92
-
75
+ success ( canceler ) ;
93
76
return nonCanceler ;
94
77
} ;
95
78
}
@@ -98,12 +81,16 @@ exports._forkAll = function (nonCanceler, foldl, affs) {
98
81
var voidF = function ( ) { } ;
99
82
100
83
return function ( success , error ) {
101
- var cancelers = foldl ( function ( acc ) {
102
- return function ( aff ) {
103
- acc . push ( aff ( voidF , voidF ) ) ;
104
- return acc ;
105
- }
106
- } ) ( [ ] ) ( affs ) ;
84
+ try {
85
+ var cancelers = foldl ( function ( acc ) {
86
+ return function ( aff ) {
87
+ acc . push ( aff ( voidF , voidF ) ) ;
88
+ return acc ;
89
+ }
90
+ } ) ( [ ] ) ( affs ) ;
91
+ } catch ( err ) {
92
+ error ( err )
93
+ }
107
94
108
95
var canceler = function ( e ) {
109
96
return function ( success , error ) {
@@ -116,11 +103,7 @@ exports._forkAll = function (nonCanceler, foldl, affs) {
116
103
result = result || bool ;
117
104
118
105
if ( cancellations === cancelers . length && ! errored ) {
119
- try {
120
- success ( result ) ;
121
- } catch ( err ) {
122
- error ( err ) ;
123
- }
106
+ success ( result ) ;
124
107
}
125
108
} ;
126
109
@@ -139,63 +122,57 @@ exports._forkAll = function (nonCanceler, foldl, affs) {
139
122
} ;
140
123
} ;
141
124
142
- try {
143
- success ( canceler ) ;
144
- } catch ( err ) {
145
- error ( err ) ;
146
- }
147
-
125
+ success ( canceler ) ;
148
126
return nonCanceler ;
149
127
} ;
150
128
}
151
129
152
130
exports . _makeAff = function ( cb ) {
153
131
return function ( success , error ) {
154
- return cb ( function ( e ) {
155
- return function ( ) {
156
- error ( e ) ;
157
- } ;
158
- } ) ( function ( v ) {
159
- return function ( ) {
160
- try {
132
+ try {
133
+ return cb ( function ( e ) {
134
+ return function ( ) {
135
+ error ( e ) ;
136
+ } ;
137
+ } ) ( function ( v ) {
138
+ return function ( ) {
161
139
success ( v ) ;
162
- } catch ( err ) {
163
- error ( err ) ;
164
- }
165
- } ;
166
- } ) ( ) ;
140
+ } ;
141
+ } ) ( ) ;
142
+ } catch ( err ) {
143
+ error ( err ) ;
144
+ }
167
145
}
168
146
}
169
147
170
148
exports . _pure = function ( nonCanceler , v ) {
171
149
return function ( success , error ) {
172
- try {
173
- success ( v ) ;
174
- } catch ( err ) {
175
- error ( err ) ;
176
- }
177
-
150
+ success ( v ) ;
178
151
return nonCanceler ;
179
152
} ;
180
153
}
181
154
182
155
exports . _throwError = function ( nonCanceler , e ) {
183
156
return function ( success , error ) {
184
157
error ( e ) ;
185
-
186
158
return nonCanceler ;
187
159
} ;
188
160
}
189
161
190
162
exports . _fmap = function ( f , aff ) {
191
163
return function ( success , error ) {
192
- return aff ( function ( v ) {
193
- try {
194
- success ( f ( v ) ) ;
195
- } catch ( err ) {
196
- error ( err ) ;
197
- }
198
- } , error ) ;
164
+ try {
165
+ return aff ( function ( v ) {
166
+ try {
167
+ var v2 = f ( v ) ;
168
+ } catch ( err ) {
169
+ error ( err )
170
+ }
171
+ success ( v2 ) ;
172
+ } , error ) ;
173
+ } catch ( err ) {
174
+ error ( err ) ;
175
+ }
199
176
} ;
200
177
}
201
178
@@ -231,11 +208,7 @@ exports._bind = function (alwaysCanceler, aff, f) {
231
208
} else {
232
209
return canceler1 ( e ) ( function ( bool ) {
233
210
if ( bool || isCanceled ) {
234
- try {
235
- s ( true ) ;
236
- } catch ( err ) {
237
- f ( err ) ;
238
- }
211
+ s ( true ) ;
239
212
} else {
240
213
onCanceler = function ( canceler ) {
241
214
canceler ( e ) ( s , f ) ;
@@ -250,30 +223,22 @@ exports._bind = function (alwaysCanceler, aff, f) {
250
223
251
224
exports . _attempt = function ( Left , Right , aff ) {
252
225
return function ( success , error ) {
253
- return aff ( function ( v ) {
254
- try {
226
+ try {
227
+ return aff ( function ( v ) {
255
228
success ( Right ( v ) ) ;
256
- } catch ( err ) {
257
- error ( err ) ;
258
- }
259
- } , function ( e ) {
260
- try {
229
+ } , function ( e ) {
261
230
success ( Left ( e ) ) ;
262
- } catch ( err ) {
263
- error ( err ) ;
264
- }
265
- } ) ;
231
+ } ) ;
232
+ } catch ( err ) {
233
+ success ( Left ( err ) ) ;
234
+ }
266
235
} ;
267
236
}
268
237
269
238
exports . _runAff = function ( errorT , successT , aff ) {
270
239
return function ( ) {
271
240
return aff ( function ( v ) {
272
- try {
273
- successT ( v ) ( ) ;
274
- } catch ( err ) {
275
- errorT ( err ) ( ) ;
276
- }
241
+ successT ( v ) ( ) ;
277
242
} , function ( e ) {
278
243
errorT ( e ) ( ) ;
279
244
} ) ;
@@ -282,12 +247,15 @@ exports._runAff = function (errorT, successT, aff) {
282
247
283
248
exports . _liftEff = function ( nonCanceler , e ) {
284
249
return function ( success , error ) {
250
+ var result ;
285
251
try {
286
- success ( e ( ) ) ;
252
+ result = e ( ) ;
287
253
} catch ( err ) {
288
254
error ( err ) ;
255
+ return nonCanceler ;
289
256
}
290
257
258
+ success ( result ) ;
291
259
return nonCanceler ;
292
260
} ;
293
261
}
0 commit comments