- Signals are now MXML-friendly! Example:
<signals:Signal id="nameChanged">{[String, uint]}</signals:Signal>
- Constructors are now nullable.
- valueClasses and eventClass are now writable.
- Exceptions: NativeMappedSignal and NativeRelaySignal are not yet MXML-friendly.
- Renamed IDeluxeSignal to IPrioritySignal, a more functional name.
- New interfaces to grant access to methods that affect all listeners:
- ISignalOwner: extends ISignal, IDispatcher, adds removeAll().
- INativeSignalOwner: extends IPrioritySignal, INativeDispatcher, adds removeAll().
- These 2 interfaces cannot be merged because dispatch(event:Event) conflicts with dispatch(…valueObjects).
- Thanks to Brian Heylin for getting the ball rolling.
- #24 – Changing NativeSignal.target wasn’t removing listeners from target.
- #32 – FIX: Setting NativeSignal.eventClass to null and dispatching causes null exception.
- Added continuous integration and unit test execution Ant targets: “ci” and “test”.
- Updated AsUnit 4 SWC: test failure call stack is more concise and readable.
- Removed build-asunit.xml as its functionality has been merged into build.xml.
- Added NativeMappedSignal class from Brian Heylin, with great test coverage.
- DeluxeSignal has a simpler way to continue bubbling without re-dispatching the event.
- ISignal and IDeluxeSignal: add(), addOnce() and remove() now return the listener.
- Thanks to sammyt for the contribution with unit tests.
- Improved error message for Signal.dispatch() with too few arguments.
- The test suite is migrated to a newer version of AsUnit 4.
- Tests now receive an IAsync using [Inject]. No more Asyncleton!
- The migration pattern can be seen in commit f6878.
- AllTestsRunner uses a new composition pattern instead of inheritance.
- Many thanks to Luke Bayes and the Bay Area Computer Club.
- Added more tests for argument dispatching and consolidated in SignalDispatchArgsTest.
- Optimized listeners array cloning to use slice(), which is faster than concat().
- Optimized dispatch() by moving the cloning of listeners to add(), addOnce(), and remove().
- Signal.removeAll() now uses remove() on every listener, instead of fast array clearing. This is intended to avoid possible issues with subclass overrides (as happened before with NativeRelaySignal.remove()).
- Renamed createListenerRelationship() to registerListener().
- Consolidated add() and addOnce() logic in registerListener().
- Removed onceListeners Dictionary from DeluxeSignal and NativeSignal.
- DeluxeSignal and NativeSignal are now more unified in their “once listeners” internal implementations.
- Removed an extra semicolon which made FDT cry (thanks vitch).
- Removed async [Test] metadata because AsUnit 4 no longer uses it.
- Updated the AsUnit 4 SWC to newer version which avoids slowdown of Timers in Flash Player 10.1.
- Added tests for ambiguous relationships in Signal.
- Added tests for adding a listener during a dispatch().
- Added versioning to the Ant build, starting at 0.5.