 	import flash.external.ExternalInterface;
 	import flash.utils.Dictionary;
 
+	/**
+	 * JavaScript-Flash bridge.
+	 * 
+	 * @author Artem Abashev
+	 */
 	public final class FlashWarp
 	{
 		public function FlashWarp()

			if (!_isAvailable)
				throw new IllegalOperationError("External interface is not available.");
			
			functionsMap[name] = handler;
		}
		

			if (!_isAvailable)
				throw new IllegalOperationError("External interface is not available.");
			
			if (!isValidAlias(name)) throw new ArgumentError("name");
			
			if (!functionsMap[name])
				throw new IllegalOperationError("Mapping with alias '" + name + "' does not exist.");
			
			delete functionsMap[name];
		}
		
		internal function doInvoke(name:String, params:Array = null):void
		{	
			if (!_isAvailable)
				throw new IllegalOperationError("External interface is not available.");

			if (!isValidAlias(name)) throw new ArgumentError("name");
			
			if (params == null)
				params = [];
			
			ExternalInterface.call(JAVASCRIPT_ENDPOINT, _id, "exec", [name, params]);
		}
		
		internal function doBinding(name:String):Observable
		{
			if (!_isAvailable)
				throw new IllegalOperationError("External interface is not available.");
			
			if (!isValidAlias(name)) throw new ArgumentError("name");
			
			var observable:Observable = bidningsMap[name] as Observable;
			
			if (observable == null)
