 			// Validate value objects against pre-defined value classes.
 			var valueObject:Object;
 			var valueClass:Class;
-			var numValueClasses:int = _valueClasses.length;
+			const numValueClasses:uint = _valueClasses.length;
 			if (valueObjects.length < numValueClasses)
 			{
 				throw new ArgumentError('Incorrect number of arguments. Expected at least ' + numValueClasses + ' but received ' + valueObjects.length + '.');

			// function.length is the number of arguments.
			if (listener.length < _valueClasses.length)
			{
				var argumentString:String = (listener.length == 1) ? 'argument' : 'arguments';
				throw new ArgumentError('Listener has '+listener.length+' '+argumentString+' but it needs at least '+_valueClasses.length+' to match the given value classes.');
			}
			

					break;
					
				case 1:
					const singleValue:Object = valueObjects[0];
					for each (listener in listeners)
					{
						if (onceListeners[listener]) remove(listener);
						listener(singleValue);
					}
					break;
					
