 			// function.length is the number of arguments.
 			if (listener.length < _valueClasses.length)
 			{
-				var argumentString:String = (listener.length == 1) ? 'argument' : 'arguments';
+				const 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.');
 			}
 			

		/** @inheritDoc */
		public function remove(listener:Function):Function
		{
			var index:int = listeners.indexOf(listener);
			if (index == -1) return listener;
			if (listenersNeedCloning)
			{

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