Skip to content

Commit 44355f1

Browse files
committed
Normalize usage of try/catch
1 parent eab7a73 commit 44355f1

File tree

2 files changed

+32
-82
lines changed

2 files changed

+32
-82
lines changed

src/Control/Monad/Aff.js

Lines changed: 18 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -82,16 +82,12 @@ exports._forkAll = function (nonCanceler, foldl, affs) {
8282
var voidF = function () {};
8383

8484
return function (success, error) {
85-
try {
86-
var cancelers = foldl(function (acc) {
87-
return function (aff) {
88-
acc.push(aff(voidF, voidF));
89-
return acc;
90-
};
91-
})([])(affs);
92-
} catch (err) {
93-
error(err);
94-
}
85+
var cancelers = foldl(function (acc) {
86+
return function (aff) {
87+
acc.push(aff(voidF, voidF));
88+
return acc;
89+
};
90+
})([])(affs);
9591

9692
var canceler = function (e) {
9793
return function (success, error) {
@@ -147,7 +143,7 @@ exports._makeAff = function (cb) {
147143
};
148144

149145
exports._pure = function (nonCanceler, v) {
150-
return function (success) {
146+
return function (success, error) {
151147
success(v);
152148
return nonCanceler;
153149
};
@@ -162,18 +158,9 @@ exports._throwError = function (nonCanceler, e) {
162158

163159
exports._fmap = function (f, aff) {
164160
return function (success, error) {
165-
try {
166-
return aff(function (v) {
167-
try {
168-
var v2 = f(v);
169-
} catch (err) {
170-
error(err);
171-
}
172-
success(v2);
173-
}, error);
174-
} catch (err) {
175-
error(err);
176-
}
161+
return aff(function (v) {
162+
success(f(v));
163+
}, error);
177164
};
178165
};
179166

@@ -223,16 +210,12 @@ exports._bind = function (alwaysCanceler, aff, f) {
223210
};
224211

225212
exports._attempt = function (Left, Right, aff) {
226-
return function (success) {
227-
try {
228-
return aff(function (v) {
229-
success(Right(v));
230-
}, function (e) {
231-
success(Left(e));
232-
});
233-
} catch (err) {
234-
success(Left(err));
235-
}
213+
return function (success, error) {
214+
return aff(function (v) {
215+
success(Right(v));
216+
}, function (e) {
217+
success(Left(e));
218+
});
236219
};
237220
};
238221

@@ -284,11 +267,7 @@ exports._tailRecM = function (isLeft, f, a) {
284267
if (isLeft(v)) {
285268
go(v.value0);
286269
} else {
287-
try {
288-
success(v.value0);
289-
} catch (err) {
290-
error(err);
291-
}
270+
success(v.value0);
292271
}
293272
}
294273
};
@@ -307,11 +286,7 @@ exports._tailRecM = function (isLeft, f, a) {
307286
acc = result.value0;
308287
continue;
309288
} else {
310-
try {
311-
success(result.value0);
312-
} catch (err) {
313-
error(err);
314-
}
289+
success(result.value0);
315290
}
316291
} else {
317292
// If the status has not resolved yet, then we have observed an

src/Control/Monad/Aff/Internal.js

Lines changed: 14 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,11 @@
22

33
exports._makeVar = function (nonCanceler) {
44
return function (success, error) {
5-
try {
6-
success({
7-
consumers: [],
8-
producers: [],
9-
error: undefined
10-
});
11-
} catch (err) {
12-
error(err);
13-
}
14-
5+
success({
6+
consumers: [],
7+
producers: [],
8+
error: undefined
9+
});
1510
return nonCanceler;
1611
};
1712
};
@@ -21,9 +16,7 @@ exports._takeVar = function (nonCanceler, avar) {
2116
if (avar.error !== undefined) {
2217
error(avar.error);
2318
} else if (avar.producers.length > 0) {
24-
var producer = avar.producers.shift();
25-
26-
producer(success, error);
19+
avar.producers.shift()(success, error);
2720
} else {
2821
avar.consumers.push({ peek: false, success: success, error: error });
2922
}
@@ -37,8 +30,7 @@ exports._peekVar = function (nonCanceler, avar) {
3730
if (avar.error !== undefined) {
3831
error(avar.error);
3932
} else if (avar.producers.length > 0) {
40-
var producer = avar.producers[0];
41-
producer(success, error);
33+
avar.producers[0](success, error);
4234
} else {
4335
avar.consumers.push({ peek: true, success: success, error: error });
4436
}
@@ -70,20 +62,13 @@ exports._putVar = function (nonCanceler, avar, a) {
7062

7163
if (shouldQueue) {
7264
avar.producers.push(function (success, error) {
73-
try {
74-
success(a);
75-
} catch (err) {
76-
error(err);
77-
}
65+
success(a);
66+
return nonCanceler;
7867
});
7968
}
8069

8170
for (var i = 0; i < consumers.length; i++) {
82-
try {
83-
consumers[i].success(a);
84-
} catch (err) {
85-
consumers[i].error(err);
86-
}
71+
consumers[i].success(a);
8772
}
8873

8974
success({});
@@ -93,27 +78,17 @@ exports._putVar = function (nonCanceler, avar, a) {
9378
};
9479
};
9580

81+
9682
exports._killVar = function (nonCanceler, avar, e) {
9783
return function (success, error) {
9884
if (avar.error !== undefined) {
9985
error(avar.error);
10086
} else {
101-
var errors = [];
102-
10387
avar.error = e;
104-
105-
while (avar.consumers.length > 0) {
106-
var consumer = avar.consumers.shift();
107-
108-
try {
109-
consumer.error(e);
110-
} catch (err) {
111-
errors.push(err);
112-
}
88+
while (avar.consumers.length) {
89+
avar.consumers.shift().error(e);
11390
}
114-
115-
if (errors.length > 0) error(errors[0]);
116-
else success({});
91+
success({});
11792
}
11893

11994
return nonCanceler;

0 commit comments

Comments
 (0)