Comparing version 0.7.2 to 0.7.4
@@ -8,3 +8,3 @@ /*jslint onevar:true, undef:true, newcap:true, regexp:true, bitwise:true, maxerr:50, indent:4, white:false, nomen:false, plusplus:false */ | ||
* Author: Miller Medeiros | ||
* Version: 0.7.2 - Build: 248 (2012/01/12 10:39 PM) | ||
* Version: 0.7.4 - Build: 252 (2012/02/24 10:30 PM) | ||
*/ | ||
@@ -24,3 +24,3 @@ | ||
*/ | ||
VERSION : '0.7.2' | ||
VERSION : '0.7.4' | ||
}; | ||
@@ -123,3 +123,3 @@ | ||
detach : function () { | ||
return this.isBound()? this._signal.remove(this._listener) : null; | ||
return this.isBound()? this._signal.remove(this._listener, this.context) : null; | ||
}, | ||
@@ -227,6 +227,6 @@ | ||
var prevIndex = this._indexOfListener(listener), | ||
var prevIndex = this._indexOfListener(listener, listenerContext), | ||
binding; | ||
if (prevIndex !== -1 && this._bindings[prevIndex].context === listenerContext) { | ||
if (prevIndex !== -1) { | ||
binding = this._bindings[prevIndex]; | ||
@@ -264,6 +264,8 @@ if (binding.isOnce() !== isOnce) { | ||
*/ | ||
_indexOfListener : function (listener) { | ||
var n = this._bindings.length; | ||
_indexOfListener : function (listener, context) { | ||
var n = this._bindings.length, | ||
cur; | ||
while (n--) { | ||
if (this._bindings[n]._listener === listener) { | ||
cur = this._bindings[n]; | ||
if (cur._listener === listener && cur.context === context) { | ||
return n; | ||
@@ -278,6 +280,7 @@ } | ||
* @param {Function} listener | ||
* @param {Object} [context] | ||
* @return {boolean} if Signal has the specified listener. | ||
*/ | ||
has : function (listener) { | ||
return this._indexOfListener(listener) !== -1; | ||
has : function (listener, context) { | ||
return this._indexOfListener(listener, context) !== -1; | ||
}, | ||
@@ -312,8 +315,9 @@ | ||
* @param {Function} listener Handler function that should be removed. | ||
* @param {Object} [context] Execution context (since you can add the same handler multiple times if executing in a different context). | ||
* @return {Function} Listener handler function. | ||
*/ | ||
remove : function (listener) { | ||
remove : function (listener, context) { | ||
validateListener(listener, 'remove'); | ||
var i = this._indexOfListener(listener); | ||
var i = this._indexOfListener(listener, context); | ||
if (i !== -1) { | ||
@@ -413,3 +417,3 @@ this._bindings[i]._destroy(); //no reason to a SignalBinding exist if it isn't attached to a signal | ||
if(typeof define === 'function' && define.amd){ //AMD | ||
define('signals', [], signals); | ||
define(signals); | ||
} else if (typeof module !== 'undefined' && module.exports){ //node | ||
@@ -416,0 +420,0 @@ module.exports = signals; |
@@ -6,9 +6,9 @@ /* | ||
Author: Miller Medeiros | ||
Version: 0.7.2 - Build: 248 (2012/01/12 10:39 PM) | ||
Version: 0.7.4 - Build: 252 (2012/02/24 10:30 PM) | ||
*/ | ||
(function(g){function f(a,b,c,h,d){this._listener=b;this._isOnce=c;this.context=h;this._signal=a;this._priority=d||0}function e(a,b){if(typeof a!=="function")throw Error("listener is a required param of {fn}() and should be a Function.".replace("{fn}",b));}var d={VERSION:"0.7.2"};f.prototype={active:!0,params:null,execute:function(a){var b;this.active&&this._listener&&(a=this.params?this.params.concat(a):a,b=this._listener.apply(this.context,a),this._isOnce&&this.detach());return b},detach:function(){return this.isBound()? | ||
this._signal.remove(this._listener):null},isBound:function(){return!!this._signal&&!!this._listener},getListener:function(){return this._listener},_destroy:function(){delete this._signal;delete this._listener;delete this.context},isOnce:function(){return this._isOnce},toString:function(){return"[SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}};d.Signal=function(){this._bindings=[];this._prevParams=null};d.Signal.prototype={memorize:!1,_shouldPropagate:!0, | ||
active:!0,_registerListener:function(a,b,c,d){var e=this._indexOfListener(a);if(e!==-1&&this._bindings[e].context===c){if(a=this._bindings[e],a.isOnce()!==b)throw Error("You cannot add"+(b?"":"Once")+"() then add"+(!b?"":"Once")+"() the same listener without removing the relationship first.");}else a=new f(this,a,b,c,d),this._addBinding(a);this.memorize&&this._prevParams&&a.execute(this._prevParams);return a},_addBinding:function(a){var b=this._bindings.length;do--b;while(this._bindings[b]&&a._priority<= | ||
this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a){for(var b=this._bindings.length;b--;)if(this._bindings[b]._listener===a)return b;return-1},has:function(a){return this._indexOfListener(a)!==-1},add:function(a,b,c){e(a,"add");return this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){e(a,"addOnce");return this._registerListener(a,!0,b,c)},remove:function(a){e(a,"remove");var b=this._indexOfListener(a);b!==-1&&(this._bindings[b]._destroy(),this._bindings.splice(b, | ||
(function(h){function g(a,b,c,d,e){this._listener=b;this._isOnce=c;this.context=d;this._signal=a;this._priority=e||0}function f(a,b){if(typeof a!=="function")throw Error("listener is a required param of {fn}() and should be a Function.".replace("{fn}",b));}var e={VERSION:"0.7.4"};g.prototype={active:!0,params:null,execute:function(a){var b;this.active&&this._listener&&(a=this.params?this.params.concat(a):a,b=this._listener.apply(this.context,a),this._isOnce&&this.detach());return b},detach:function(){return this.isBound()? | ||
this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},getListener:function(){return this._listener},_destroy:function(){delete this._signal;delete this._listener;delete this.context},isOnce:function(){return this._isOnce},toString:function(){return"[SignalBinding isOnce:"+this._isOnce+", isBound:"+this.isBound()+", active:"+this.active+"]"}};e.Signal=function(){this._bindings=[];this._prevParams=null};e.Signal.prototype={memorize:!1,_shouldPropagate:!0, | ||
active:!0,_registerListener:function(a,b,c,d){var e=this._indexOfListener(a,c);if(e!==-1){if(a=this._bindings[e],a.isOnce()!==b)throw Error("You cannot add"+(b?"":"Once")+"() then add"+(!b?"":"Once")+"() the same listener without removing the relationship first.");}else a=new g(this,a,b,c,d),this._addBinding(a);this.memorize&&this._prevParams&&a.execute(this._prevParams);return a},_addBinding:function(a){var b=this._bindings.length;do--b;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority); | ||
this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){for(var c=this._bindings.length,d;c--;)if(d=this._bindings[c],d._listener===a&&d.context===b)return c;return-1},has:function(a,b){return this._indexOfListener(a,b)!==-1},add:function(a,b,c){f(a,"add");return this._registerListener(a,!1,b,c)},addOnce:function(a,b,c){f(a,"addOnce");return this._registerListener(a,!0,b,c)},remove:function(a,b){f(a,"remove");var c=this._indexOfListener(a,b);c!==-1&&(this._bindings[c]._destroy(),this._bindings.splice(c, | ||
1));return a},removeAll:function(){for(var a=this._bindings.length;a--;)this._bindings[a]._destroy();this._bindings.length=0},getNumListeners:function(){return this._bindings.length},halt:function(){this._shouldPropagate=!1},dispatch:function(a){if(this.active){var b=Array.prototype.slice.call(arguments),c=this._bindings.length,d;if(this.memorize)this._prevParams=b;if(c){d=this._bindings.slice();this._shouldPropagate=!0;do c--;while(d[c]&&this._shouldPropagate&&d[c].execute(b)!==!1)}}},forget:function(){this._prevParams= | ||
null},dispose:function(){this.removeAll();delete this._bindings;delete this._prevParams},toString:function(){return"[Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}};typeof define==="function"&&define.amd?define("signals",[],d):typeof module!=="undefined"&&module.exports?module.exports=d:g.signals=d})(this); | ||
null},dispose:function(){this.removeAll();delete this._bindings;delete this._prevParams},toString:function(){return"[Signal active:"+this.active+" numListeners:"+this.getNumListeners()+"]"}};typeof define==="function"&&define.amd?define(e):typeof module!=="undefined"&&module.exports?module.exports=e:h.signals=e})(this); |
@@ -6,3 +6,3 @@ { | ||
"homepage" : "http://millermedeiros.github.com/js-signals/", | ||
"version" : "0.7.2", | ||
"version" : "0.7.4", | ||
"author" : { | ||
@@ -9,0 +9,0 @@ "name" : "Miller Medeiros", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
159553
587