diff --git a/lib/amplify.core.js b/lib/amplify.core.js index 1fd7e68..29ea857 100644 --- a/lib/amplify.core.js +++ b/lib/amplify.core.js @@ -23,7 +23,14 @@ var amplify = global.amplify = { subscription, length, i = 0, - ret; + resp = [], + cont = true; + + args.unshift({ + stopPropagation: function(){ + cont = false; + } + }); if ( !subscriptions[ topic ] ) { return true; @@ -32,12 +39,12 @@ var amplify = global.amplify = { topicSubscriptions = subscriptions[ topic ].slice(); for ( length = topicSubscriptions.length; i < length; i++ ) { subscription = topicSubscriptions[ i ]; - ret = subscription.callback.apply( subscription.context, args ); - if ( ret === false ) { + resp.push(subscription.callback.apply( subscription.context, args )); + if ( !cont ) { break; } } - return ret !== false; + return resp; }, subscribe: function( topic, context, callback, priority ) { diff --git a/lib/amplify.core.min.js b/lib/amplify.core.min.js index 9808732..844619f 100644 --- a/lib/amplify.core.min.js +++ b/lib/amplify.core.min.js @@ -7,4 +7,4 @@ * * http://amplifyjs.com */ -(function(e,t){var n=[].slice,r={},i=e.amplify={publish:function(e){if(typeof e!="string")throw new Error("You must provide a valid topic to publish.");var t=n.call(arguments,1),i,s,o,u=0,a;if(!r[e])return!0;i=r[e].slice();for(o=i.length;u=0;f--)if(r[e][f].priority<=i){r[e].splice(f+1,0,l),a=!0;break}a||r[e].unshift(l)}return n},unsubscribe:function(e,t,n){if(typeof e!="string")throw new Error("You must provide a valid topic to remove a subscription.");arguments.length===2&&(n=t,t=null);if(!r[e])return;var i=r[e].length,s=0;for(;s=0;f--){if(r[e][f].priority<=i){r[e].splice(f+1,0,l);a=true;break}}if(!a){r[e].unshift(l)}}return n},unsubscribe:function(e,t,n){if(typeof e!=="string"){throw new Error("You must provide a valid topic to remove a subscription.")}if(arguments.length===2){n=t;t=null}if(!r[e]){return}var i=r[e].length,s=0;for(;s