Make feature errors per post/thread, as they're supposed to be.

This commit is contained in:
Zixaphir 2015-01-12 21:25:53 -07:00
parent a03e6d7e15
commit b5fd8738b4
3 changed files with 41 additions and 37 deletions

View File

@ -3141,26 +3141,27 @@
}; };
Callbacks.prototype.execute = function(nodes) { Callbacks.prototype.execute = function(nodes) {
var err, errors, name, node, _i, _j, _len, _len1, _ref; var err, errors, feature, name, node, _i, _j, _len, _len1, _ref;
_ref = this.keys; _ref = this.keys;
for (_i = 0, _len = _ref.length; _i < _len; _i++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
name = _ref[_i]; name = _ref[_i];
try { feature = this[name];
for (_j = 0, _len1 = nodes.length; _j < _len1; _j++) { for (_j = 0, _len1 = nodes.length; _j < _len1; _j++) {
node = nodes[_j]; node = nodes[_j];
if (!this[name].disconnected) { if (!feature.disconnected) {
this[name].call(node); try {
feature.call(node);
} catch (_error) {
err = _error;
if (!errors) {
errors = [];
}
errors.push({
message: ['"', name, '" crashed on node ', this.type, ' No.', node.ID, ' (', node.board, ').'].join(''),
error: err
});
} }
} }
} catch (_error) {
err = _error;
if (!errors) {
errors = [];
}
errors.push({
message: ['"', name, '" crashed on node ', this.type, ' No.', node.ID, ' (', node.board, ').'].join(''),
error: err
});
} }
} }
if (errors) { if (errors) {

View File

@ -3167,26 +3167,27 @@
}; };
Callbacks.prototype.execute = function(nodes) { Callbacks.prototype.execute = function(nodes) {
var err, errors, name, node, _i, _j, _len, _len1, _ref; var err, errors, feature, name, node, _i, _j, _len, _len1, _ref;
_ref = this.keys; _ref = this.keys;
for (_i = 0, _len = _ref.length; _i < _len; _i++) { for (_i = 0, _len = _ref.length; _i < _len; _i++) {
name = _ref[_i]; name = _ref[_i];
try { feature = this[name];
for (_j = 0, _len1 = nodes.length; _j < _len1; _j++) { for (_j = 0, _len1 = nodes.length; _j < _len1; _j++) {
node = nodes[_j]; node = nodes[_j];
if (!this[name].disconnected) { if (!feature.disconnected) {
this[name].call(node); try {
feature.call(node);
} catch (_error) {
err = _error;
if (!errors) {
errors = [];
}
errors.push({
message: ['"', name, '" crashed on node ', this.type, ' No.', node.ID, ' (', node.board, ').'].join(''),
error: err
});
} }
} }
} catch (_error) {
err = _error;
if (!errors) {
errors = [];
}
errors.push({
message: ['"', name, '" crashed on node ', this.type, ' No.', node.ID, ' (', node.board, ').'].join(''),
error: err
});
} }
} }
if (errors) { if (errors) {

View File

@ -12,12 +12,14 @@ class Callbacks
execute: (nodes) -> execute: (nodes) ->
for name in @keys for name in @keys
try feature = @[name]
@[name].call node for node in nodes when not @[name].disconnected for node in nodes when not feature.disconnected
catch err try
errors = [] unless errors feature.call node
errors.push catch err
message: ['"', name, '" crashed on node ', @type, ' No.', node.ID, ' (', node.board, ').'].join('') errors = [] unless errors
error: err errors.push
message: ['"', name, '" crashed on node ', @type, ' No.', node.ID, ' (', node.board, ').'].join('')
error: err
Main.handleErrors errors if errors Main.handleErrors errors if errors