Skip to content
Browse files

renamed pause/resume/stopPropagation to avoid confusions, fixed bug r…

…elated to stopPropagation before dispatch and improved README file
  • Loading branch information...
1 parent ccbe5af commit b3fdcf79e3ab94e3afbcd117d69401b0b9921eb8 @millermedeiros committed
View
34 README.markdown
@@ -6,11 +6,19 @@ Custom event/messaging system for JavaScript inspired by [AS3-Signals](https://g
## Introduction ##
-A Signal is similar to a EventTarget/EventDispatcher or a pub/sub system, the main difference is that each event kind has it's own controller and doesn't rely on strings to call proper callbacks.
+A Signal is similar to a EventTarget/EventDispatcher or a pub/sub system, the main difference is that each event kind has it's own controller and doesn't rely on strings to call proper callbacks. To know more about differences check the [Wiki page](https://github.com/millermedeiros/js-signals/wiki/Comparison-between-different-Observer-Pattern-implementations).
-Another advantage is that you can pass arbitrary parameters to callbacks and it also have some convenience methods that aren't present on other implementations of the *observer pattern*.
+This implementation is heavily inspired by [Robert Penner's AS3-Signals](https://github.com/robertpenner/as3-signals) but it has a different set of features (some extra features and some missing), the main focus is *custom events* and not replacing *native DOM events*.
-This implementation is heavily inspired by *Robert Penner's AS3-Signals* but it has a different set of features, the main focus is on *custom events* and not replacing *native DOM events*.
+## Advantages ##
+
+ - Arbitrary number of parameters to event handlers;
+ - Convenience methods that usually aren't present on other implementations of the *observer pattern*:
+ - `disable();` - disable event dispatching.
+ - `enable();` - enable event dispatching.
+ - `removeAll();` - remove all event listeners attached to specific event type.
+ - `addOnce();` - automatically remove listener after first execution.
+ - **Option to bind an execution context** to the event handler **avoiding scope issues** that are really common in JavaScript.
## Basic Example ##
@@ -39,6 +47,26 @@ This implementation is heavily inspired by *Robert Penner's AS3-Signals* but it
myObject.started.remove(onStarted);
```
+
+## Repository ##
+
+### Folder Structure ###
+
+ .\dev -> development files
+ ...\build -> files used on the build process
+ ...\src -> source files
+ ...\tests -> unit tests
+ .\dist -> distribution files
+ ...\docs -> documentation
+
+### Branches ###
+
+ master -> always contain code from the latest stable version
+ release-** -> code canditate for the next stable version (alpha/beta)
+ develop -> main development branch
+ **other** -> features/hotfixes/experimental, probably non-stable code
+
+
## Learn More ##
* [JS-Signals Wiki](http://github.com/millermedeiros/js-signals/wiki/)
View
6 build.xml
@@ -82,7 +82,11 @@
<echo message="Documentation generated" />
</target>
- <target name="all" depends="build, minify, generateDoc">
+ <target name="compile" depends="build, minify">
+ <echo message="Build Complete." />
+ </target>
+
+ <target name="all" depends="compile, generateDoc">
<echo message="Build Complete." />
</target>
View
4 dev/build/build.number
@@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
-#Fri Nov 26 19:20:57 EST 2010
-build.number=48
+#Sat Nov 27 00:54:53 EST 2010
+build.number=55
View
43 dev/src/Signal.js
@@ -25,7 +25,7 @@
* @type boolean
* @private
*/
- _isPaused : false,
+ _isEnabled : true,
/**
* @param {Function} listener
@@ -112,35 +112,34 @@
},
/**
- * Pause Signal, will block dispatch to listeners until `resume()` is called.
- * @see signals.Signal.prototype.resume
+ * Disable Signal, will block dispatch to listeners until `enable()` is called.
+ * @see signals.Signal.prototype.enable
*/
- pause : function pause(){
- this._isPaused = true;
+ disable : function disable(){
+ this._isEnabled = false;
},
/**
- * Resume Signal, enable dispatch to listeners.
- * @see signals.Signal.prototype.pause
+ * Enable broadcast to listeners.
+ * @see signals.Signal.prototype.disable
*/
- resume : function resume(){
- this._isPaused = false;
- },
+ enable : function enable(){
+ this._isEnabled = true;
+ },
/**
- * @return {boolean} If Signal is currently paused and won't broadcast event.
+ * @return {boolean} If Signal is currently enabled and will broadcast message to listeners.
*/
- isPaused : function isPaused(){
- return this._isPaused;
+ isEnabled : function isEnabled(){
+ return this._isEnabled;
},
/**
* Stop propagation of the event, blocking the dispatch to next listeners on the queue.
- * - should be called only during signal dispatch.
+ * - should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.
*/
- stopPropagation : function stopPropagation(){
+ halt : function halt(){
this._shouldPropagate = false;
- //TODO: add test to stopPropagation before dispatch
},
/**
@@ -148,25 +147,25 @@
* @param {...*} params Parameters that should be passed to each handler.
*/
dispatch : function dispatch(params){
- if(this._isPaused) return;
+ if(! this._isEnabled) return;
var paramsArr = Array.prototype.slice.call(arguments),
bindings = this._bindings.slice(), //clone array in case add/remove items during dispatch
i = 0,
cur;
-
+
+ this._shouldPropagate = true; //in case `halt` was called before dispatch or during the previous dispatch.
+
while(cur = bindings[i++]){
- if(cur.execute(paramsArr) === false || !this._shouldPropagate) break; //execute all callbacks until end of the list or until a callback returns `false`
+ if(cur.execute(paramsArr) === false || !this._shouldPropagate) break; //execute all callbacks until end of the list or until a callback returns `false` or stops propagation
}
-
- this._shouldPropagate = true;
},
/**
* @return {string} String representation of the object.
*/
toString : function toString(){
- return '[Signal isPaused: '+ this._isPaused +' numListeners: '+ this.getNumListeners() +']';
+ return '[Signal isEnabled: '+ this._isEnabled +' numListeners: '+ this.getNumListeners() +']';
}
};
View
24 dev/src/SignalBinding.js
@@ -46,7 +46,7 @@
* @type boolean
* @private
*/
- _isPaused : false,
+ _isEnabled : true,
/**
* Call listener passing arbitrary parameters.
@@ -54,33 +54,33 @@
* @return {*} Value returned by the listener.
*/
execute : function execute(paramsArr){
- if(! this._isPaused){
+ if(this._isEnabled){
if(this._isOnce) this._signal.remove(this.listener);
return this.listener.apply(this.listenerScope, paramsArr);
}
},
/**
- * Pause SignalBinding, block listener execution. Listener will only be executed after calling `resume()`.
- * @see signals.SignalBinding.resume()
+ * Disable SignalBinding, block listener execution. Listener will only be executed after calling `enable()`.
+ * @see signals.SignalBinding.enable()
*/
- pause : function pause(){
- this._isPaused = true;
+ disable : function disable(){
+ this._isEnabled = false;
},
/**
- * Resume SignalBinding, enable listener execution.
+ * Enable SignalBinding. Enable listener execution.
* @see signals.SignalBinding.pause()
*/
- resume : function resume(){
- this._isPaused = false;
+ enable : function enable(){
+ this._isEnabled = true;
},
/**
* @return {boolean} If SignalBinding is currently paused and won't execute listener during dispatch.
*/
- isPaused : function isPaused(){
- return this._isPaused;
+ isEnabled : function isEnabled(){
+ return this._isEnabled;
},
/**
@@ -94,7 +94,7 @@
* @return {string} String representation of the object.
*/
toString : function toString(){
- return '[SignalBinding listener: '+ this.listener +', isOnce: '+ this._isOnce +', isPaused: '+ this._isPaused +', listenerScope: '+ this.listenerScope +']';
+ return '[SignalBinding listener: '+ this.listener +', isOnce: '+ this._isOnce +', isEnabled: '+ this._isEnabled +', listenerScope: '+ this.listenerScope +']';
}
};
View
46 dev/tests/src/01.js
@@ -672,7 +672,7 @@ YUI().use('node', 'console', 'test', function (Y){
var n = 0;
var l1 = function(){n++};
- var l2 = function(){s.stopPropagation()};
+ var l2 = function(){s.halt()};
var l3 = function(){n++};
s.add(l1);
@@ -683,11 +683,11 @@ YUI().use('node', 'console', 'test', function (Y){
Y.Assert.areSame(1, n);
},
- //--------------------------- Pause/Resume -------------------------------//
-
- testPauseSignal : function(){
+ testStopPropagation3 : function(){
var s = this.signal;
+ s.halt();
+
var n = 0;
var l1 = function(){n++};
var l2 = function(){n++};
@@ -696,18 +696,14 @@ YUI().use('node', 'console', 'test', function (Y){
s.add(l1);
s.add(l2);
s.add(l3);
-
- Y.Assert.areSame(false, s.isPaused());
- s.dispatch();
-
- s.pause();
- Y.Assert.areSame(true, s.isPaused());
s.dispatch();
Y.Assert.areSame(3, n);
},
- testResumeSignal : function(){
+ //--------------------------- Enable/Disable -------------------------------//
+
+ testEnableDisableSignal : function(){
var s = this.signal;
var n = 0;
@@ -719,21 +715,21 @@ YUI().use('node', 'console', 'test', function (Y){
s.add(l2);
s.add(l3);
- Y.Assert.areSame(false, s.isPaused());
+ Y.Assert.areSame(true, s.isEnabled());
s.dispatch();
- s.pause();
- Y.Assert.areSame(true, s.isPaused());
+ s.disable();
+ Y.Assert.areSame(false, s.isEnabled());
s.dispatch();
- s.resume();
- Y.Assert.areSame(false, s.isPaused());
+ s.enable();
+ Y.Assert.areSame(true, s.isEnabled());
s.dispatch();
Y.Assert.areSame(6, n);
},
- testPauseBinding : function(){
+ testEnableDisableBinding : function(){
var s = this.signal;
var n = 0;
@@ -745,18 +741,18 @@ YUI().use('node', 'console', 'test', function (Y){
var b2 = s.add(l2);
var b3 = s.add(l3);
- Y.Assert.areSame(false, s.isPaused());
- Y.Assert.areSame(false, b2.isPaused());
+ Y.Assert.areSame(true, s.isEnabled());
+ Y.Assert.areSame(true, b2.isEnabled());
s.dispatch();
- b2.pause();
- Y.Assert.areSame(false, s.isPaused());
- Y.Assert.areSame(true, b2.isPaused());
+ b2.disable();
+ Y.Assert.areSame(true, s.isEnabled());
+ Y.Assert.areSame(false, b2.isEnabled());
s.dispatch();
- b2.resume();
- Y.Assert.areSame(false, s.isPaused());
- Y.Assert.areSame(false, b2.isPaused());
+ b2.enable();
+ Y.Assert.areSame(true, s.isEnabled());
+ Y.Assert.areSame(true, b2.isEnabled());
s.dispatch();
Y.Assert.areSame(8, n);
View
2 dist/docs/files.html
@@ -61,7 +61,7 @@ <h1 class="classTitle">File Index</h1>
</div>
<div class="fineprint" style="clear:both;text-align:center">
- Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Fri Nov 26 2010 18:47:08 GMT-0500 (EST)
+ Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Sat Nov 27 2010 00:54:57 GMT-0500 (EST)
| template based on Steffen Siering <a href="http://github.com/urso/jsdoc-simple">jsdoc-simple</a>.
</div>
</body>
View
2 dist/docs/index.html
@@ -85,7 +85,7 @@ <h1 class="classTitle">Class Index</h1>
</div>
<div class="fineprint" style="clear:both;text-align:center">
- Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Fri Nov 26 2010 18:47:08 GMT-0500 (EST)
+ Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Sat Nov 27 2010 00:54:57 GMT-0500 (EST)
| template based on Steffen Siering <a href="http://github.com/urso/jsdoc-simple">jsdoc-simple</a>.
</div>
</body>
View
68 dist/docs/symbolindex.html
@@ -107,6 +107,17 @@ <h1 id="classTitle">Symbol Index</h1>
</tr>
<tr class="symbolEntry">
+ <td class="symbolName">disable</td>
+ <td>
+
+ <a href="symbols/signals.Signal.html#disable">signals.Signal#disable</a>
+
+ <a href="symbols/signals.SignalBinding.html#disable">signals.SignalBinding#disable</a>
+
+ </td>
+ </tr>
+
+ <tr class="symbolEntry">
<td class="symbolName">dispatch</td>
<td>
@@ -116,6 +127,17 @@ <h1 id="classTitle">Symbol Index</h1>
</tr>
<tr class="symbolEntry">
+ <td class="symbolName">enable</td>
+ <td>
+
+ <a href="symbols/signals.Signal.html#enable">signals.Signal#enable</a>
+
+ <a href="symbols/signals.SignalBinding.html#enable">signals.SignalBinding#enable</a>
+
+ </td>
+ </tr>
+
+ <tr class="symbolEntry">
<td class="symbolName">execute</td>
<td>
@@ -134,50 +156,48 @@ <h1 id="classTitle">Symbol Index</h1>
</tr>
<tr class="symbolEntry">
- <td class="symbolName">isOnce</td>
+ <td class="symbolName">halt</td>
<td>
- <a href="symbols/signals.SignalBinding.html#isOnce">signals.SignalBinding#isOnce</a>
+ <a href="symbols/signals.Signal.html#halt">signals.Signal#halt</a>
</td>
</tr>
<tr class="symbolEntry">
- <td class="symbolName">isPaused</td>
+ <td class="symbolName">isEnabled</td>
<td>
- <a href="symbols/signals.Signal.html#isPaused">signals.Signal#isPaused</a>
+ <a href="symbols/signals.Signal.html#isEnabled">signals.Signal#isEnabled</a>
- <a href="symbols/signals.SignalBinding.html#isPaused">signals.SignalBinding#isPaused</a>
+ <a href="symbols/signals.SignalBinding.html#isEnabled">signals.SignalBinding#isEnabled</a>
</td>
</tr>
<tr class="symbolEntry">
- <td class="symbolName">listener</td>
+ <td class="symbolName">isOnce</td>
<td>
- <a href="symbols/signals.SignalBinding.html#listener">signals.SignalBinding#listener</a>
+ <a href="symbols/signals.SignalBinding.html#isOnce">signals.SignalBinding#isOnce</a>
</td>
</tr>
<tr class="symbolEntry">
- <td class="symbolName">listenerScope</td>
+ <td class="symbolName">listener</td>
<td>
- <a href="symbols/signals.SignalBinding.html#listenerScope">signals.SignalBinding#listenerScope</a>
+ <a href="symbols/signals.SignalBinding.html#listener">signals.SignalBinding#listener</a>
</td>
</tr>
<tr class="symbolEntry">
- <td class="symbolName">pause</td>
+ <td class="symbolName">listenerScope</td>
<td>
- <a href="symbols/signals.Signal.html#pause">signals.Signal#pause</a>
-
- <a href="symbols/signals.SignalBinding.html#pause">signals.SignalBinding#pause</a>
+ <a href="symbols/signals.SignalBinding.html#listenerScope">signals.SignalBinding#listenerScope</a>
</td>
</tr>
@@ -201,17 +221,6 @@ <h1 id="classTitle">Symbol Index</h1>
</tr>
<tr class="symbolEntry">
- <td class="symbolName">resume</td>
- <td>
-
- <a href="symbols/signals.Signal.html#resume">signals.Signal#resume</a>
-
- <a href="symbols/signals.SignalBinding.html#resume">signals.SignalBinding#resume</a>
-
- </td>
- </tr>
-
- <tr class="symbolEntry">
<td class="symbolName">Signal</td>
<td>
@@ -239,15 +248,6 @@ <h1 id="classTitle">Symbol Index</h1>
</tr>
<tr class="symbolEntry">
- <td class="symbolName">stopPropagation</td>
- <td>
-
- <a href="symbols/signals.Signal.html#stopPropagation">signals.Signal#stopPropagation</a>
-
- </td>
- </tr>
-
- <tr class="symbolEntry">
<td class="symbolName">toString</td>
<td>
@@ -264,7 +264,7 @@ <h1 id="classTitle">Symbol Index</h1>
</div>
<div class="fineprint" style="clear:both;text-align:center">
- Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Fri Nov 26 2010 18:47:08 GMT-0500 (EST)
+ Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Sat Nov 27 2010 00:54:57 GMT-0500 (EST)
| template based on Steffen Siering <a href="http://github.com/urso/jsdoc-simple">jsdoc-simple</a>.
</div>
</body>
View
2 dist/docs/symbols/_global_.html
@@ -101,7 +101,7 @@ <h1 class="classTitle">
<!-- ============================== footer ================================= -->
<div class="fineprint" style="clear:both;text-align:center">
- Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Fri Nov 26 2010 18:47:08 GMT-0500 (EST)
+ Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Sat Nov 27 2010 00:54:56 GMT-0500 (EST)
| template based on Steffen Siering <a href="http://github.com/urso/jsdoc-simple">jsdoc-simple</a>.
</div>
</body>
View
170 dist/docs/symbols/signals.Signal.html
@@ -80,35 +80,35 @@
</li>
<li class="fixedFont">
- <a href="../symbols/signals.Signal.html#dispatch">dispatch</a>
+ <a href="../symbols/signals.Signal.html#disable">disable</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.Signal.html#getNumListeners">getNumListeners</a>
+ <a href="../symbols/signals.Signal.html#dispatch">dispatch</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.Signal.html#isPaused">isPaused</a>
+ <a href="../symbols/signals.Signal.html#enable">enable</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.Signal.html#pause">pause</a>
+ <a href="../symbols/signals.Signal.html#getNumListeners">getNumListeners</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.Signal.html#remove">remove</a>
+ <a href="../symbols/signals.Signal.html#halt">halt</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.Signal.html#removeAll">removeAll</a>
+ <a href="../symbols/signals.Signal.html#isEnabled">isEnabled</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.Signal.html#resume">resume</a>
+ <a href="../symbols/signals.Signal.html#remove">remove</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.Signal.html#stopPropagation">stopPropagation</a>
+ <a href="../symbols/signals.Signal.html#removeAll">removeAll</a>
</li>
<li class="fixedFont">
@@ -286,16 +286,16 @@ <h1 class="classTitle">
</div>
<div class="member">
- <a name="dispatch"> </a>
+ <a name="disable"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
- <b>dispatch</b>(params)
+ <b>disable</b>()
</div>
<div class="description">
- <p>Dispatch Signal to all listeners added to the queue.</p>
+ <p>Disable Signal, will block dispatch to listeners until <code>enable()</code> is called.</p>
</div>
@@ -303,37 +303,33 @@ <h1 class="classTitle">
- <dl class="detailList">
- <dt class="heading">Parameters:</dt>
-
- <dt>
- <span class="light fixedFont">{...*}</span> <b>params</b>
-
- </dt>
- <dd>Parameters that should be passed to each handler.</dd>
-
- </dl>
+ <dl class="detailList">
+ <dt class="heading">See:</dt>
+
+ <dd>signals.Signal.prototype.enable</dd>
+
+ </dl>
</div>
<div class="member">
- <a name="getNumListeners"> </a>
+ <a name="dispatch"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
- <span class="light">{uint}</span>
- <b>getNumListeners</b>()
+
+ <b>dispatch</b>(params)
</div>
<div class="description">
-
+ <p>Dispatch Signal to all listeners added to the queue.</p>
</div>
@@ -341,33 +337,37 @@ <h1 class="classTitle">
-
-
-
-
<dl class="detailList">
- <dt class="heading">Returns:</dt>
+ <dt class="heading">Parameters:</dt>
- <dd><span class="light fixedFont">{uint}</span> Number of listeners attached to the Signal.</dd>
+ <dt>
+ <span class="light fixedFont">{...*}</span> <b>params</b>
+
+ </dt>
+ <dd>Parameters that should be passed to each handler.</dd>
</dl>
+
+
+
+
</div>
<div class="member">
- <a name="isPaused"> </a>
+ <a name="enable"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
- <span class="light">{boolean}</span>
- <b>isPaused</b>()
+
+ <b>enable</b>()
</div>
<div class="description">
-
+ <p>Enable broadcast to listeners.</p>
</div>
@@ -379,29 +379,29 @@ <h1 class="classTitle">
+
+
<dl class="detailList">
- <dt class="heading">Returns:</dt>
+ <dt class="heading">See:</dt>
- <dd><span class="light fixedFont">{boolean}</span> If Signal is currently paused and won't broadcast event.</dd>
+ <dd>signals.Signal.prototype.disable</dd>
</dl>
-
-
</div>
<div class="member">
- <a name="pause"> </a>
+ <a name="getNumListeners"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
-
- <b>pause</b>()
+ <span class="light">{uint}</span>
+ <b>getNumListeners</b>()
</div>
<div class="description">
- <p>Pause Signal, will block dispatch to listeners until <code>resume()</code> is called.</p>
+
</div>
@@ -413,29 +413,30 @@ <h1 class="classTitle">
-
-
<dl class="detailList">
- <dt class="heading">See:</dt>
+ <dt class="heading">Returns:</dt>
- <dd>signals.Signal.prototype.resume</dd>
+ <dd><span class="light fixedFont">{uint}</span> Number of listeners attached to the Signal.</dd>
</dl>
+
+
</div>
<div class="member">
- <a name="remove"> </a>
+ <a name="halt"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
- <span class="light">{Function}</span>
- <b>remove</b>(listener)
+
+ <b>halt</b>()
</div>
<div class="description">
- <p>Remove a single listener from the dispatch queue.</p>
+ <p>Stop propagation of the event, blocking the dispatch to next listeners on the queue.
+- should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.</p>
</div>
@@ -443,44 +444,26 @@ <h1 class="classTitle">
- <dl class="detailList">
- <dt class="heading">Parameters:</dt>
-
- <dt>
- <span class="light fixedFont">{Function}</span> <b>listener</b>
-
- </dt>
- <dd>Handler function that should be removed.</dd>
-
- </dl>
- <dl class="detailList">
- <dt class="heading">Returns:</dt>
-
- <dd><span class="light fixedFont">{Function}</span> Listener handler function.</dd>
-
- </dl>
-
-
</div>
<div class="member">
- <a name="removeAll"> </a>
+ <a name="isEnabled"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
-
- <b>removeAll</b>()
+ <span class="light">{boolean}</span>
+ <b>isEnabled</b>()
</div>
<div class="description">
- <p>Remove all listeners from the Signal.</p>
+
</div>
@@ -492,22 +475,29 @@ <h1 class="classTitle">
+ <dl class="detailList">
+ <dt class="heading">Returns:</dt>
+
+ <dd><span class="light fixedFont">{boolean}</span> If Signal is currently enabled and will broadcast message to listeners.</dd>
+
+ </dl>
+
</div>
<div class="member">
- <a name="resume"> </a>
+ <a name="remove"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
-
- <b>resume</b>()
+ <span class="light">{Function}</span>
+ <b>remove</b>(listener)
</div>
<div class="description">
- <p>Resume Signal, enable dispatch to listeners.</p>
+ <p>Remove a single listener from the dispatch queue.</p>
</div>
@@ -515,34 +505,44 @@ <h1 class="classTitle">
-
+ <dl class="detailList">
+ <dt class="heading">Parameters:</dt>
+
+ <dt>
+ <span class="light fixedFont">{Function}</span> <b>listener</b>
+
+ </dt>
+ <dd>Handler function that should be removed.</dd>
+
+ </dl>
<dl class="detailList">
- <dt class="heading">See:</dt>
+ <dt class="heading">Returns:</dt>
- <dd>signals.Signal.prototype.pause</dd>
+ <dd><span class="light fixedFont">{Function}</span> Listener handler function.</dd>
</dl>
+
+
</div>
<div class="member">
- <a name="stopPropagation"> </a>
+ <a name="removeAll"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
- <b>stopPropagation</b>()
+ <b>removeAll</b>()
</div>
<div class="description">
- <p>Stop propagation of the event, blocking the dispatch to next listeners on the queue.
-- should be called only during signal dispatch.</p>
+ <p>Remove all listeners from the Signal.</p>
</div>
@@ -605,7 +605,7 @@ <h1 class="classTitle">
<!-- ============================== footer ================================= -->
<div class="fineprint" style="clear:both;text-align:center">
- Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Fri Nov 26 2010 18:47:08 GMT-0500 (EST)
+ Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Sat Nov 27 2010 00:54:57 GMT-0500 (EST)
| template based on Steffen Siering <a href="http://github.com/urso/jsdoc-simple">jsdoc-simple</a>.
</div>
</body>
View
106 dist/docs/symbols/signals.SignalBinding.html
@@ -85,23 +85,23 @@
<ul>
<li class="fixedFont">
- <a href="../symbols/signals.SignalBinding.html#execute">execute</a>
+ <a href="../symbols/signals.SignalBinding.html#disable">disable</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.SignalBinding.html#isOnce">isOnce</a>
+ <a href="../symbols/signals.SignalBinding.html#enable">enable</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.SignalBinding.html#isPaused">isPaused</a>
+ <a href="../symbols/signals.SignalBinding.html#execute">execute</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.SignalBinding.html#pause">pause</a>
+ <a href="../symbols/signals.SignalBinding.html#isEnabled">isEnabled</a>
</li>
<li class="fixedFont">
- <a href="../symbols/signals.SignalBinding.html#resume">resume</a>
+ <a href="../symbols/signals.SignalBinding.html#isOnce">isOnce</a>
</li>
<li class="fixedFont">
@@ -263,16 +263,16 @@ <h1 class="classTitle">
</div>
<div class="member">
- <a name="execute"> </a>
+ <a name="disable"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
- <span class="light">{*}</span>
- <b>execute</b>(paramsArr)
+
+ <b>disable</b>()
</div>
<div class="description">
- <p>Call listener passing arbitrary parameters.</p>
+ <p>Disable SignalBinding, block listener execution. Listener will only be executed after calling <code>enable()</code>.</p>
</div>
@@ -280,44 +280,33 @@ <h1 class="classTitle">
- <dl class="detailList">
- <dt class="heading">Parameters:</dt>
-
- <dt>
- <span class="light fixedFont">{Array}</span> <b>paramsArr</b>
-
- </dt>
- <dd>Array of parameters that should be passed to the listener</dd>
-
- </dl>
+
<dl class="detailList">
- <dt class="heading">Returns:</dt>
+ <dt class="heading">See:</dt>
- <dd><span class="light fixedFont">{*}</span> Value returned by the listener.</dd>
+ <dd>signals.SignalBinding.enable()</dd>
</dl>
-
-
</div>
<div class="member">
- <a name="isOnce"> </a>
+ <a name="enable"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
- <span class="light">{boolean}</span>
- <b>isOnce</b>()
+
+ <b>enable</b>()
</div>
<div class="description">
-
+ <p>Enable SignalBinding. Enable listener execution.</p>
</div>
@@ -329,29 +318,29 @@ <h1 class="classTitle">
+
+
<dl class="detailList">
- <dt class="heading">Returns:</dt>
+ <dt class="heading">See:</dt>
- <dd><span class="light fixedFont">{boolean}</span> If SignalBinding will only be executed once.</dd>
+ <dd>signals.SignalBinding.pause()</dd>
</dl>
-
-
</div>
<div class="member">
- <a name="isPaused"> </a>
+ <a name="execute"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
- <span class="light">{boolean}</span>
- <b>isPaused</b>()
+ <span class="light">{*}</span>
+ <b>execute</b>(paramsArr)
</div>
<div class="description">
-
+ <p>Call listener passing arbitrary parameters.</p>
</div>
@@ -359,6 +348,17 @@ <h1 class="classTitle">
+ <dl class="detailList">
+ <dt class="heading">Parameters:</dt>
+
+ <dt>
+ <span class="light fixedFont">{Array}</span> <b>paramsArr</b>
+
+ </dt>
+ <dd>Array of parameters that should be passed to the listener</dd>
+
+ </dl>
+
@@ -366,7 +366,7 @@ <h1 class="classTitle">
<dl class="detailList">
<dt class="heading">Returns:</dt>
- <dd><span class="light fixedFont">{boolean}</span> If SignalBinding is currently paused and won't execute listener during dispatch.</dd>
+ <dd><span class="light fixedFont">{*}</span> Value returned by the listener.</dd>
</dl>
@@ -376,16 +376,16 @@ <h1 class="classTitle">
</div>
<div class="member">
- <a name="pause"> </a>
+ <a name="isEnabled"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
-
- <b>pause</b>()
+ <span class="light">{boolean}</span>
+ <b>isEnabled</b>()
</div>
<div class="description">
- <p>Pause SignalBinding, block listener execution. Listener will only be executed after calling <code>resume()</code>.</p>
+
</div>
@@ -397,29 +397,29 @@ <h1 class="classTitle">
-
-
<dl class="detailList">
- <dt class="heading">See:</dt>
+ <dt class="heading">Returns:</dt>
- <dd>signals.SignalBinding.resume()</dd>
+ <dd><span class="light fixedFont">{boolean}</span> If SignalBinding is currently paused and won't execute listener during dispatch.</dd>
</dl>
+
+
</div>
<div class="member">
- <a name="resume"> </a>
+ <a name="isOnce"> </a>
<div class="fixedFont">
<div class="modifiers">
</div>
-
- <b>resume</b>()
+ <span class="light">{boolean}</span>
+ <b>isOnce</b>()
</div>
<div class="description">
- <p>Resume SignalBinding, enable listener execution.</p>
+
</div>
@@ -431,15 +431,15 @@ <h1 class="classTitle">
-
-
<dl class="detailList">
- <dt class="heading">See:</dt>
+ <dt class="heading">Returns:</dt>
- <dd>signals.SignalBinding.pause()</dd>
+ <dd><span class="light fixedFont">{boolean}</span> If SignalBinding will only be executed once.</dd>
</dl>
+
+
</div>
@@ -489,7 +489,7 @@ <h1 class="classTitle">
<!-- ============================== footer ================================= -->
<div class="fineprint" style="clear:both;text-align:center">
- Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Fri Nov 26 2010 18:47:08 GMT-0500 (EST)
+ Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Sat Nov 27 2010 00:54:57 GMT-0500 (EST)
| template based on Steffen Siering <a href="http://github.com/urso/jsdoc-simple">jsdoc-simple</a>.
</div>
</body>
View
2 dist/docs/symbols/signals.html
@@ -139,7 +139,7 @@ <h1 class="classTitle">
<!-- ============================== footer ================================= -->
<div class="fineprint" style="clear:both;text-align:center">
- Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Fri Nov 26 2010 18:47:08 GMT-0500 (EST)
+ Documentation generated by <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blankt">JsDoc Toolkit</a> 2.4.0 on Sat Nov 27 2010 00:54:56 GMT-0500 (EST)
| template based on Steffen Siering <a href="http://github.com/urso/jsdoc-simple">jsdoc-simple</a>.
</div>
</body>
View
295 dist/docs/symbols/src/D__Projetos_millermedeiros_js-signals_dist_js-signals.js.html
@@ -9,8 +9,8 @@
<span class='line'> 2</span> * JS Signals &lt;https://github.com/millermedeiros/js-signals>
<span class='line'> 3</span> * Released under the MIT license (http://www.opensource.org/licenses/mit-license.php)
<span class='line'> 4</span> * @author Miller Medeiros &lt;http://millermedeiros.com>
-<span class='line'> 5</span> * @version 0.0.1
-<span class='line'> 6</span> * @build 46 11/26/2010 06:34 PM
+<span class='line'> 5</span> * @version 0.2
+<span class='line'> 6</span> * @build 54 11/27/2010 12:54 AM
<span class='line'> 7</span> */</span><span class="WHIT">
<span class='line'> 8</span> </span><span class="PUNC">(</span><span class="KEYW">function</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'> 9</span> </span><span class="WHIT"> </span><span class="WHIT">
@@ -46,7 +46,7 @@
<span class='line'> 39</span> * @type boolean
<span class='line'> 40</span> * @private
<span class='line'> 41</span> */</span><span class="WHIT">
-<span class='line'> 42</span> </span><span class="WHIT"> </span><span class="NAME">_isPaused</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'> 42</span> </span><span class="WHIT"> </span><span class="NAME">_isEnabled</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'> 43</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'> 44</span> </span><span class="WHIT"> </span><span class="COMM">/**
<span class='line'> 45</span> * @param {Function} listener
@@ -133,163 +133,162 @@
<span class='line'>126</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>127</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>128</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>129</span> * Pause Signal, will block dispatch to listeners until `resume()` is called.
-<span class='line'>130</span> * @see signals.Signal.prototype.resume
+<span class='line'>129</span> * Disable Signal, will block dispatch to listeners until `enable()` is called.
+<span class='line'>130</span> * @see signals.Signal.prototype.enable
<span class='line'>131</span> */</span><span class="WHIT">
-<span class='line'>132</span> </span><span class="WHIT"> </span><span class="NAME">pause</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">pause</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>133</span> </span><span class="WHIT"> </span><span class="NAME">this._isPaused</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>132</span> </span><span class="WHIT"> </span><span class="NAME">disable</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">disable</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>133</span> </span><span class="WHIT"> </span><span class="NAME">this._isEnabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>134</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>135</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>136</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>137</span> * Resume Signal, enable dispatch to listeners.
-<span class='line'>138</span> * @see signals.Signal.prototype.pause
+<span class='line'>137</span> * Enable broadcast to listeners.
+<span class='line'>138</span> * @see signals.Signal.prototype.disable
<span class='line'>139</span> */</span><span class="WHIT">
-<span class='line'>140</span> </span><span class="WHIT"> </span><span class="NAME">resume</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">resume</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>141</span> </span><span class="WHIT"> </span><span class="NAME">this._isPaused</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>142</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>140</span> </span><span class="WHIT"> </span><span class="NAME">enable</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">enable</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>141</span> </span><span class="WHIT"> </span><span class="NAME">this._isEnabled</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>142</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>143</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>144</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>145</span> * @return {boolean} If Signal is currently paused and won't broadcast event.
+<span class='line'>145</span> * @return {boolean} If Signal is currently enabled and will broadcast message to listeners.
<span class='line'>146</span> */</span><span class="WHIT">
-<span class='line'>147</span> </span><span class="WHIT"> </span><span class="NAME">isPaused</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">isPaused</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>148</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._isPaused</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>147</span> </span><span class="WHIT"> </span><span class="NAME">isEnabled</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">isEnabled</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>148</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._isEnabled</span><span class="PUNC">;</span><span class="WHIT">
<span class='line'>149</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
<span class='line'>150</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>151</span> </span><span class="WHIT"> </span><span class="COMM">/**
<span class='line'>152</span> * Stop propagation of the event, blocking the dispatch to next listeners on the queue.
-<span class='line'>153</span> * - should be called only during signal dispatch.
+<span class='line'>153</span> * - should be called only during signal dispatch, calling it before/after dispatch won't affect signal broadcast.
<span class='line'>154</span> */</span><span class="WHIT">
-<span class='line'>155</span> </span><span class="WHIT"> </span><span class="NAME">stopPropagation</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">stopPropagation</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>155</span> </span><span class="WHIT"> </span><span class="NAME">halt</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">halt</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
<span class='line'>156</span> </span><span class="WHIT"> </span><span class="NAME">this._shouldPropagate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>157</span> </span><span class="WHIT"> </span><span class="COMM">//TODO: add test to stopPropagation before dispatch</span><span class="WHIT">
-<span class='line'>158</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>159</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>160</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>161</span> * Dispatch Signal to all listeners added to the queue.
-<span class='line'>162</span> * @param {...*} params Parameters that should be passed to each handler.
-<span class='line'>163</span> */</span><span class="WHIT">
-<span class='line'>164</span> </span><span class="WHIT"> </span><span class="NAME">dispatch</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">dispatch</span><span class="PUNC">(</span><span class="NAME">params</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>165</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._isPaused</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>166</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>167</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">paramsArr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Array.prototype.slice.call</span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>168</span> </span><span class="WHIT"> </span><span class="NAME">bindings</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._bindings.slice</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">//clone array in case add/remove items during dispatch</span><span class="WHIT">
-<span class='line'>169</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>170</span> </span><span class="WHIT"> </span><span class="NAME">cur</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>171</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>172</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">cur</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">bindings</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>173</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">cur.execute</span><span class="PUNC">(</span><span class="NAME">paramsArr</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this._shouldPropagate</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//execute all callbacks until end of the list or until a callback returns `false`</span><span class="WHIT">
-<span class='line'>174</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>175</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>176</span> </span><span class="WHIT"> </span><span class="NAME">this._shouldPropagate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>177</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>178</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>179</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>180</span> * @return {string} String representation of the object.
-<span class='line'>181</span> */</span><span class="WHIT">
-<span class='line'>182</span> </span><span class="WHIT"> </span><span class="NAME">toString</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>183</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'[Signal isPaused: '</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this._isPaused</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">' numListeners: '</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.getNumListeners</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">']'</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>184</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>185</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>186</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>187</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>188</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>189</span> * Class that represents a Signal Binding.
-<span class='line'>190</span> * &lt;br />- Constructor probably won't need to be called by end-user.
-<span class='line'>191</span> * &lt;br />- inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes.
-<span class='line'>192</span> * @author Miller Medeiros
-<span class='line'>193</span> * @constructor
-<span class='line'>194</span> * @param {Function} listener Handler function binded to the signal.
-<span class='line'>195</span> * @param {boolean} isOnce If binding should be executed just once.
-<span class='line'>196</span> * @param {Object} listenerScope Context on which listener will be executed (object that should represent the `this` variable inside listener function).
-<span class='line'>197</span> * @param {signals.Signal} signal Reference to Signal object that listener is currently binded to.
-<span class='line'>198</span> */</span><span class="WHIT">
-<span class='line'>199</span> </span><span class="WHIT"> </span><span class="NAME">signals.SignalBinding</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">SignalBinding</span><span class="PUNC">(</span><span class="NAME">listener</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">isOnce</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listenerScope</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">signal</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>200</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>201</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>202</span> * Handler function binded to the signal.
-<span class='line'>203</span> * @type Function
-<span class='line'>204</span> */</span><span class="WHIT">
-<span class='line'>205</span> </span><span class="WHIT"> </span><span class="NAME">this.listener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>206</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>207</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>208</span> * If binding should be executed just once.
-<span class='line'>209</span> * @type boolean
-<span class='line'>210</span> * @private
-<span class='line'>211</span> */</span><span class="WHIT">
-<span class='line'>212</span> </span><span class="WHIT"> </span><span class="NAME">this._isOnce</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">isOnce</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>213</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>214</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>215</span> * Context on which listener will be executed (object that should represent the `this` variable inside listener function).
-<span class='line'>216</span> * @type Object
-<span class='line'>217</span> */</span><span class="WHIT">
-<span class='line'>218</span> </span><span class="WHIT"> </span><span class="NAME">this.listenerScope</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">listenerScope</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>219</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>220</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>221</span> * Reference to Signal object that listener is currently binded to.
-<span class='line'>222</span> * @type signals.Signal
-<span class='line'>223</span> * @private
-<span class='line'>224</span> */</span><span class="WHIT">
-<span class='line'>225</span> </span><span class="WHIT"> </span><span class="NAME">this._signal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">signal</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>226</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>157</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>158</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>159</span> </span><span class="WHIT"> </span><span class="COMM">/**
+<span class='line'>160</span> * Dispatch Signal to all listeners added to the queue.
+<span class='line'>161</span> * @param {...*} params Parameters that should be passed to each handler.
+<span class='line'>162</span> */</span><span class="WHIT">
+<span class='line'>163</span> </span><span class="WHIT"> </span><span class="NAME">dispatch</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">dispatch</span><span class="PUNC">(</span><span class="NAME">params</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>164</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="WHIT"> </span><span class="NAME">this._isEnabled</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">return</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>165</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>166</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">paramsArr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Array.prototype.slice.call</span><span class="PUNC">(</span><span class="NAME">arguments</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>167</span> </span><span class="WHIT"> </span><span class="NAME">bindings</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this._bindings.slice</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">//clone array in case add/remove items during dispatch</span><span class="WHIT">
+<span class='line'>168</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>169</span> </span><span class="WHIT"> </span><span class="NAME">cur</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>170</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>171</span> </span><span class="WHIT"> </span><span class="NAME">this._shouldPropagate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//in case `halt` was called before dispatch or during the previous dispatch.</span><span class="WHIT">
+<span class='line'>172</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>173</span> </span><span class="WHIT"> </span><span class="KEYW">while</span><span class="PUNC">(</span><span class="NAME">cur</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">bindings</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>174</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">cur.execute</span><span class="PUNC">(</span><span class="NAME">paramsArr</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">!</span><span class="NAME">this._shouldPropagate</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="COMM">//execute all callbacks until end of the list or until a callback returns `false` or stops propagation</span><span class="WHIT">
+<span class='line'>175</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>176</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
+<span class='line'>177</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>178</span> </span><span class="WHIT"> </span><span class="COMM">/**
+<span class='line'>179</span> * @return {string} String representation of the object.
+<span class='line'>180</span> */</span><span class="WHIT">
+<span class='line'>181</span> </span><span class="WHIT"> </span><span class="NAME">toString</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>182</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'[Signal isEnabled: '</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this._isEnabled</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">' numListeners: '</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.getNumListeners</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">']'</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>183</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
+<span class='line'>184</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>185</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>186</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>187</span> </span><span class="WHIT"> </span><span class="COMM">/**
+<span class='line'>188</span> * Class that represents a Signal Binding.
+<span class='line'>189</span> * &lt;br />- Constructor probably won't need to be called by end-user.
+<span class='line'>190</span> * &lt;br />- inspired by Joa Ebert AS3 SignalBinding and Robert Penner's Slot classes.
+<span class='line'>191</span> * @author Miller Medeiros
+<span class='line'>192</span> * @constructor
+<span class='line'>193</span> * @param {Function} listener Handler function binded to the signal.
+<span class='line'>194</span> * @param {boolean} isOnce If binding should be executed just once.
+<span class='line'>195</span> * @param {Object} listenerScope Context on which listener will be executed (object that should represent the `this` variable inside listener function).
+<span class='line'>196</span> * @param {signals.Signal} signal Reference to Signal object that listener is currently binded to.
+<span class='line'>197</span> */</span><span class="WHIT">
+<span class='line'>198</span> </span><span class="WHIT"> </span><span class="NAME">signals.SignalBinding</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">SignalBinding</span><span class="PUNC">(</span><span class="NAME">listener</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">isOnce</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">listenerScope</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">signal</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
+<span class='line'>199</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>200</span> </span><span class="WHIT"> </span><span class="COMM">/**
+<span class='line'>201</span> * Handler function binded to the signal.
+<span class='line'>202</span> * @type Function
+<span class='line'>203</span> */</span><span class="WHIT">
+<span class='line'>204</span> </span><span class="WHIT"> </span><span class="NAME">this.listener</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">listener</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>205</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>206</span> </span><span class="WHIT"> </span><span class="COMM">/**
+<span class='line'>207</span> * If binding should be executed just once.
+<span class='line'>208</span> * @type boolean
+<span class='line'>209</span> * @private
+<span class='line'>210</span> */</span><span class="WHIT">
+<span class='line'>211</span> </span><span class="WHIT"> </span><span class="NAME">this._isOnce</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">isOnce</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>212</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>213</span> </span><span class="WHIT"> </span><span class="COMM">/**
+<span class='line'>214</span> * Context on which listener will be executed (object that should represent the `this` variable inside listener function).
+<span class='line'>215</span> * @type Object
+<span class='line'>216</span> */</span><span class="WHIT">
+<span class='line'>217</span> </span><span class="WHIT"> </span><span class="NAME">this.listenerScope</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">listenerScope</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>218</span> </span><span class="WHIT"> </span><span class="WHIT">
+<span class='line'>219</span> </span><span class="WHIT"> </span><span class="COMM">/**
+<span class='line'>220</span> * Reference to Signal object that listener is currently binded to.
+<span class='line'>221</span> * @type signals.Signal
+<span class='line'>222</span> * @private
+<span class='line'>223</span> */</span><span class="WHIT">
+<span class='line'>224</span> </span><span class="WHIT"> </span><span class="NAME">this._signal</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">signal</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>225</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
+<span class='line'>226</span> </span><span class="WHIT"> </span><span class="WHIT">
<span class='line'>227</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>228</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>229</span> </span><span class="WHIT"> </span><span class="NAME">signals.SignalBinding.prototype</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>230</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>231</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>232</span> * @type boolean
-<span class='line'>233</span> * @private
-<span class='line'>234</span> */</span><span class="WHIT">
-<span class='line'>235</span> </span><span class="WHIT"> </span><span class="NAME">_isPaused</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>236</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>237</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>238</span> * Call listener passing arbitrary parameters.
-<span class='line'>239</span> * @param {Array} paramsArr Array of parameters that should be passed to the listener
-<span class='line'>240</span> * @return {*} Value returned by the listener.
-<span class='line'>241</span> */</span><span class="WHIT">
-<span class='line'>242</span> </span><span class="WHIT"> </span><span class="NAME">execute</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">execute</span><span class="PUNC">(</span><span class="NAME">paramsArr</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>243</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="PUNC">!</span><span class="WHIT"> </span><span class="NAME">this._isPaused</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>244</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="PUNC">(</span><span class="NAME">this._isOnce</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="NAME">this._signal.remove</span><span class="PUNC">(</span><span class="NAME">this.listener</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>245</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this.listener.apply</span><span class="PUNC">(</span><span class="NAME">this.listenerScope</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">paramsArr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>246</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
-<span class='line'>247</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>248</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>249</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>250</span> * Pause SignalBinding, block listener execution. Listener will only be executed after calling `resume()`.
-<span class='line'>251</span> * @see signals.SignalBinding.resume()
-<span class='line'>252</span> */</span><span class="WHIT">
-<span class='line'>253</span> </span><span class="WHIT"> </span><span class="NAME">pause</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">pause</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>254</span> </span><span class="WHIT"> </span><span class="NAME">this._isPaused</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">true</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>255</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>256</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>257</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>258</span> * Resume SignalBinding, enable listener execution.
-<span class='line'>259</span> * @see signals.SignalBinding.pause()
-<span class='line'>260</span> */</span><span class="WHIT">
-<span class='line'>261</span> </span><span class="WHIT"> </span><span class="NAME">resume</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">resume</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>262</span> </span><span class="WHIT"> </span><span class="NAME">this._isPaused</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>263</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>264</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>265</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>266</span> * @return {boolean} If SignalBinding is currently paused and won't execute listener during dispatch.
-<span class='line'>267</span> */</span><span class="WHIT">
-<span class='line'>268</span> </span><span class="WHIT"> </span><span class="NAME">isPaused</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">isPaused</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>269</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._isPaused</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>270</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>271</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>272</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>273</span> * @return {boolean} If SignalBinding will only be executed once.
-<span class='line'>274</span> */</span><span class="WHIT">
-<span class='line'>275</span> </span><span class="WHIT"> </span><span class="NAME">isOnce</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">isOnce</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>276</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">this._isOnce</span><span class="PUNC">;</span><span class="WHIT">
-<span class='line'>277</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
-<span class='line'>278</span> </span><span class="WHIT"> </span><span class="WHIT">
-<span class='line'>279</span> </span><span class="WHIT"> </span><span class="COMM">/**
-<span class='line'>280</span> * @return {string} String representation of the object.
-<span class='line'>281</span> */</span><span class="WHIT">
-<span class='line'>282</span> </span><span class="WHIT"> </span><span class="NAME">toString</span><span class="WHIT"> </span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="NAME">toString</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">{</span><span class="WHIT">
-<span class='line'>283</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="STRN">'[SignalBinding listener: '</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.listener</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">', isOnce: '</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this._isOnce</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">', isPaused: '</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this._isPaused</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">', listenerScope: '</span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">this.listenerScope</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="STRN">']'</span><span class="PUNC">;</span><span class="WHIT">