@@ -16,18 +16,13 @@ exports._cancelWith = function (nonCanceler, aff, canceler1) {
1616 result = result || bool ;
1717
1818 if ( cancellations === 2 && ! errored ) {
19- try {
20- success ( result ) ;
21- } catch ( err ) {
22- error ( err ) ;
23- }
19+ success ( result ) ;
2420 }
2521 } ;
2622
2723 var f = function ( err ) {
2824 if ( ! errored ) {
2925 errored = true ;
30-
3126 error ( err ) ;
3227 }
3328 } ;
@@ -60,13 +55,7 @@ exports._setTimeout = function (nonCanceler, millis, aff) {
6055 return canceler ( e ) ( s , f ) ;
6156 } else {
6257 clear ( timeout ) ;
63-
64- try {
65- s ( true ) ;
66- } catch ( err ) {
67- f ( err ) ;
68- }
69-
58+ s ( true ) ;
7059 return nonCanceler ;
7160 }
7261 } ;
@@ -83,13 +72,7 @@ exports._forkAff = function (nonCanceler, aff) {
8372
8473 return function ( success , error ) {
8574 var canceler = aff ( voidF , voidF ) ;
86-
87- try {
88- success ( canceler ) ;
89- } catch ( err ) {
90- error ( err ) ;
91- }
92-
75+ success ( canceler ) ;
9376 return nonCanceler ;
9477 } ;
9578}
@@ -98,12 +81,16 @@ exports._forkAll = function (nonCanceler, foldl, affs) {
9881 var voidF = function ( ) { } ;
9982
10083 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+ }
10794
10895 var canceler = function ( e ) {
10996 return function ( success , error ) {
@@ -116,11 +103,7 @@ exports._forkAll = function (nonCanceler, foldl, affs) {
116103 result = result || bool ;
117104
118105 if ( cancellations === cancelers . length && ! errored ) {
119- try {
120- success ( result ) ;
121- } catch ( err ) {
122- error ( err ) ;
123- }
106+ success ( result ) ;
124107 }
125108 } ;
126109
@@ -139,63 +122,57 @@ exports._forkAll = function (nonCanceler, foldl, affs) {
139122 } ;
140123 } ;
141124
142- try {
143- success ( canceler ) ;
144- } catch ( err ) {
145- error ( err ) ;
146- }
147-
125+ success ( canceler ) ;
148126 return nonCanceler ;
149127 } ;
150128}
151129
152130exports . _makeAff = function ( cb ) {
153131 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 ( ) {
161139 success ( v ) ;
162- } catch ( err ) {
163- error ( err ) ;
164- }
165- } ;
166- } ) ( ) ;
140+ } ;
141+ } ) ( ) ;
142+ } catch ( err ) {
143+ error ( err ) ;
144+ }
167145 }
168146}
169147
170148exports . _pure = function ( nonCanceler , v ) {
171149 return function ( success , error ) {
172- try {
173- success ( v ) ;
174- } catch ( err ) {
175- error ( err ) ;
176- }
177-
150+ success ( v ) ;
178151 return nonCanceler ;
179152 } ;
180153}
181154
182155exports . _throwError = function ( nonCanceler , e ) {
183156 return function ( success , error ) {
184157 error ( e ) ;
185-
186158 return nonCanceler ;
187159 } ;
188160}
189161
190162exports . _fmap = function ( f , aff ) {
191163 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+ }
199176 } ;
200177}
201178
@@ -231,11 +208,7 @@ exports._bind = function (alwaysCanceler, aff, f) {
231208 } else {
232209 return canceler1 ( e ) ( function ( bool ) {
233210 if ( bool || isCanceled ) {
234- try {
235- s ( true ) ;
236- } catch ( err ) {
237- f ( err ) ;
238- }
211+ s ( true ) ;
239212 } else {
240213 onCanceler = function ( canceler ) {
241214 canceler ( e ) ( s , f ) ;
@@ -250,30 +223,22 @@ exports._bind = function (alwaysCanceler, aff, f) {
250223
251224exports . _attempt = function ( Left , Right , aff ) {
252225 return function ( success , error ) {
253- return aff ( function ( v ) {
254- try {
226+ try {
227+ return aff ( function ( v ) {
255228 success ( Right ( v ) ) ;
256- } catch ( err ) {
257- error ( err ) ;
258- }
259- } , function ( e ) {
260- try {
229+ } , function ( e ) {
261230 success ( Left ( e ) ) ;
262- } catch ( err ) {
263- error ( err ) ;
264- }
265- } ) ;
231+ } ) ;
232+ } catch ( err ) {
233+ success ( Left ( err ) ) ;
234+ }
266235 } ;
267236}
268237
269238exports . _runAff = function ( errorT , successT , aff ) {
270239 return function ( ) {
271240 return aff ( function ( v ) {
272- try {
273- successT ( v ) ( ) ;
274- } catch ( err ) {
275- errorT ( err ) ( ) ;
276- }
241+ successT ( v ) ( ) ;
277242 } , function ( e ) {
278243 errorT ( e ) ( ) ;
279244 } ) ;
@@ -282,12 +247,15 @@ exports._runAff = function (errorT, successT, aff) {
282247
283248exports . _liftEff = function ( nonCanceler , e ) {
284249 return function ( success , error ) {
250+ var result ;
285251 try {
286- success ( e ( ) ) ;
252+ result = e ( ) ;
287253 } catch ( err ) {
288254 error ( err ) ;
255+ return nonCanceler ;
289256 }
290257
258+ success ( result ) ;
291259 return nonCanceler ;
292260 } ;
293261}
0 commit comments