You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/03/24 20:59:22 UTC

[01/37] git commit: [flex-asjs] [refs/heads/spark] - Added WebBrowser component. For SWF, it uses HTMLLoader. For JS, it uses iFrame. In the Mobile project, a special view bead uses StageWebView.

Repository: flex-asjs
Updated Branches:
  refs/heads/spark 416f7be35 -> a23bd593f


Added WebBrowser component. For SWF, it uses HTMLLoader. For JS, it uses iFrame. In the Mobile project, a special view bead uses StageWebView.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/18deeaec
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/18deeaec
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/18deeaec

Branch: refs/heads/spark
Commit: 18deeaecfef2035032ef56f2f1b12bba70bedd59
Parents: 9080199
Author: Peter Ent <pe...@apache.org>
Authored: Tue Feb 9 16:50:52 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Tue Feb 9 16:50:52 2016 -0500

----------------------------------------------------------------------
 .../projects/HTML/src/main/flex/HTMLClasses.as  |   3 +
 .../flex/org/apache/flex/html/WebBrowser.as     | 145 ++++++++++++++
 .../apache/flex/html/beads/WebBrowserView.as    | 198 +++++++++++++++++++
 .../flex/html/beads/models/WebBrowserModel.as   | 100 ++++++++++
 .../HTML/src/main/resources/basic-manifest.xml  |   2 +
 .../HTML/src/main/resources/defaults.css        |   6 +
 .../Mobile/src/main/flex/MobileClasses.as       |   4 +
 .../flex/mobile/beads/MobileWebBrowserView.as   | 129 ++++++++++++
 8 files changed, 587 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/18deeaec/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
index 052ab95..80073e7 100644
--- a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
+++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
@@ -163,6 +163,9 @@ internal class HTMLClasses
     import org.apache.flex.html.MXMLBeadViewBase; MXMLBeadViewBase;
     import org.apache.flex.html.beads.TitleBarView; TitleBarView;
     import org.apache.flex.html.beads.TitleBarMeasurementBead; TitleBarMeasurementBead;
+	
+	import org.apache.flex.html.beads.WebBrowserView; WebBrowserView;
+	import org.apache.flex.html.beads.models.WebBrowserModel; WebBrowserModel;
 
 	COMPILE::AS3
 	{

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/18deeaec/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/WebBrowser.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/WebBrowser.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/WebBrowser.as
new file mode 100644
index 0000000..009a508
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/WebBrowser.as
@@ -0,0 +1,145 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html
+{
+	COMPILE::AS3 {
+		import flash.events.Event;
+		import flash.html.HTMLLoader;
+		import flash.net.URLRequest;
+
+		import org.apache.flex.events.utils.IHandlesOriginalEvent;
+	}
+	COMPILE::JS
+	{
+		import org.apache.flex.core.WrappedHTMLElement;
+	}
+
+	import org.apache.flex.core.UIBase
+	import org.apache.flex.html.beads.models.WebBrowserModel;
+
+	/**
+	 * Dispatched whenever the WebBrowser's location has been changed.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	[Event(name="locationChanged", type="org.apache.flex.events.Event")]
+
+	/**
+	 * The WebBrowser provides a space in which to display a web page within
+	 * a FlexJS application. Use the url property to change the location of
+	 * the web page being displayed.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	COMPILE::AS3
+	public class WebBrowser extends UIBase implements IHandlesOriginalEvent
+	{
+		/**
+		 * Constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function WebBrowser()
+		{
+			super();
+		}
+
+		/**
+		 * The location of the web page to display. Security restrictions may
+		 * apply.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get url():String
+		{
+			return (model as WebBrowserModel).url;
+		}
+
+		public function set url(value:String):void
+		{
+			(model as WebBrowserModel).url = value;
+		}
+	}
+
+	COMPILE::JS
+	public class WebBrowser extends UIBase
+	{
+		/**
+		 * Constructor
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function WebBrowser()
+		{
+			super();
+		}
+
+		/**
+		 * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+		 */
+		override protected function createElement():WrappedHTMLElement
+		{
+			element = document.createElement('iframe') as WrappedHTMLElement;
+			element.flexjs_wrapper = this;
+
+			var iframe:HTMLIFrameElement = element as HTMLIFrameElement;
+			iframe.frameBorder = "0";
+			iframe.src = "JavaScript:''";
+			iframe.sandbox = "allow-top-navigation allow-forms allow-scripts";
+
+			positioner = element;
+
+			return element;
+		}
+		
+		/**
+		 * The location of the web page to display. Security restrictions may
+		 * apply.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get url():String
+		{
+			return (model as WebBrowserModel).url;
+		}
+
+		public function set url(value:String):void
+		{
+			(model as WebBrowserModel).url = value;
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/18deeaec/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
new file mode 100644
index 0000000..cb14971
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
@@ -0,0 +1,198 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.beads
+{
+	COMPILE::AS3 {
+		import flash.events.Event;
+		import flash.html.HTMLLoader;
+		import flash.net.URLRequest;
+	}
+
+	import org.apache.flex.core.IBeadView;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.IUIBase;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.html.beads.models.WebBrowserModel;
+
+	/**
+	 *  The WebBrowserView creates an instance of HTMLLoader to load
+	 *  web pages into AIR application.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	COMPILE::AS3
+	public class WebBrowserView implements IBeadView
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function WebBrowserView()
+		{
+			loader = new HTMLLoader();
+			loader.placeLoadStringContentInApplicationSandbox = false;
+
+			loader.addEventListener(flash.events.LocationChangeEvent.LOCATION_CHANGE, handleLocationChange);
+		}
+
+		private var _strand:IStrand;
+
+		private var loader:HTMLLoader;
+
+		/**
+		 * @private
+		 */
+		public function get host():IUIBase
+		{
+			return _strand as IUIBase;
+		}
+
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+
+			(host as UIBase).addEventListener("widthChanged", handleSizeChange);
+			(host as UIBase).addEventListener("heightChanged", handleSizeChange);
+
+			var model:IEventDispatcher = (host as UIBase).model as IEventDispatcher;
+			model.addEventListener("urlChanged", loadPage);
+
+			loader.x = 0;
+			loader.y = 0;
+			loader.width = host.width;
+			loader.height = host.height;
+			(host as UIBase).addElement(loader);
+		}
+
+		/**
+		 * @private
+		 */
+		private function loadPage(event:org.apache.flex.events.Event):void
+		{
+			var model:WebBrowserModel = (host as UIBase).model as WebBrowserModel;
+			loader.load(new URLRequest(model.url));
+		}
+
+		/**
+		 * @private
+		 */
+		private function handleSizeChange(event:org.apache.flex.events.Event):void
+		{
+			loader.width = host.width;
+			loader.height = host.height;
+		}
+
+		/**
+		 * @private
+		 */
+		private function handleLocationChange(event:flash.events.LocationChangeEvent):void
+		{
+			var model:WebBrowserModel = (host as UIBase).model as WebBrowserModel;
+			model.setURL(loader.location);
+			host.dispatchEvent(new org.apache.flex.events.Event("locationChanged"));
+		}
+	}
+
+	COMPILE::JS
+	public class WebBrowserView implements IBeadView
+	{
+		/**
+		 * Constructor
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function WebBrowserView()
+		{
+
+		}
+
+		private var _strand:IStrand;
+
+		/**
+		 * @private
+		 */
+		public function get host():IUIBase
+		{
+			return _strand as IUIBase;
+		}
+
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+
+			var model:IEventDispatcher = (host as UIBase).model as IEventDispatcher;
+			model.addEventListener("urlChanged", loadPage);
+
+			var iframe:HTMLIFrameElement = (host as UIBase).element as HTMLIFrameElement;
+			iframe.addEventListener("pageshow", handlePageShow, false);
+		}
+
+		/**
+		 * @private
+		 */
+		private function loadPage(event:Event):void
+		{
+			var model:WebBrowserModel = (host as UIBase).model as WebBrowserModel;
+
+			var iframe:HTMLIFrameElement = (host as UIBase).element as HTMLIFrameElement;
+			iframe.src = model.url;
+		}
+
+		/**
+		 * @private
+		 */
+		private function handlePageShow(event:Event):void
+		{
+			var model:WebBrowserModel = (host as UIBase).model as WebBrowserModel;
+			var iframe:HTMLIFrameElement = (host as UIBase).element as HTMLIFrameElement;
+
+			model.setURL(iframe.src);
+			host.dispatchEvent(new org.apache.flex.events.Event("locationChanged"));
+		}
+	}
+}
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/18deeaec/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/WebBrowserModel.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/WebBrowserModel.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/WebBrowserModel.as
new file mode 100644
index 0000000..fbd823a
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/WebBrowserModel.as
@@ -0,0 +1,100 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.beads.models
+{
+	import org.apache.flex.core.IBeadModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.EventDispatcher;
+
+	/**
+	 *  The WebBrowserModel class bead defines the data associated with an org.apache.flex.html.WebBrowser
+	 *  component.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class WebBrowserModel extends EventDispatcher implements IBeadModel
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function WebBrowserModel()
+		{
+			super();
+		}
+
+		private var _strand:IStrand;
+
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+		}
+
+		private var _url:String;
+
+		/**
+		 *  The URL to load into the WebBrowser.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get url():String
+		{
+			return _url;
+		}
+		public function set url(value:String):void
+		{
+			if (value != _url) {
+				_url = value;
+				dispatchEvent( new Event("urlChanged") );
+			}
+		}
+
+		/**
+		 * Sets the URL value without dispatching an event.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function setURL(value:String):void
+		{
+		    _url = value;
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/18deeaec/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
index 23dcccc..3b72af6 100644
--- a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
@@ -101,5 +101,7 @@
     <component id="MXMLBeadViewBase" class="org.apache.flex.html.MXMLBeadViewBase"/>
 
     <component id="Border" class="org.apache.flex.html.supportClasses.Border"/>
+    
+    <component id="WebBrowser" class="org.apache.flex.html.WebBrowser" />
 
 </componentPackage>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/18deeaec/frameworks/projects/HTML/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/resources/defaults.css b/frameworks/projects/HTML/src/main/resources/defaults.css
index bb8ca6e..13d7418 100644
--- a/frameworks/projects/HTML/src/main/resources/defaults.css
+++ b/frameworks/projects/HTML/src/main/resources/defaults.css
@@ -336,6 +336,12 @@ ViewBase
 	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
 }
 
+WebBrowser
+{
+	IBeadView: ClassReference("org.apache.flex.html.beads.WebBrowserView");
+	IBeadModel: ClassReference("org.apache.flex.html.beads.models.WebBrowserModel");
+}
+
 
 /* Global Style Declaration */
 global

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/18deeaec/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as b/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
index fc933aa..8643954 100644
--- a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
+++ b/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
@@ -37,6 +37,10 @@ internal class MobileClasses
 	import org.apache.flex.mobile.chrome.TabBar; TabBar;
 	import org.apache.flex.mobile.chrome.ToolBar; ToolBar;
 	import org.apache.flex.mobile.models.ViewManagerModel; ViewManagerModel;
+	
+	COMPILE::AS3 {
+		import org.apache.flex.mobile.beads.MobileWebBrowserView; MobileWebBrowserView;
+	}
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/18deeaec/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/MobileWebBrowserView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/MobileWebBrowserView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/MobileWebBrowserView.as
new file mode 100644
index 0000000..686d94f
--- /dev/null
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/MobileWebBrowserView.as
@@ -0,0 +1,129 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.mobile.beads
+{
+	import flash.events.Event;
+	import flash.media.StageWebView;
+	import flash.geom.Rectangle;
+	import flash.geom.Point;
+
+	import org.apache.flex.core.IBeadView;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.IUIBase;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.html.beads.models.WebBrowserModel;
+
+	/**
+	 *  The MobileWebBrowserView creates an instance of StageWebView to load
+	 *  web pages into a mobile application. This class is available only
+	 *  for AS3 compiled mode. Note that StageWebView is attached directly to
+	 *  the stage and may obscure other components.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class MobileWebBrowserView implements IBeadView
+	{
+		/**
+		 *  constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function MobileWebBrowserView()
+		{
+			stageWebView = new StageWebView();
+
+			stageWebView.addEventListener(flash.events.Event.COMPLETE, handleLocationChange);
+		}
+
+		private var _strand:IStrand;
+
+		private var stageWebView:StageWebView;
+
+		/**
+		 * @private
+		 */
+		public function get host():IUIBase
+		{
+			return _strand as IUIBase;
+		}
+
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+
+			(host as UIBase).addEventListener("widthChanged", handleSizeChange);
+			(host as UIBase).addEventListener("heightChanged", handleSizeChange);
+
+			var model:IEventDispatcher = (host as UIBase).model as IEventDispatcher;
+			model.addEventListener("urlChanged", loadPage);
+
+			stageWebView.stage = (host as UIBase).stage;
+			
+			var hostOrigin:Point = new Point(0,0);
+			var hostPosition:Point = (host as UIBase).localToGlobal(hostOrigin);
+			stageWebView.viewPort = new Rectangle( hostPosition.x, hostPosition.y, host.width, host.height );
+		}
+
+		/**
+		 * @private
+		 */
+		private function loadPage(event:org.apache.flex.events.Event):void
+		{
+			var model:WebBrowserModel = (host as UIBase).model as WebBrowserModel;
+			stageWebView.loadURL(model.url);
+		}
+
+		/**
+		 * @private
+		 */
+		private function handleSizeChange(event:org.apache.flex.events.Event):void
+		{
+			var hostOrigin:Point = new Point(0,0);
+			var hostPosition:Point = (host as UIBase).localToGlobal(hostOrigin);
+			stageWebView.viewPort = new Rectangle( hostPosition.x, hostPosition.y, host.width, host.height );
+		}
+
+		/**
+		 * @private
+		 */
+		private function handleLocationChange(event:flash.events.Event):void
+		{
+			var model:WebBrowserModel = (host as UIBase).model as WebBrowserModel;
+			model.setURL(stageWebView.location);
+			host.dispatchEvent(new org.apache.flex.events.Event("locationChanged"));
+		}
+	}
+}
+


[35/37] git commit: [flex-asjs] [refs/heads/spark] - flesh out TextField and TextFormat

Posted by ah...@apache.org.
flesh out TextField and TextFormat


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/33d2a05b
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/33d2a05b
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/33d2a05b

Branch: refs/heads/spark
Commit: 33d2a05b979767f129701b1b4419c18b0a9ba1af
Parents: 87804f7
Author: Alex Harui <ah...@apache.org>
Authored: Thu Mar 17 14:21:49 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Mar 17 14:21:49 2016 -0700

----------------------------------------------------------------------
 .../MX/src/main/flex/flex/text/TextField.as     | 917 +++++++++++++++++++
 .../MX/src/main/flex/flex/text/TextFormat.as    |  45 +
 2 files changed, 962 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/33d2a05b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
index 4de38f3..d512bd4 100644
--- a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
+++ b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
@@ -6,7 +6,15 @@ COMPILE::AS3
 }
 COMPILE::JS
 {
+	import mx.core.IFlexModuleFactory;
 	import mx.core.IUITextField;
+	import mx.managers.ISystemManager;
+	
+	import flex.display.DisplayObject;
+	import flex.display.DisplayObjectContainer;
+	import flex.display.Sprite;
+	
+	import org.apache.flex.geom.Rectangle;
 	import org.apache.flex.html.Label;
 }
 
@@ -22,6 +30,915 @@ public class TextField extends flash.text.TextField
 COMPILE::JS
 public class TextField extends Label implements IUITextField
 {
+
+	private var _alwaysShowSelection:Boolean;
+	public function get alwaysShowSelection():Boolean
+	{
+		return _alwaysShowSelection;
+	}
+	public function set alwaysShowSelection(value:Boolean):void
+	{
+		_alwaysShowSelection = value;
+		trace("not implemented");
+	}
+	
+	private var _antiAliasType:String;
+	public function get antiAliasType():String
+	{
+		return _antiAliasType;
+	}
+	public function set antiAliasType(value:String):void
+	{
+		_antiAliasType = value;
+		trace("not implemented");
+	}
+
+	private var _autoSize:String;
+	public function get autoSize():String
+	{
+		return _autoSize;
+	}
+	public function set autoSize(value:String):void
+	{
+		_autoSize = value;
+		trace("not implemented");
+	}
+
+	private var _background:Boolean;
+	public function get background():Boolean
+	{
+		return _background;
+	}
+	public function set background(value:Boolean):void
+	{
+		_background = value;
+		if (!value)
+			element.style.backgroundColor = undefined;
+		else
+			element.style.backgroundColor = "#" + _backgroundColor.toString(16);
+	}
+	
+	private var _backgroundColor:uint;
+	public function get backgroundColor():uint
+	{
+		return _backgroundColor;
+	}
+	public function set backgroundColor(value:uint):void
+	{
+		_backgroundColor = value;
+		if (_background)
+			element.style.backgroundColor = "#" + _backgroundColor.toString(16);
+	}
+
+	public function get baselinePosition():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	private var _border:Boolean;
+	public function get border():Boolean
+	{
+		return _border;
+	}
+	public function set border(value:Boolean):void
+	{
+		_border = value;
+		if (!value)
+			element.style.border = "1px none";
+		else
+			element.style.border = "1px solid";
+	}
+	
+	private var _borderColor:uint;
+	public function get borderColor():uint
+	{
+		return _borderColor;
+	}
+	public function set borderColor(value:uint):void
+	{
+		_borderColor = value;
+		if (_border)
+			element.style.borderColor = "#" + _borderColor.toString(16);
+	}
+	
+	public function get bottomScrollV():int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get caretIndex():int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	private var _condenseWhite:Boolean;
+	public function get condenseWhite():Boolean
+	{
+		return _condenseWhite;
+	}
+	public function set condenseWhite(value:Boolean):void
+	{
+		_condenseWhite = value;
+		trace("not implemented");
+	}
+
+	private var _defaultTextFormat:TextFormat;
+	public function get defaultTextFormat():TextFormat
+	{
+		return _defaultTextFormat;
+	}
+	public function set defaultTextFormat(value:TextFormat):void
+	{
+		_defaultTextFormat = value;
+		trace("not implemented");
+	}
+	
+	private var _displayAsPassword:Boolean;
+	public function get displayAsPassword():Boolean
+	{
+		return _displayAsPassword;
+	}
+	/**
+	 * @flexjsignorecoercion HTMLInputElement
+	 */
+	public function set displayAsPassword(value:Boolean):void
+	{
+		_displayAsPassword = value;
+		if (value)
+			(element as HTMLInputElement).type = "password";
+		else
+			(element as HTMLInputElement).type = "input";
+	}
+
+	private var _document:Object;
+	public function get document():Object
+	{
+		return _document;
+	}
+	public function set document(value:Object):void
+	{
+		_document = value;
+	}
+	
+	private var _doubleClickEnabled:Boolean;
+	public function get doubleClickEnabled():Boolean
+	{
+		return _doubleClickEnabled;
+	}
+	public function set doubleClickEnabled(value:Boolean):void
+	{
+		_doubleClickEnabled = value;
+		trace("not implemented");
+	}
+	
+	private var _embedFonts:Boolean;
+	public function get embedFonts():Boolean
+	{
+		return _embedFonts;
+	}
+	public function set embedFonts(value:Boolean):void
+	{
+		_embedFonts = value;
+		trace("not implemented");
+	}
+	
+	private var _enabled:Boolean;
+	public function get enabled():Boolean
+	{
+		return _enabled;
+	}
+	public function set enabled(value:Boolean):void
+	{
+		_enabled = value;
+	}
+	
+	public function get enableIME():Boolean
+	{
+		trace("not implemented");
+		return false;
+	}
+	
+	public function get explicitMaxWidth():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get explicitMaxHeight():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get explicitMinHeight():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get explicitMinWidth():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	private var _focusPane:Sprite;
+	public function get focusPane():Sprite
+	{
+		return _focusPane;
+	}
+	public function set focusPane(value:Sprite):void
+	{
+		_focusPane = value;
+		trace("not implemented");
+	}
+	
+	private var _focusRect:Object;
+	public function get focusRect():Object
+	{
+		return _focusRect;
+	}
+	public function set focusRect(value:Object):void
+	{
+		_focusRect = value;
+		trace("not implemented");
+	}
+
+	private var _gridFitType:String;
+	public function get gridFitType():String
+	{
+		return _gridFitType;
+	}
+	public function set gridFitType(value:String):void
+	{
+		_gridFitType = value;
+		trace("not implemented");
+	}
+	
+	private var _htmlText:String;
+	public function get htmlText():String
+	{
+		return _htmlText;
+	}
+	public function set htmlText(value:String):void
+	{
+		element.innerHTML = _htmlText = value;
+	}
+	
+	private var _ignorePadding:Boolean;
+	public function get ignorePadding():Boolean
+	{
+		return _ignorePadding;
+	}
+	public function set ignorePadding(value:Boolean):void
+	{
+		_ignorePadding = value;
+		trace("not implemented");
+	}
+	
+	private var _imeMode:String;
+	public function get imeMode():String
+	{
+		return _imeMode;
+	}
+	public function set imeMode(value:String):void
+	{
+		_imeMode = value;
+	}
 	
+	private var _includeInLayout:Boolean;
+	public function get includeInLayout():Boolean
+	{
+		return _includeInLayout;
+	}
+	public function set includeInLayout(value:Boolean):void
+	{
+		_includeInLayout = value;
+		trace("not implemented");
+	}
+
+	private var _inheritingStyles:Object;
+	public function get inheritingStyles():Object
+	{
+		return _inheritingStyles;
+	}
+	public function set inheritingStyles(value:Object):void
+	{
+		_inheritingStyles = value;
+		trace("not implemented");
+	}
+
+	private var _isPopUp:Boolean;
+	public function get isPopUp():Boolean
+	{
+		return _isPopUp;
+	}
+	public function set isPopUp(value:Boolean):void
+	{
+		_isPopUp = value;
+		trace("not implemented");
+	}
+	
+	public function get length():int
+	{
+		return element.innerText.length;
+	}
+	
+	private var _maxChars:int;
+	public function get maxChars():int
+	{
+		return _maxChars;
+	}
+	public function set maxChars(value:int):void
+	{
+		_maxChars = value;
+		(element as HTMLInputElement).maxLength = value;
+	}
+	
+	public function get maxHeight():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get maxScrollH():int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get maxScrollV():int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get maxWidth():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get measuredHeight():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+		
+	private var _measuredMinHeight:Number;
+	public function get measuredMinHeight():Number
+	{
+		return _measuredMinHeight;
+	}
+	public function set measuredMinHeight(value:Number):void
+	{
+		_measuredMinHeight = value;
+		trace("not implemented");
+	}
+	
+	public function get measuredWidth():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	private var _measuredMinWidth:Number;
+	public function get measuredMinWidth():Number
+	{
+		return _measuredMinWidth;
+	}
+	public function set measuredMinWidth(value:Number):void
+	{
+		_measuredMinWidth = value;
+		trace("not implemented");
+	}
+	
+	public function get minHeight():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get minWidth():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+
+	private var _moduleFactory:IFlexModuleFactory;
+	public function get moduleFactory():IFlexModuleFactory
+	{
+		return _moduleFactory;
+	}
+	public function set moduleFactory(value:IFlexModuleFactory):void
+	{
+		_moduleFactory = value;
+		trace("not implemented");
+	}
+	
+	private var _mouseEnabled:Boolean;
+	public function get mouseEnabled():Boolean
+	{
+		return _mouseEnabled;
+	}
+	public function set mouseEnabled(value:Boolean):void
+	{
+		_mouseEnabled = value;
+		trace("not implemented");
+	}
+		
+	private var _mouseWheelEnabled:Boolean;
+	public function get mouseWheelEnabled():Boolean
+	{
+		return _mouseWheelEnabled;
+	}
+	public function set mouseWheelEnabled(value:Boolean):void
+	{
+		_mouseWheelEnabled = value;
+		trace("not implemented");
+	}
+	
+	private var _multiline:Boolean;
+	public function get multiline():Boolean
+	{
+		return _multiline;
+	}
+	public function set multiline(value:Boolean):void
+	{
+		_multiline = value;
+		trace("not implemented");
+	}
+	
+	private var _name:String;
+	public function get name():String
+	{
+		return _name;
+	}
+	public function set name(value:String):void
+	{
+		_name = value;
+		element.id = name;
+	}
+	
+	private var _owner:DisplayObjectContainer;
+	public function get owner():DisplayObjectContainer
+	{
+		return _owner;
+	}
+	public function set owner(value:DisplayObjectContainer):void
+	{
+		_owner = value;
+	}
+	
+	private var _nestLevel:int;
+	public function get nestLevel():int
+	{
+		return _nestLevel;
+	}
+	public function set nestLevel(value:int):void
+	{
+		_nestLevel = value;
+	}
+	
+	private var _nonInheritingStyles:Object;
+	public function get nonInheritingStyles():Object
+	{
+		return _nonInheritingStyles;
+	}
+	public function set nonInheritingStyles(value:Object):void
+	{
+		_nonInheritingStyles = value;
+		trace("not implemented");
+	}
+	
+	public function get nonZeroTextHeight():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get numLines():int
+	{
+		trace("not implemented");
+		return 0;
+	}
+
+	private var _restrict:String;
+	public function get restrict():String
+	{
+		return _restrict;
+	}
+	public function set restrict(value:String):void
+	{
+		_restrict = value;
+		trace("not implemented");
+	}
+	
+	private var _scrollH:int;
+	public function get scrollH():int
+	{
+		return _scrollH;
+	}
+	public function set scrollH(value:int):void
+	{
+		_scrollH = value;
+		trace("not implemented");
+	}
+	
+	private var _scrollV:int;
+	public function get scrollV():int
+	{
+		return _scrollV;
+	}
+	public function set scrollV(value:int):void
+	{
+		_scrollV = value;
+		trace("not implemented");
+	}
+	
+	public function get root():DisplayObject
+	{
+		trace("not implemented");
+		return null;
+	}
+	
+	private var _selectable:Boolean;
+	public function get selectable():Boolean
+	{
+		return _selectable;
+	}
+	public function set selectable(value:Boolean):void
+	{
+		_selectable = value;
+		trace("not implemented");
+	}
+	
+	public function get selectionBeginIndex():int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function get selectionEndIndex():int
+	{
+		trace("not implemented");
+		return 0;
+	}
+
+	private var _sharpness:Number;
+	public function get sharpness():Number
+	{
+		return _sharpness;
+	}
+	public function set sharpness(value:Number):void
+	{
+		_sharpness = value;
+		trace("not implemented");
+	}
+	
+	private var _styleName:Object;
+	public function get styleName():Object
+	{
+		return _styleName;
+	}
+	public function set styleName(value:Object):void
+	{
+		_styleName = value;
+		element.className = styleName.toString();
+	}
+	
+	private var _styleSheet:StyleSheet;
+	public function get styleSheet():StyleSheet
+	{
+		return _styleSheet;
+	}
+	public function set styleSheet(value:StyleSheet):void
+	{
+		_styleSheet = value;
+		trace("not implemented");
+	}
+	
+	private var _systemManager:ISystemManager;
+	public function get systemManager():ISystemManager
+	{
+		return _systemManager;
+	}
+	public function set systemManager(value:ISystemManager):void
+	{
+		_systemManager = value;
+		trace("not implemented");
+	}
+	
+	private var _tabEnabled:Boolean;
+	public function get tabEnabled():Boolean
+	{
+		return _tabEnabled;
+	}
+	public function set tabEnabled(value:Boolean):void
+	{
+		_tabEnabled = value;
+		trace("not implemented");
+	}
+	
+	private var _tabIndex:int;
+	public function get tabIndex():int
+	{
+		return _tabIndex;
+	}
+	public function set tabIndex(value:int):void
+	{
+		_tabIndex = value;
+		trace("not implemented");
+	}
+	
+	private var _textColor:uint;
+	public function get textColor():uint
+	{
+		return _textColor;
+	}
+	public function set textColor(value:uint):void
+	{
+		_textColor = value;
+		element.style.color = "#" + value.toString(16);
+	}
+	
+	public function get textHeight():Number
+	{
+		return element.offsetHeight;
+	}
+	
+	public function get textWidth():Number
+	{
+		return element.offsetWidth;
+	}
+	
+	private var _thickness:Number;
+	public function get thickness():Number
+	{
+		return _thickness;
+	}
+	public function set thickness(value:Number):void
+	{
+		_thickness = value;
+		trace("not implemented");
+	}
+	
+	private var _toolTip:String;
+	public function get toolTip():String
+	{
+		return _toolTip;
+	}
+	public function set toolTip(value:String):void
+	{
+		_toolTip = value;
+		trace("not implemented");
+	}
+	
+	private var _tweeningProperties:Array;
+	public function get tweeningProperties():Array
+	{
+		return _tweeningProperties;
+	}
+	public function set tweeningProperties(value:Array):void
+	{
+		_tweeningProperties = value;
+		trace("not implemented");
+	}
+	
+	public function get topOfDisplayList():TopOfDisplayList
+	{
+		trace("not implemented");
+	}
+	
+	private var _type:String;
+	public function get type():String
+	{
+		return _type;
+	}
+	public function set type(value:String):void
+	{
+		_type = value;
+		trace("not implemented");
+	}
+	
+	private var _useRichTextClipboard:Boolean;
+	public function get useRichTextClipboard():Boolean
+	{
+		return _useRichTextClipboard;
+	}
+	public function set useRichTextClipboard(value:Boolean):void
+	{
+		_useRichTextClipboard = value;
+		trace("not implemented");
+	}
+	
+	private var _wordWrap:Boolean;
+	public function get wordWrap():Boolean
+	{
+		return _wordWrap;
+	}
+	public function set wordWrap(value:Boolean):void
+	{
+		_wordWrap = value;
+		trace("not implemented");
+	}
+	
+	public function appendText(value:String):void
+	{
+		element.innerText += value;
+	}
+	
+	public function getCharBoundaries(charIndex:int):Rectangle
+	{
+		trace("not implemented");
+		return null;
+	}
+
+	public function getCharIndexAtPoint(x:Number, y:Number):int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function getExplicitOrMeasuredHeight():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function getExplicitOrMeasuredWidth():Number
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function getFirstCharInParagraph(index:int):int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function getImageReference(id:String):DisplayObject
+	{
+		trace("not implemented");
+		return null;
+	}
+	
+	public function getLineIndexAtPoint(x:Number, y:Number):int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function getLineIndexOfChar(index:int):int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function getLineLength(index:int):int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function getLineMetrics(index:int):TextMetrics
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function getLineOffset(index:int):int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function getLineText(index:int):String
+	{
+		trace("not implemented");
+		return null;
+	}
+	
+	public function getParagraphLength(index:int):int
+	{
+		trace("not implemented");
+		return 0;
+	}
+	
+	public function getStyle(styleName:String):*
+	{
+		trace("not implemented");
+		return undefined;
+	}
+	
+	public function getTextFormat(beginIndex:int = -1, endIndex:int = -1):TextFormat
+	{
+		trace("not implemented");
+		return null;
+	}
+	
+	public function getUITextFormat(beginIndex:int = -1, endIndex:int = -1):UITextFormat
+	{
+		trace("not implemented");
+		return null;
+	}
+	
+	public function initialize():void
+	{
+		trace("not implemented");
+	}
+
+	public function invalidateDisplayList():void
+	{
+		trace("not implemented");
+	}
+	
+	public function invalidateProperties():void
+	{
+		trace("not implemented");
+	}
+	
+	public function invalidateSize():void
+	{
+		trace("not implemented");
+	}
+	
+	public function move(x:Number, y:Number):void
+	{
+		this.x = x;
+		this.y = y;
+	}
+	
+	public function owns(child:DisplayObject):Boolean
+	{
+		return false;
+	}
+	
+	public function parentChanged(parent:DisplayObjectContainer):void
+	{
+	}
+	
+	public function replaceSelectedText(text:String):void
+	{
+		trace("not implemented");
+	}
+	
+	public function replaceText(begin:int, end:int, text:String):void
+	{
+		trace("not implemented");
+	}
+	
+	public function setActualSize(x:Number, y:Number):void
+	{
+		setWidthAndHeight(x, y, true);
+	}
+	
+	public function setColor(color:uint):void
+	{
+		element.style.color = "#" + color.toString(16);
+	}
+
+	public function setFocus():void
+	{
+		element.focus();
+	}
+	
+	public function setSelection(begin:int, end:int):void
+	{
+		trace("not implemented");
+	}
+	
+	public function setTextFormat(format:TextFormat, begin:int = -1, end:int = -1):void
+	{
+		trace("not implemented");
+	}
+	
+	public function setVisible(value:Boolean, noEvent:Boolean = false):void
+	{
+		if (value)
+			element.style.display = "inline";
+		else
+			element.style.display = "none";
+	}
+	
+	public function styleChanged(styleProp:String):void
+	{
+		trace("not implemented");		
+	}
+		
+	public function truncateToFit(format:TextFormat, begin:int = -1, end:int = -1):void
+	{
+		trace("not implemented");
+	}
+	
+	public function validateNow():void
+	{
+	}
+	
+
 }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/33d2a05b/frameworks/projects/MX/src/main/flex/flex/text/TextFormat.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/text/TextFormat.as b/frameworks/projects/MX/src/main/flex/flex/text/TextFormat.as
new file mode 100644
index 0000000..105fc22
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/text/TextFormat.as
@@ -0,0 +1,45 @@
+package flex.text
+{
+	public class TextFormat
+	{
+		public function TextFormat(font:String = null, size:Object = null, color:Object = null, 
+			bold:Object = null, italic:Object = null, underline:Object = null, 
+			url:String = null, target:String = null, align:String = null, 
+			leftMargin:Object = null, rightMargin:Object = null, 
+			indent:Object = null, leading:Object = null)		
+		{
+			this.font = font;
+			this.size = size;
+			this.color = color;
+			this.bold = bold;
+			this.italic = italic;
+			this.underline = underline;
+			this.url = url;
+			this.target = target;
+			this.align = align;
+			this.leftMargin = leftMargin;
+			this.rightMargin = rightMargin;
+			this.indent = indent;
+			this.leading = leading;
+		}
+		
+		public var align:String;
+		public var blockIndent:Object;
+		public var bold:Object;
+		public var bullet:Object;
+		public var color:Object;
+		public var font:String;
+		public var indent:Object;
+		public var italic:Object;
+		public var kerning:Object;
+		public var leading:Object;
+		public var leftMargin:Object;
+		public var letterSpacing:Object;
+		public var rightMargin:Object;
+		public var size:Object;
+		public var tabStops:Array;
+		public var target:Object;
+		public var underline:Object;
+		public var url:Object;
+	}
+}
\ No newline at end of file


[16/37] git commit: [flex-asjs] [refs/heads/spark] - add 'running' property

Posted by ah...@apache.org.
add 'running' property


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/8471985f
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/8471985f
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/8471985f

Branch: refs/heads/spark
Commit: 8471985f0e2389713d70b34c19278d67454fd80d
Parents: 8b5fdc1
Author: Alex Harui <ah...@apache.org>
Authored: Sat Feb 27 23:14:16 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Sat Feb 27 23:14:16 2016 -0800

----------------------------------------------------------------------
 .../projects/Core/src/main/flex/org/apache/flex/utils/Timer.as | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8471985f/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Timer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Timer.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Timer.as
index 582d884..ad14f3e 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Timer.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Timer.as
@@ -111,7 +111,11 @@ public class Timer extends EventDispatcher
     
     public var delay:Number;
     public var repeatCount:int;
-    
+    public function get running():Boolean
+	{
+		return timerInterval != -1;
+	}
+	
     private var currentCount:int = 0;
     
     private var timerInterval:int = -1;


[04/37] git commit: [flex-asjs] [refs/heads/spark] - intellij-config.xml: updated paths to manifests to match frameworks/projects/flex-config.xml

Posted by ah...@apache.org.
intellij-config.xml: updated paths to manifests to match frameworks/projects/flex-config.xml


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/8156e98b
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/8156e98b
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/8156e98b

Branch: refs/heads/spark
Commit: 8156e98b355df265954692625d76883389168182
Parents: 4d0f00f
Author: Josh Tynjala <jo...@apache.org>
Authored: Fri Feb 12 09:36:36 2016 -0800
Committer: Josh Tynjala <jo...@apache.org>
Committed: Fri Feb 12 09:36:36 2016 -0800

----------------------------------------------------------------------
 ide/IDEA/intellij-config.xml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8156e98b/ide/IDEA/intellij-config.xml
----------------------------------------------------------------------
diff --git a/ide/IDEA/intellij-config.xml b/ide/IDEA/intellij-config.xml
index 42ff4d4..e472ee4 100644
--- a/ide/IDEA/intellij-config.xml
+++ b/ide/IDEA/intellij-config.xml
@@ -49,18 +49,18 @@
          <namespace>
             <uri>library://ns.apache.org/flexjs/basic</uri>
             
-            <manifest>../../frameworks/projects/Core/basic-manifest.xml</manifest>
+            <manifest>../../frameworks/projects/Core/src/main/resources/basic-manifest.xml</manifest>
          
         </namespace>                                                 
          <namespace>
             <uri>library://ns.apache.org/flexjs/html5</uri>
             
-            <manifest>../../frameworks/projects/HTML5/html5-manifest.xml</manifest>
+            <manifest>../../frameworks/projects/HTML5/src/main/resources/html5-manifest.xml</manifest>
          
         </namespace>
 		<namespace>
             <uri>library://ns.apache.org/flexjs/svg</uri>
-         	<manifest>../../frameworks/projects/HTML/svg-manifest.xml</manifest>
+         	<manifest>../../frameworks/projects/HTML/src/main/resources/svg-manifest.xml</manifest>
         </namespace>   
    
       </namespaces>


[27/37] git commit: [flex-asjs] [refs/heads/spark] - Added ToggleSwitch UI control to Mobile project.

Posted by ah...@apache.org.
Added ToggleSwitch UI control to Mobile project.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/1c4d36c0
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/1c4d36c0
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/1c4d36c0

Branch: refs/heads/spark
Commit: 1c4d36c086434d36f05e54588e1bdb55fe755fd7
Parents: 1c69a39
Author: Peter Ent <pe...@apache.org>
Authored: Wed Mar 9 16:21:19 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Wed Mar 9 16:21:19 2016 -0500

----------------------------------------------------------------------
 .../projects/HTML/src/main/flex/HTMLClasses.as  |   2 +-
 .../Mobile/src/main/flex/MobileClasses.as       |   3 +
 .../flex/org/apache/flex/mobile/ToggleSwitch.as | 105 +++++++++++
 .../flex/mobile/beads/ToggleSwitchView.as       | 180 +++++++++++++++++++
 .../controllers/ToggleSwitchMouseController.as  | 120 +++++++++++++
 .../src/main/resources/basic-manifest.xml       |   1 +
 .../Mobile/src/main/resources/defaults.css      |   9 +
 7 files changed, 419 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c4d36c0/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
index e5171d4..ad3ba4b 100644
--- a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
+++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
@@ -107,9 +107,9 @@ internal class HTMLClasses
 	}
 	import org.apache.flex.html.beads.models.TextModel; TextModel;
     import org.apache.flex.html.beads.models.TitleBarModel; TitleBarModel;
+	import org.apache.flex.html.beads.models.ToggleButtonModel; ToggleButtonModel;
 	COMPILE::AS3
 	{
-		import org.apache.flex.html.beads.models.ToggleButtonModel; ToggleButtonModel;
 		import org.apache.flex.html.beads.models.ValueToggleButtonModel; ValueToggleButtonModel;
 	}
 	import org.apache.flex.html.beads.models.ViewportModel; ViewportModel;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c4d36c0/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as b/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
index 5a85f94..b1e6dae 100644
--- a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
+++ b/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
@@ -29,10 +29,13 @@ internal class MobileClasses
 {	
 	import org.apache.flex.mobile.ManagerBase; ManagerBase;
 	
+	import org.apache.flex.mobile.ToggleSwitch; ToggleSwitch;
 	import org.apache.flex.mobile.ViewManagerBase; ViewManagerBase;
 	import org.apache.flex.mobile.beads.StackedViewManagerView; StackedViewManagerView;
 	import org.apache.flex.mobile.beads.TabbedViewManagerView; TabbedViewManagerView;
 	import org.apache.flex.mobile.beads.ViewManagerView; ViewManagerView;
+	import org.apache.flex.mobile.beads.ToggleSwitchView; ToggleSwitchView;
+	import org.apache.flex.mobile.beads.controllers.ToggleSwitchMouseController; ToggleSwitchMouseController;
 	import org.apache.flex.mobile.chrome.NavigationBar; NavigationBar;
 	import org.apache.flex.mobile.chrome.TabBar; TabBar;
 	import org.apache.flex.mobile.chrome.ToolBar; ToolBar;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c4d36c0/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ToggleSwitch.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ToggleSwitch.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ToggleSwitch.as
new file mode 100644
index 0000000..e5f83fb
--- /dev/null
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/ToggleSwitch.as
@@ -0,0 +1,105 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.mobile
+{
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IBeadController;
+	import org.apache.flex.core.IToggleButtonModel;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.ValuesManager;
+	
+	/**
+	 * The ToggleSwitch is a UI control that displays on/off or yes/no states.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ToggleSwitch extends UIBase
+	{
+		/**
+		 * Constructor
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function ToggleSwitch()
+		{
+			super();
+			
+			COMPILE::JS {
+				setWidthAndHeight(40.0, 25.0, false);
+			}
+		}
+		
+		[Bindable("change")]
+		/**
+		 *  <code>true</code> if the switch is selected.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get selected():Boolean
+		{
+			return IToggleButtonModel(model).selected;
+		}
+		
+		/**
+		 *  @private
+		 */
+		public function set selected(value:Boolean):void
+		{
+			IToggleButtonModel(model).selected = value;
+		}
+		
+		private var _controller:IBeadController;
+        
+        /**
+         *  Get the controller for the view.
+         * 
+         *  @flexjsignorecoercion Class
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+		public function get controller():IBeadController
+		{
+			if (_controller == null) {
+				_controller = getBeadByType(IBeadController) as IBeadController;
+				if (_controller == null) {
+                    var c:Class = ValuesManager.valuesImpl.getValue(this, "iBeadController") as Class;
+					_controller = new c() as IBeadController;
+					addBead(_controller);
+				}
+			}
+			return _controller;
+		}
+		public function set controller(value:IBeadController):void
+		{
+			_controller = value;
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c4d36c0/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ToggleSwitchView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ToggleSwitchView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ToggleSwitchView.as
new file mode 100644
index 0000000..fe35d45
--- /dev/null
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/ToggleSwitchView.as
@@ -0,0 +1,180 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.mobile.beads
+{	
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.IBeadView;
+	import org.apache.flex.core.IToggleButtonModel;
+	import org.apache.flex.core.IUIBase;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.graphics.Rect;
+	import org.apache.flex.core.graphics.SolidColor;
+	import org.apache.flex.core.graphics.SolidColorStroke;
+	import org.apache.flex.events.Event;
+	
+	/**
+	 * The ToggleSwitchView creates the element used to display the ToggleSwitch
+	 * interface.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ToggleSwitchView implements IBeadView
+	{
+		/**
+		 * Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function ToggleSwitchView()
+		{
+			super();
+		}
+		
+		/**
+		 * @private
+		 */
+		public var boundingBox:Rect;
+		
+		/**
+		 * @private
+		 */
+		public var actualSwitch:Rect;
+		
+		/**
+		 * @private
+		 */
+		public function get host():IUIBase
+		{
+			return _strand as IUIBase;
+		}
+		public function set host(value:IUIBase):void
+		{
+			// not implemented; getter only.
+		}
+		
+		private var _strand:IStrand;
+		
+		/**
+		 * @private
+		 */
+		public function get strand():IStrand
+		{
+			return _strand;
+		}
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+			UIBase(_strand).addEventListener("sizeChanged", sizeChangedHandler);
+			UIBase(_strand).addEventListener("widthChanged", sizeChangedHandler);
+			UIBase(_strand).addEventListener("heightChanged", sizeChangedHandler);
+			
+			var model:IToggleButtonModel = value.getBeadByType(IToggleButtonModel) as IToggleButtonModel;
+			model.addEventListener("selectedChange", toggleChangedHandler);
+			
+			boundingBox = new Rect();
+			UIBase(host).addElement(boundingBox, false);
+			
+			actualSwitch = new Rect();
+			UIBase(host).addElement(actualSwitch, false);
+			
+			layoutChromeElements();
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function toggleChangedHandler(event:Event):void
+		{
+			layoutChromeElements();
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function sizeChangedHandler(event:Event):void
+		{
+			layoutChromeElements();
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function layoutChromeElements():void
+		{
+			sizeViewsToFitContentArea();
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function sizeViewsToFitContentArea():void
+		{
+			var model:IToggleButtonModel = _strand.getBeadByType(IToggleButtonModel) as IToggleButtonModel;
+			
+			boundingBox.x = 0;
+			boundingBox.y = 0;
+			boundingBox.setWidthAndHeight(host.width, host.height, false);
+			
+			actualSwitch.y = 2;
+			actualSwitch.setWidthAndHeight(host.width/2 - 2, host.height-4, false);
+			
+			var fill:SolidColor = new SolidColor();
+			fill.alpha = 2.0;
+			
+			var switchFill:SolidColor = new SolidColor();
+			switchFill.alpha = 1.0;
+			switchFill.color = 0xFFFFFF;
+			actualSwitch.fill = switchFill;
+			
+			var border:SolidColorStroke = new SolidColorStroke();
+			border.alpha = 1.0;
+			border.color = 0x333333;
+			border.weight = 1.0;
+			
+			boundingBox.stroke = border;
+			actualSwitch.stroke = border;
+			
+			if (model.selected) {
+				actualSwitch.x = host.width / 2;
+				fill.color = 0x00DD00;
+				boundingBox.fill = fill;
+			} else {
+				actualSwitch.x = 2;
+				fill.color = 0xFFFFFF;
+				boundingBox.fill = fill;
+			}
+
+			COMPILE::AS3 {
+				boundingBox.drawRect(0, 0, boundingBox.width, boundingBox.height);
+				actualSwitch.drawRect(0, 0, actualSwitch.width, actualSwitch.height);
+			}
+			COMPILE::JS {
+				boundingBox.drawRect(0, 0, boundingBox.width, boundingBox.height);
+				actualSwitch.drawRect(actualSwitch.x, actualSwitch.y, actualSwitch.width, actualSwitch.height);
+			}
+			
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c4d36c0/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/controllers/ToggleSwitchMouseController.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/controllers/ToggleSwitchMouseController.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/controllers/ToggleSwitchMouseController.as
new file mode 100644
index 0000000..d67f14d
--- /dev/null
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/controllers/ToggleSwitchMouseController.as
@@ -0,0 +1,120 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.mobile.beads.controllers
+{
+	import org.apache.flex.core.IBeadController;
+	import org.apache.flex.core.IToggleButtonModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.IBeadView;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.events.MouseEvent;
+	import org.apache.flex.mobile.beads.ToggleSwitchView;
+    COMPILE::JS
+    {
+        import goog.events;
+        import goog.events.EventType;
+    }
+	
+	/**
+	 *  The ToggleSwitchMouseController bead handles mouse events on the 
+	 *  ToggleSwitch, allowing the user to use the mouse to change the
+	 *  state of the ToggleSwitch.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class ToggleSwitchMouseController implements IBeadController
+	{
+		/**
+		 *  Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function ToggleSwitchMouseController()
+		{
+		}
+		
+		private var model:IToggleButtonModel;
+		
+		private var _strand:IStrand;
+		
+		/**
+		 *  @copy org.apache.flex.core.IBead#strand
+		 *  
+		 *  @flexjsignorecoercion org.apache.flex.html.Spinner
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+			
+			model = UIBase(value).model as IToggleButtonModel;
+			
+            COMPILE::AS3
+            {
+                var viewBead:ToggleSwitchView = value.getBeadByType(IBeadView) as ToggleSwitchView;
+                viewBead.boundingBox.addEventListener(MouseEvent.CLICK, asClickHandler);
+				viewBead.actualSwitch.addEventListener(MouseEvent.CLICK, asClickHandler);
+            }
+            
+            COMPILE::JS
+            {
+				var viewBead:ToggleSwitchView = value.getBeadByType(IBeadView) as ToggleSwitchView;
+				
+				goog.events.listen(viewBead.boundingBox.element, goog.events.EventType.CLICK,
+					jsClickHandler);
+				goog.events.listen(viewBead.actualSwitch.element, goog.events.EventType.CLICK,
+					jsClickHandler);
+
+            }
+		}
+		
+		/**
+		 * @private
+		 */
+		COMPILE::AS3
+		private function asClickHandler( event:MouseEvent ) : void
+		{
+			var oldValue:Boolean = model.selected;
+			model.selected = !oldValue;
+			IEventDispatcher(_strand).dispatchEvent(new Event("valueChanged"));
+		}
+        
+		/**
+		 * @private
+		 */
+		COMPILE::JS
+		private function jsClickHandler( event:Event ) : void
+		{
+			var oldValue:Boolean = model.selected;
+			model.selected = !oldValue;
+			IEventDispatcher(_strand).dispatchEvent(new Event("valueChanged"));
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c4d36c0/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml b/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
index 4f54235..a70352f 100644
--- a/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Mobile/src/main/resources/basic-manifest.xml
@@ -26,4 +26,5 @@
     <component id="NavigationBar" class="org.apache.flex.mobile.chrome.NavigationBar" />
     <component id="ToolBar" class="org.apache.flex.mobile.chrome.ToolBar" />
     <component id="TabBar" class="org.apache.flex.mobile.chrome.TabBar" />
+    <component id="ToggleSwitch" class="org.apache.flex.mobile.ToggleSwitch" />
 </componentPackage>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c4d36c0/frameworks/projects/Mobile/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/resources/defaults.css b/frameworks/projects/Mobile/src/main/resources/defaults.css
index d529595..c1e2828 100644
--- a/frameworks/projects/Mobile/src/main/resources/defaults.css
+++ b/frameworks/projects/Mobile/src/main/resources/defaults.css
@@ -31,3 +31,12 @@ TabbedViewManager
 	IBeadModel: ClassReference("org.apache.flex.mobile.models.ViewManagerModel");
 	IBeadView:  ClassReference("org.apache.flex.mobile.beads.TabbedViewManagerView");
 }
+
+ToggleSwitch
+{
+	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ToggleButtonModel");
+	IBeadView:  ClassReference("org.apache.flex.mobile.beads.ToggleSwitchView");		
+	IBeadController: ClassReference("org.apache.flex.mobile.beads.controllers.ToggleSwitchMouseController");
+	width: 40px;
+	height: 25px;
+}


[08/37] git commit: [flex-asjs] [refs/heads/spark] - Added listData to item renderers for additional support.

Posted by ah...@apache.org.
Added listData to item renderers for additional support.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/d75af201
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/d75af201
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/d75af201

Branch: refs/heads/spark
Commit: d75af201dc7adfe543882dda9d1d0130c4039753
Parents: 60670e8
Author: Peter Ent <pe...@apache.org>
Authored: Thu Feb 18 13:25:21 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Feb 18 13:25:21 2016 -0500

----------------------------------------------------------------------
 .../flex/org/apache/flex/core/IItemRenderer.as  | 12 +++++++++++
 .../html/supportClasses/GraphicsItemRenderer.as | 21 ++++++++++++++++++++
 .../supportClasses/TextFieldItemRenderer.as     | 19 ++++++++++++++++++
 .../html/supportClasses/UIItemRendererBase.as   | 21 ++++++++++++++++++++
 4 files changed, 73 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d75af201/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRenderer.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRenderer.as
index 7843e36..237517d 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRenderer.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IItemRenderer.as
@@ -43,6 +43,18 @@ package org.apache.flex.core
 		function set data(value:Object):void;
 		
 		/**
+		 * Additional data about the list structure that might be useful
+		 * to itemRenderer implementations.
+         * 
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		function get listData():Object;
+		function set listData(value:Object):void;
+		
+		/**
 		 *  The parent component of the itemRenderer instance. This is the container that houses
 		 *  all of the itemRenderers.
 		 *

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d75af201/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/GraphicsItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/GraphicsItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/GraphicsItemRenderer.as
index 4d90c03..ec096ae 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/GraphicsItemRenderer.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/GraphicsItemRenderer.as
@@ -191,6 +191,27 @@ package org.apache.flex.html.supportClasses
 			_data = value;
 		}
 		
+		private var _listData:Object;
+		
+		[Bindable("__NoChangeEvent__")]
+		/**
+		 *  Additional data about the list structure the itemRenderer may
+		 *  find useful.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get listData():Object
+		{
+			return _listData;
+		}
+		public function set listData(value:Object):void
+		{
+			_listData = value;
+		}
+		
 		private var _dataField:String;
 		
 		/**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d75af201/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
index a19fc2f..5908d73 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TextFieldItemRenderer.as
@@ -312,6 +312,25 @@ package org.apache.flex.html.supportClasses
         {
             text = String(value);
         }
+
+	private var _listData:Object;
+
+		/**
+		 *  Additional data about the list the itemRenderer may find useful.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+	public function get listData():Object
+	{
+		return _listData;
+	}
+	public function set listData(value:Object):void
+	{
+		_listData = value;
+	}
 		
 		/**
 		 * @private

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d75af201/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/UIItemRendererBase.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/UIItemRendererBase.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/UIItemRendererBase.as
index 90c66fa..f253bd2 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/UIItemRendererBase.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/UIItemRendererBase.as
@@ -147,6 +147,27 @@ package org.apache.flex.html.supportClasses
 			_data = value;
 		}
 		
+		private var _listData:Object;
+		
+		[Bindable("__NoChangeEvent__")]
+		/**
+		 *  Additional data about the list structure the itemRenderer may
+		 *  find useful.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get listData():Object
+		{
+			return _listData;
+		}
+		public function set listData(value:Object):void
+		{
+			_listData = value;
+		}
+		
 		private var _labelField:String = "label";
 		
 		/**


[29/37] git commit: [flex-asjs] [refs/heads/spark] - missing headers

Posted by ah...@apache.org.
missing headers


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/ba233ad9
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/ba233ad9
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/ba233ad9

Branch: refs/heads/spark
Commit: ba233ad9860fbef611665353143a8b30a0b86a9d
Parents: b4f5011
Author: Alex Harui <ah...@apache.org>
Authored: Fri Mar 11 12:03:35 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Mar 11 12:03:35 2016 -0800

----------------------------------------------------------------------
 .../org/apache/flex/core/HTMLElementWrapper.as    | 18 ++++++++++++++++++
 .../flex/org/apache/flex/core/IFlexJSElement.as   | 18 ++++++++++++++++++
 .../org/apache/flex/core/WrappedHTMLElement.as    | 18 ++++++++++++++++++
 3 files changed, 54 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ba233ad9/frameworks/projects/Core/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
index bc8e224..4d4999b 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/HTMLElementWrapper.as
@@ -1,3 +1,21 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.core
 {
     COMPILE::AS3

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ba233ad9/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IFlexJSElement.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IFlexJSElement.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IFlexJSElement.as
index ae0cdb1..ff9295b 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IFlexJSElement.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IFlexJSElement.as
@@ -1,3 +1,21 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.core
 {
     COMPILE::AS3

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/ba233ad9/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedHTMLElement.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedHTMLElement.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedHTMLElement.as
index e765e01..b5ff7ba 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedHTMLElement.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/WrappedHTMLElement.as
@@ -1,3 +1,21 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.core
 {
 	COMPILE::JS


[18/37] git commit: [flex-asjs] [refs/heads/spark] - start fixing errors in the cross-compile

Posted by ah...@apache.org.
start fixing errors in the cross-compile


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/7bfeed8a
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/7bfeed8a
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/7bfeed8a

Branch: refs/heads/spark
Commit: 7bfeed8a0bb0743e02f6b6552935c443276eab32
Parents: 02064d1
Author: Alex Harui <ah...@apache.org>
Authored: Sat Feb 27 23:17:05 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Sat Feb 27 23:17:05 2016 -0800

----------------------------------------------------------------------
 .../src/main/flex/flex/display/DisplayObject.as | 367 +------------------
 .../flex/flex/display/DisplayObjectContainer.as |   2 +-
 .../MX/src/main/flex/flex/display/Graphics.as   |  51 +++
 .../MX/src/main/flex/flex/display/MovieClip.as  |  27 ++
 .../MX/src/main/flex/flex/display/Sprite.as     |  14 +-
 .../main/flex/flex/display/TopOfDisplayList.as  |   4 +
 .../main/flex/flex/events/ContextMenuEvent.as   |  12 +
 .../MX/src/main/flex/flex/events/Event.as       |   4 +
 .../src/main/flex/flex/events/IOErrorEvent.as   |  12 +
 .../src/main/flex/flex/events/ProgressEvent.as  |  12 +
 .../MX/src/main/flex/flex/events/TimerEvent.as  |  12 +
 .../MX/src/main/flex/flex/text/TextField.as     |   1 +
 .../MX/src/main/flex/flex/text/TextFieldType.as |  12 +
 .../projects/MX/src/main/flex/flex/ui/Mouse.as  |  50 +++
 .../src/main/flex/mx/binding/BindabilityInfo.as |  72 ++--
 .../MX/src/main/flex/mx/binding/Binding.as      | 106 ++++--
 .../MX/src/main/flex/mx/core/IContainer.as      |   3 +-
 .../src/main/flex/mx/core/ISpriteInterface.as   |   1 -
 .../mx/events/ChildExistenceChangedEvent.as     |   2 +-
 .../main/flex/mx/managers/CursorManagerImpl.as  |  96 +++--
 .../main/flex/mx/managers/IToolTipManager2.as   |   9 +-
 .../src/main/flex/mx/managers/SystemManager.as  |  82 +++--
 .../main/flex/mx/managers/ToolTipManagerImpl.as | 168 +++++----
 .../MX/src/main/flex/mx/states/AddItems.as      |  13 +-
 .../MX/src/main/flex/mx/states/State.as         |   2 +-
 .../flex/mx/utils/DescribeTypeCacheRecord.as    |  40 +-
 .../MX/src/main/flex/mx/utils/ObjectProxy.as    | 126 ++++++-
 .../MX/src/main/flex/mx/utils/OrderedObject.as  |  15 +-
 28 files changed, 749 insertions(+), 566 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
index 0cf041b..2568582 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
@@ -18,370 +18,17 @@
 ////////////////////////////////////////////////////////////////////////////////
 package flex.display
 {
+import flex.display.TopOfDisplayList;
+
 import org.apache.flex.core.IUIBase;
+import org.apache.flex.events.IEventDispatcher;
 import org.apache.flex.geom.Point;
 import org.apache.flex.geom.Rectangle;
 
-public interface DisplayObject
+public interface DisplayObject extends IEventDispatcher
 {
-/*
- *  The methods here would normally just be in IDisplayObject,
- *  but for backward compatibility, they have to be included
- *  directly into IFlexDisplayObject, so they are kept in 
- *  this separate include file.
- */
-
-    /**
-     *  @copy flash.display.DisplayObject#root
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get root():DisplayObject;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#stage
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    COMPILE::LATER
-    function get stage():Stage;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#name
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get name():String;
-    function set name(value:String):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#parent
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get parent():IUIBase;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#mask
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get mask():DisplayObject;
-    function set mask(value:DisplayObject):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#visible
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get visible():Boolean;
-    function set visible(value:Boolean):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#x
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get x():Number;
-    function set x(value:Number):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#y
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get y():Number;
-    function set y(value:Number):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#scaleX
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get scaleX():Number;
-    function set scaleX(value:Number):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#scaleY
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get scaleY():Number;
-    function set scaleY(value:Number):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#mouseX
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get mouseX():Number; // note: no setter
-
-
-    /**
-     *  @copy flash.display.DisplayObject#mouseY
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get mouseY():Number; // note: no setter
-
-
-    /**
-     *  @copy flash.display.DisplayObject#rotation
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get rotation():Number;
-    function set rotation(value:Number):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#alpha
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get alpha():Number;
-    function set alpha(value:Number):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#width
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get width():Number;
-    function set width(value:Number):void;
-
-    /**
-     *  @copy flash.display.DisplayObject#height
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get height():Number;
-    function set height(value:Number):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#cacheAsBitmap
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get cacheAsBitmap():Boolean;
-    function set cacheAsBitmap(value:Boolean):void;
-
-    /**
-     *  @copy flash.display.DisplayObject#opaqueBackground
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get opaqueBackground():Object;
-    function set opaqueBackground(value:Object):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#scrollRect
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get scrollRect():Rectangle;
-    function set scrollRect(value:Rectangle):void;
-
-
-    /**
-     *  @copy flash.display.DisplayObject#filters
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get filters():Array;
-    function set filters(value:Array):void;
-
-    /**
-     *  @copy flash.display.DisplayObject#blendMode
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get blendMode():String;
-    function set blendMode(value:String):void;
-
-    /**
-     *  @copy flash.display.DisplayObject#transform
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    COMPILE::LATER
-    function get transform():Transform;
-    COMPILE::LATER
-    function set transform(value:Transform):void;
-
-    /**
-     *  @copy flash.display.DisplayObject#scale9Grid
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function get scale9Grid():Rectangle;
-    function set scale9Grid(innerRectangle:Rectangle):void;
-
-    /**
-     *  @copy flash.display.DisplayObject#globalToLocal()
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function globalToLocal(point:Point):Point;
-
-    /**
-     *  @copy flash.display.DisplayObject#localToGlobal()
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function localToGlobal(point:Point):Point;
-
-    /**
-     *  @copy flash.display.DisplayObject#getBounds()
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function getBounds(targetCoordinateSpace:DisplayObject):Rectangle;
-
-    /**
-     *  @copy flash.display.DisplayObject#getRect()
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function getRect(targetCoordinateSpace:DisplayObject):Rectangle;
-
-    /**
-     *  @copy flash.display.DisplayObject#loaderInfo
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    COMPILE::LATER
-    function get loaderInfo() : LoaderInfo;
-
-    /**
-     *  @copy flash.display.DisplayObject#hitTestObject()
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function hitTestObject(obj:DisplayObject):Boolean;
-
-    /**
-     *  @copy flash.display.DisplayObject#hitTestPoint()
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean=false):Boolean;
-
-    /**
-     *  @copy flash.display.DisplayObject#accessibilityProperties
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    COMPILE::LATER
-    function get accessibilityProperties() : AccessibilityProperties;
-    COMPILE::LATER
-    function set accessibilityProperties( value : AccessibilityProperties ) : void;
-    
+	include "../../mx/core/IDisplayObjectInterface.as"    
+	
+	function get topOfDisplayList():TopOfDisplayList;
 }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObjectContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObjectContainer.as b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObjectContainer.as
index 939725a..926064a 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObjectContainer.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObjectContainer.as
@@ -23,6 +23,6 @@ package flex.display
 
 	public interface DisplayObjectContainer extends DisplayObject, IUIBase
 	{
-		
+		include "../../mx/core/IDisplayObjectContainerInterface.as"    
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as b/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
new file mode 100644
index 0000000..e439e1e
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
@@ -0,0 +1,51 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flex.display
+{
+	import org.apache.flex.core.graphics.GraphicsContainer;
+	import org.apache.flex.core.graphics.SolidColor;
+	
+	public class Graphics
+	{
+		private var host:GraphicsContainer;
+		
+		public function Graphics(host:GraphicsContainer)
+		{
+			this.host = host;
+		}
+		
+		public function beginFill(color:uint, alpha:Number = 1.0):void
+		{
+			var sc:SolidColor = new SolidColor();
+			sc.color = color;
+			host.fill = sc;
+		}
+		
+		public function drawRect(x:Number, y:Number, width:Number, height:Number):void
+		{
+			host.drawRect(x, y, width, height);	
+		}
+		
+		public function endFill():void
+		{
+			// really, we should queue up the drawing commands and execute them here.
+		}
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as b/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
new file mode 100644
index 0000000..53e5eb1
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
@@ -0,0 +1,27 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flex.display
+{
+	import org.apache.flex.core.UIBase;
+	
+	public class MovieClip extends Sprite
+	{
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
index ff3e16e..e0ce060 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
@@ -19,7 +19,19 @@
 
 package flex.display
 {
-	public interface Sprite extends InteractiveObject
+	import org.apache.flex.core.graphics.GraphicsContainer;
+	
+	public class Sprite extends GraphicsContainer implements InteractiveObject
 	{
+		private var _name:String;
+		public function get name():String
+		{
+			return _name;
+		}
+		public function set name(value:String):void
+		{
+			_name = value;
+		}
+		
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as b/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
index 41ef735..459331e 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
@@ -23,6 +23,10 @@ COMPILE::AS3
 {
 	import flash.display.Stage;
 }
+COMPILE::JS
+{
+	import org.apache.flex.core.UIBase;
+}
 
 COMPILE::AS3
 public class TopOfDisplayList extends Stage

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/events/ContextMenuEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/events/ContextMenuEvent.as b/frameworks/projects/MX/src/main/flex/flex/events/ContextMenuEvent.as
new file mode 100644
index 0000000..caad1be
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/events/ContextMenuEvent.as
@@ -0,0 +1,12 @@
+package flex.events
+{	
+	public class ContextMenuEvent extends Event
+	{
+		public function ContextMenuEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
+		{
+			super(type, bubbles, cancelable);
+		}
+		
+		public static const MENU_SELECT:String = "menuSelect";
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/events/Event.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/events/Event.as b/frameworks/projects/MX/src/main/flex/flex/events/Event.as
index 558afa5..7260f83 100644
--- a/frameworks/projects/MX/src/main/flex/flex/events/Event.as
+++ b/frameworks/projects/MX/src/main/flex/flex/events/Event.as
@@ -9,8 +9,12 @@ package flex.events
 			super(type, bubbles, cancelable);
 		}
 		
+		protected var bubbles:Boolean;
+		protected var cancelable:Boolean;
+		
 		public static const ADDED:String = "added";
 		public static const CHANGE:String = "change";
+		public static const COMPLETE:String = "change";
 		public static const ENTER_FRAME:String = "enterFrame";
 		public static const REMOVED:String = "removed";
 		public static const REMOVED_FROM_STAGE:String = "removedFromStage";

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/events/IOErrorEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/events/IOErrorEvent.as b/frameworks/projects/MX/src/main/flex/flex/events/IOErrorEvent.as
new file mode 100644
index 0000000..bfda542
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/events/IOErrorEvent.as
@@ -0,0 +1,12 @@
+package flex.events
+{	
+	public class IOErrorEvent extends Event
+	{
+		public function IOErrorEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
+		{
+			super(type, bubbles, cancelable);
+		}
+		
+		public static const IO_ERROR:String = "ioError";
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/events/ProgressEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/events/ProgressEvent.as b/frameworks/projects/MX/src/main/flex/flex/events/ProgressEvent.as
new file mode 100644
index 0000000..30e2289
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/events/ProgressEvent.as
@@ -0,0 +1,12 @@
+package flex.events
+{	
+	public class ProgressEvent extends Event
+	{
+		public function ProgressEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
+		{
+			super(type, bubbles, cancelable);
+		}
+		
+		public static const PROGRESS:String = "progress";
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/events/TimerEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/events/TimerEvent.as b/frameworks/projects/MX/src/main/flex/flex/events/TimerEvent.as
new file mode 100644
index 0000000..9864b85
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/events/TimerEvent.as
@@ -0,0 +1,12 @@
+package flex.events
+{	
+	public class TimerEvent extends Event
+	{
+		public function TimerEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
+		{
+			super(type, bubbles, cancelable);
+		}
+		
+		public static const TIMER:String = "timer";
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
index a60bac1..4de38f3 100644
--- a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
+++ b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
@@ -6,6 +6,7 @@ COMPILE::AS3
 }
 COMPILE::JS
 {
+	import mx.core.IUITextField;
 	import org.apache.flex.html.Label;
 }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/text/TextFieldType.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/text/TextFieldType.as b/frameworks/projects/MX/src/main/flex/flex/text/TextFieldType.as
new file mode 100644
index 0000000..39df8a0
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/text/TextFieldType.as
@@ -0,0 +1,12 @@
+package flex.text
+{
+	public class TextFieldType
+	{
+		public function TextFieldType()
+		{
+		}
+		
+		public static const INPUT:String = "input";
+		public static const DYNAMIC:String = "dynamic";
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/flex/ui/Mouse.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/ui/Mouse.as b/frameworks/projects/MX/src/main/flex/flex/ui/Mouse.as
new file mode 100644
index 0000000..68e39f6
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/ui/Mouse.as
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flex.ui
+{
+	public class Mouse
+	{
+		public function Mouse()
+		{
+		}
+		
+		COMPILE::JS
+		private static var styleElement:HTMLStyleElement;
+		
+		COMPILE::JS
+		public static function hide():void
+		{
+			if (!styleElement)
+				styleElement = document.createElement("STYLE");
+			var css:CSSStyleSheet = styleElement.sheet as CSSStyleSheet;
+			css.insertRule("* { cursor: none; }", 0);
+		}
+		
+		COMPILE::JS
+		public static function show():void
+		{
+			if (!styleElement)
+				return;
+			var css:CSSStyleSheet = styleElement.sheet as CSSStyleSheet;
+			css.deleteRule(0);
+		}
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/binding/BindabilityInfo.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/binding/BindabilityInfo.as b/frameworks/projects/MX/src/main/flex/mx/binding/BindabilityInfo.as
index 5cbf6ef..dec8f6a 100644
--- a/frameworks/projects/MX/src/main/flex/mx/binding/BindabilityInfo.as
+++ b/frameworks/projects/MX/src/main/flex/mx/binding/BindabilityInfo.as
@@ -19,9 +19,13 @@
 
 package mx.binding
 {
-
 import mx.events.PropertyChangeEvent;
 
+import org.apache.flex.reflection.MetaDataArgDefinition;
+import org.apache.flex.reflection.MetaDataDefinition;
+import org.apache.flex.reflection.MethodDefinition;
+import org.apache.flex.reflection.TypeDefinition;
+
 [ExcludeClass]
 
 /**
@@ -114,7 +118,7 @@ public class BindabilityInfo
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
 	 */
-	public function BindabilityInfo(typeDescription:XML)
+	public function BindabilityInfo(typeDescription:TypeDefinition)
 	{
 		super();
 
@@ -130,7 +134,7 @@ public class BindabilityInfo
 	/**
 	 *  @private
 	 */
-	private var typeDescription:XML;
+	private var typeDescription:TypeDefinition;
 	
 	/**
 	 *  @private
@@ -169,16 +173,33 @@ public class BindabilityInfo
 			changeEvents = copyProps(getClassChangeEvents(), {});
 
 			// Get child-specific events.
-			var childDesc:XMLList =
-				typeDescription.accessor.(@name == childName) +
-				typeDescription.method.(@name == childName);
+			var childDesc:Array = [];
+			for each (var p:MethodDefinition in typeDescription.accessors)
+			{
+				if (p.name == childName)
+				{
+					childDesc.push(p);
+					break;
+				}
+			}
+			if (childName == null)
+			{
+				for each (var p:MethodDefinition in typeDescription.methods)
+				{
+					if (p.name == childName)
+					{
+						childDesc.push(p);
+						break;
+					}
+				}				
+			}
 			
 			var numChildren:int = childDesc.length();
 
 			if (numChildren == 0)
 			{
 				// we've been asked for events on an unknown property
-				if (!typeDescription.@dynamic)
+				if (!typeDescription.dynamic)
 				{
 					trace("warning: no describeType entry for '" +
 						  childName + "' on non-dynamic type '" +
@@ -194,7 +215,8 @@ public class BindabilityInfo
 						  "':\n" + childDesc);
 				}
 
-				addBindabilityEvents(childDesc.metadata, changeEvents);
+				var prop:MethodDefinition = childDesc[0];
+				addBindabilityEvents(prop.metadata, changeEvents);
 			}
 
 			childChangeEvents[childName] = changeEvents;
@@ -229,13 +251,18 @@ public class BindabilityInfo
 	/**
 	 *  @private
 	 */
-	private function addBindabilityEvents(metadata:XMLList,
+	private function addBindabilityEvents(metadata:Array,
 										  eventListObj:Object):void
 	{
-		addChangeEvents(metadata.(@name == BINDABLE), eventListObj, true);
-		addChangeEvents(metadata.(@name == CHANGE_EVENT), eventListObj, true);
-		addChangeEvents(metadata.(@name == NON_COMMITTING_CHANGE_EVENT),
-						eventListObj, false);
+		for each (var p:MetaDataDefinition in metadata)
+		{
+			if (p.name == BINDABLE)
+				addChangeEvents(p.args, eventListObj, true);
+			else if (p.name == CHANGE_EVENT)
+				addChangeEvents(p.args, eventListObj, true);
+			else if (p.name == NON_COMMITTING_CHANGE_EVENT)
+				addChangeEvents(p.args, eventListObj, false);
+		}
 	}
 
 	/**
@@ -244,22 +271,21 @@ public class BindabilityInfo
 	 *  to an event list object.
 	 *  Note: metadata's first arg value is assumed to be change event name.
 	 */
-	private function addChangeEvents(metadata:XMLList, eventListObj:Object, isCommit:Boolean):void
+	private function addChangeEvents(metadata:Array, eventListObj:Object, isCommit:Boolean):void
 	{
-		for each (var md:XML in metadata)
+		var atLeastOne:Boolean = false;
+		for each (var md:MetaDataArgDefinition in metadata)
 		{
-			var arg:XMLList = md.arg;
-			if (arg.length() > 0)
+			if (md.value)
 			{
-				var eventName:String = arg[0].@value;
+				var eventName:String = md.@value;
 				eventListObj[eventName] = isCommit;
-			}
-			else
-			{
-				trace("warning: unconverted Bindable metadata in class '" +
-					  typeDescription.@name + "'");
+				atLeastOne = true;
 			}
 		}
+		if (!atLeastOne)
+			trace("warning: unconverted Bindable metadata in class '" +
+				typeDescription.name + "'");
 	}
 
 	/**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/binding/Binding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/binding/Binding.as b/frameworks/projects/MX/src/main/flex/mx/binding/Binding.as
index a8c569a..2cdca49 100644
--- a/frameworks/projects/MX/src/main/flex/mx/binding/Binding.as
+++ b/frameworks/projects/MX/src/main/flex/mx/binding/Binding.as
@@ -160,7 +160,7 @@ public class Binding
      *  We will resynch with our binding if isEnabled is set to true
      *  and one or more of our watchers fired while we were disabled.
      */
-    mx_internal var disabledRequests:Dictionary;
+    mx_internal var disabledRequests:Array;
 
 	/**
  	 *  @private
@@ -357,8 +357,16 @@ public class Binding
         }
         catch(error:Error)
         {
-            if (allowedErrors[error.errorID] == null)
-                throw error;
+			COMPILE::AS3
+			{
+				if (allowedErrors[error.errorID] == null)
+					throw error;					
+			}
+			COMPILE::JS
+			{
+				if (allowedErrors[error.name] == null)
+					throw error;					
+			}
         }
         finally
         {
@@ -375,9 +383,9 @@ public class Binding
         if (o != null)
         {
             disabledRequests = (disabledRequests != null) ? disabledRequests : 
-                new Dictionary(true);
+				[];
             
-            disabledRequests[o] = true;
+            disabledRequests.push(o);
         }
     }  
     
@@ -389,7 +397,7 @@ public class Binding
     {
         if (disabledRequests != null)
         {
-            for (var key:Object in disabledRequests) 
+            for each (var key:Object in disabledRequests) 
             {
                 execute(key);
             }
@@ -445,21 +453,42 @@ public class Binding
 	            //   Error #1055: - has no properties.
 	            //   Error #1069: Property - not found on - and there is no default value
 	            // We allow any other errors to be thrown.
-	            if ((error.errorID != 1006) &&
-	                (error.errorID != 1009) &&
-	                (error.errorID != 1010) &&
-	                (error.errorID != 1055) &&
-	                (error.errorID != 1069))
-	            {
-	                throw error;
-	            }
-	            else
-	            {
-	                if (BindingManager.debugDestinationStrings[destString])
-	                {
-	                    trace("Binding: destString = " + destString + ", error = " + error);
-	                }
-	            }
+				COMPILE::AS3
+				{
+					if ((error.errorID != 1006) &&
+						(error.errorID != 1009) &&
+						(error.errorID != 1010) &&
+						(error.errorID != 1055) &&
+						(error.errorID != 1069))
+					{
+						throw error;
+					}
+					else
+					{
+						if (BindingManager.debugDestinationStrings[destString])
+						{
+							trace("Binding: destString = " + destString + ", error = " + error);
+						}
+					}						
+				}
+				COMPILE::JS
+				{
+					if ((error.name != 1006) &&
+						(error.name != 1009) &&
+						(error.name != 1010) &&
+						(error.name != 1055) &&
+						(error.name != 1069))
+					{
+						throw error;
+					}
+					else
+					{
+						if (BindingManager.debugDestinationStrings[destString])
+						{
+							trace("Binding: destString = " + destString + ", error = " + error);
+						}
+					}
+				}
 			}
         }
 
@@ -470,6 +499,7 @@ public class Binding
 	 *	@private
 	 *  true if XMLLists x and y contain the same node sequence.
 	 */
+	COMPILE::LATER
 	private static function nodeSeqEqual(x:XMLList, y:XMLList):Boolean
 	{
 		var n:uint = x.length();
@@ -504,18 +534,28 @@ public class Binding
         	//	Suppress binding assignments on non-simple XML: identical single nodes, or
         	//	lists over identical node sequences.
 			//	Note: outer tests are inline for efficiency
-        	if (!(lastValue is XML && lastValue.hasComplexContent() && lastValue === value) &&
-        		!(lastValue is XMLList && lastValue.hasComplexContent() && value is XMLList &&
-        			nodeSeqEqual(lastValue as XMLList, value as XMLList)))
-        	{
-	            destFunc.call(document, value);
-
-                if(destFuncFailed == false) {
-                    //	Note: state is not updated if destFunc throws
-                    lastValue = value;
-                    hasHadValue = true;
-	            }
-	        }
+			COMPILE::LATER
+			{
+	        	if (!(lastValue is XML && lastValue.hasComplexContent() && lastValue === value) &&
+	        		!(lastValue is XMLList && lastValue.hasComplexContent() && value is XMLList &&
+	        			nodeSeqEqual(lastValue as XMLList, value as XMLList)))
+	        	{
+		            destFunc.call(document, value);
+	
+	                if(destFuncFailed == false) {
+	                    //	Note: state is not updated if destFunc throws
+	                    lastValue = value;
+	                    hasHadValue = true;
+		            }
+		        }
+			}
+			destFunc.call(document, value);
+			
+			if(destFuncFailed == false) {
+				//	Note: state is not updated if destFunc throws
+				lastValue = value;
+				hasHadValue = true;
+			}
         }
     }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/core/IContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IContainer.as b/frameworks/projects/MX/src/main/flex/mx/core/IContainer.as
index a482148..7dfa535 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IContainer.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IContainer.as
@@ -41,16 +41,17 @@ COMPILE::AS3
 	import flash.display.DisplayObject;
 	import flash.display.Sprite;		
 	import flash.geom.Rectangle;
+	import flash.display.Graphics;
 }
 COMPILE::JS
 {
 	import flex.display.DisplayObject;
 	import flex.display.Sprite;		
 	import org.apache.flex.geom.Rectangle;
+	import flex.display.Graphics;
 }
 COMPILE::LATER
 {
-	import flash.display.Graphics;
 	import flash.media.SoundTransform;
 }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/core/ISpriteInterface.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/ISpriteInterface.as b/frameworks/projects/MX/src/main/flex/mx/core/ISpriteInterface.as
index d7d9757..4639a33 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/ISpriteInterface.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/ISpriteInterface.as
@@ -30,7 +30,6 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-	COMPILE::LATER
     function get graphics():Graphics;
 
     /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/events/ChildExistenceChangedEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/events/ChildExistenceChangedEvent.as b/frameworks/projects/MX/src/main/flex/mx/events/ChildExistenceChangedEvent.as
index 488cab4..27f7ab3 100644
--- a/frameworks/projects/MX/src/main/flex/mx/events/ChildExistenceChangedEvent.as
+++ b/frameworks/projects/MX/src/main/flex/mx/events/ChildExistenceChangedEvent.as
@@ -28,7 +28,7 @@ COMPILE::JS
 {
 	import flex.display.DisplayObject;		
 }
-import org.apache.flex.events.Event;
+import flex.events.Event;
 
 /**
  *  Represents events that are dispatched when a the child of a control

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/managers/CursorManagerImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/CursorManagerImpl.as b/frameworks/projects/MX/src/main/flex/mx/managers/CursorManagerImpl.as
index a66b83e..788b56e 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/CursorManagerImpl.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/CursorManagerImpl.as
@@ -20,26 +20,46 @@
 package mx.managers
 {
 
-import flash.display.DisplayObject;
-import flash.display.DisplayObjectContainer;
-import flash.display.InteractiveObject;
-import flash.display.Sprite;
-import flash.events.ContextMenuEvent;
-import flash.events.Event;
-import flash.events.EventDispatcher;
-import flash.events.IEventDispatcher;
-import flash.events.IOErrorEvent;
-import flash.events.MouseEvent;
-import flash.events.ProgressEvent;
-import flash.geom.Point;
-import flash.text.TextField;
-import flash.text.TextFieldType;
-import flash.ui.Mouse;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;
+	import flash.display.InteractiveObject;
+	import flash.display.Sprite;		
+	import flash.events.IOErrorEvent;
+	import flash.events.Event;
+	import flash.events.ProgressEvent;
+	import flash.events.ContextMenuEvent;
+	import flash.text.TextField;
+	import flash.text.TextFieldType;
+	import flash.ui.Mouse;
+}
+COMPILE::JS
+{
+	import flex.display.DisplayObject;
+	import flex.display.DisplayObjectContainer;
+	import flex.display.InteractiveObject;
+	import flex.display.Sprite;
+	import flex.events.ContextMenuEvent;
+	import flex.events.Event;
+	import flex.events.IOErrorEvent;
+	import flex.events.ProgressEvent;
+	import flex.text.TextField;
+	import flex.text.TextFieldType;
+	import flex.ui.Mouse;
+}
+import org.apache.flex.events.EventDispatcher;
+import org.apache.flex.events.IEventDispatcher;
+import org.apache.flex.events.MouseEvent;
+import org.apache.flex.geom.Point;
 import mx.core.FlexGlobals;
-import org.apache.flex.core.UIBase;
+import org.apache.flex.utils.PointUtils;
 import mx.core.mx_internal;
 import mx.core.ISystemCursorClient;
-import mx.core.IUIComponent;
+COMPILE::JS
+	{
+		import mx.core.UIComponent;		
+	}
 import mx.events.Request;
 import mx.styles.CSSStyleDeclaration;
 import mx.styles.StyleManager;
@@ -576,6 +596,7 @@ public class CursorManagerImpl extends EventDispatcher implements ICursorManager
     /**
      *  @private
      *  Decides what cursor to display.
+	 *  @flexjsignorecoercion flex.display.Sprite
      */
     private function showCurrentCursor():void 
     {
@@ -595,10 +616,13 @@ public class CursorManagerImpl extends EventDispatcher implements ICursorManager
 				{
 					// The first time a cursor is requested of the CursorManager,
 					// create a Sprite to hold the cursor symbol
-					cursorHolder = new UIBase();
+					cursorHolder = new UIComponent() as Sprite;
 					cursorHolder.name = "cursorHolder";
+					COMPILE::AS3
+					{
 					cursorHolder.mouseEnabled = false;
 					cursorHolder.mouseChildren = false;
+					}
                		systemManager.cursorChildren.addChild(cursorHolder);
 				}
             }
@@ -620,10 +644,13 @@ public class CursorManagerImpl extends EventDispatcher implements ICursorManager
                 
                 if (currentCursor)
                 {
-                    if (currentCursor is InteractiveObject)
-                        InteractiveObject(currentCursor).mouseEnabled = false;
-                    if (currentCursor is DisplayObjectContainer)
-                        DisplayObjectContainer(currentCursor).mouseChildren = false;
+					COMPILE::AS3
+					{
+						if (currentCursor is InteractiveObject)
+							InteractiveObject(currentCursor).mouseEnabled = false;
+						if (currentCursor is DisplayObjectContainer)
+							DisplayObjectContainer(currentCursor).mouseChildren = false;							
+					}
                     cursorHolder.addChild(currentCursor);
                     
                     addContextMenuHandlers();
@@ -633,8 +660,8 @@ public class CursorManagerImpl extends EventDispatcher implements ICursorManager
                     if (systemManager is SystemManager)
                     {
 						pt = new Point(SystemManager(systemManager).mouseX + item.x, SystemManager(systemManager).mouseY + item.y);
-						pt = SystemManager(systemManager).localToGlobal(pt);
-						pt = cursorHolder.parent.globalToLocal(pt);
+						pt = PointUtils.localToGlobal(pt, systemManager);
+						pt = PointUtils.globalToLocal(pt, cursorHolder.parent);
                     	cursorHolder.x = pt.x;
                     	cursorHolder.y = pt.y;
                     }
@@ -642,8 +669,8 @@ public class CursorManagerImpl extends EventDispatcher implements ICursorManager
                     else if (systemManager is DisplayObject)
                     {
 						pt = new Point(DisplayObject(systemManager).mouseX + item.x, DisplayObject(systemManager).mouseY + item.y);
-						pt = DisplayObject(systemManager).localToGlobal(pt);
-						pt = cursorHolder.parent.globalToLocal(pt);
+						pt = PointUtils.localToGlobal(pt, systemManager);
+						pt = PointUtils.globalToLocal(pt, cursorHolder.parent);
                     	cursorHolder.x = DisplayObject(systemManager).mouseX + item.x;
                     	cursorHolder.y = DisplayObject(systemManager).mouseY + item.y;
                     }
@@ -756,11 +783,14 @@ public class CursorManagerImpl extends EventDispatcher implements ICursorManager
             const app:InteractiveObject = systemManager.document as InteractiveObject;
         	const sm:InteractiveObject = systemManager as InteractiveObject;
         	
-        	if (app && app.contextMenu)
-        		app.contextMenu.removeEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler, true);
-
-        	if (sm && sm.contextMenu)
-        		sm.contextMenu.removeEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler, true);
+			COMPILE::AS3
+			{
+				if (app && app.contextMenu)
+					app.contextMenu.removeEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler, true);
+				
+				if (sm && sm.contextMenu)
+					sm.contextMenu.removeEventListener(ContextMenuEvent.MENU_SELECT, contextMenu_menuSelectHandler, true);					
+			}
    
         	listenForContextMenu = false; 	
         }
@@ -875,8 +905,8 @@ public class CursorManagerImpl extends EventDispatcher implements ICursorManager
     mx_internal function mouseMoveHandler(event:MouseEvent):void
     {
         
-		var pt:Point = new Point(event.stageX, event.stageY);
-		pt = cursorHolder.parent.globalToLocal(pt);
+		var pt:Point = new Point(event.screenX, event.screenY);
+		pt = PointUtils.globalToLocal(pt, cursorHolder.parent);
 		pt.x += currentCursorXOffset;
 		pt.y += currentCursorYOffset;
        	cursorHolder.x = pt.x;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/managers/IToolTipManager2.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/IToolTipManager2.as b/frameworks/projects/MX/src/main/flex/mx/managers/IToolTipManager2.as
index 05b0c24..db5af2d 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/IToolTipManager2.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/IToolTipManager2.as
@@ -20,7 +20,14 @@
 package mx.managers
 {
 
-import flash.display.DisplayObject;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;		
+}
+COMPILE::JS
+{
+	import flex.display.DisplayObject;		
+}
 
 import mx.core.IToolTip;
 import mx.core.IUIComponent;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
index 1a6d60a..649a9b5 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
@@ -20,13 +20,25 @@
 package mx.managers
 {
 
-import flash.display.DisplayObject;
-import flash.display.DisplayObjectContainer;
-import flash.display.Graphics;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;
+	import flash.display.Graphics;
+	import flash.display.MovieClip;
+	import flash.display.Sprite;
+	import flash.display.LoaderInfo;
+		
+}
+COMPILE::JS
+{
+	import flex.display.DisplayObject;
+	import flex.display.DisplayObjectContainer;
+	import flex.display.Graphics;
+	import flex.display.MovieClip;
+	import flex.display.Sprite;	
+}
 import flash.display.Loader;
-import flash.display.LoaderInfo;
-import flash.display.MovieClip;
-import flash.display.Sprite;
 import flash.display.Stage;
 import flash.display.StageAlign;
 import flash.display.StageQuality;
@@ -43,8 +55,8 @@ import flash.text.Font;
 import flash.text.TextFormat;
 import flash.ui.Keyboard;
 import flash.utils.Dictionary;
-import flash.utils.Timer;
-import flash.utils.getQualifiedClassName;
+import org.apache.flex.utils.Timer;
+import org.apache.flex.reflection.getQualifiedClassName;
 
 import mx.core.IChildList;
 import mx.core.IFlexDisplayObject;
@@ -240,14 +252,17 @@ public class SystemManager extends MovieClip
 
         super();
 
-        // Loaded SWFs don't get a stage right away
-        // and shouldn't override the main SWF's setting anyway.
-        if (stage)
-        {
-            stage.scaleMode = StageScaleMode.NO_SCALE;
-            stage.align = StageAlign.TOP_LEFT;
-            stage.quality = StageQuality.HIGH;
-        }
+		COMPILE::AS3
+		{
+			// Loaded SWFs don't get a stage right away
+			// and shouldn't override the main SWF's setting anyway.
+			if (stage)
+			{
+				stage.scaleMode = StageScaleMode.NO_SCALE;
+				stage.align = StageAlign.TOP_LEFT;
+				stage.quality = StageQuality.HIGH;
+			}				
+		}
 
         // If we don't have a stage then we are not top-level,
         // unless there are no other top-level managers, in which
@@ -261,14 +276,24 @@ public class SystemManager extends MovieClip
         if (topLevel)
             SystemManagerGlobals.topLevelSystemManagers.push(this);
 
-        // Make sure to stop the playhead on the current frame.
-        stop();
+		COMPILE::AS3
+		{
+			// Make sure to stop the playhead on the current frame.
+			stop();				
+		}
 
         // Listen for the last frame (param is 0-indexed) to be executed.
         //addFrameScript(totalFrames - 1, frameEndHandler);
 
-        if (root && root.loaderInfo)
-            root.loaderInfo.addEventListener(Event.INIT, initHandler);
+		COMPILE::AS3
+		{
+			if (root && root.loaderInfo)
+				root.loaderInfo.addEventListener(Event.INIT, initHandler);				
+		}
+		COMPILE::JS
+		{
+			initHandler(null);
+		}
             
     }
 
@@ -2024,13 +2049,16 @@ public class SystemManager extends MovieClip
     {
         var mainClassName:String = info()["mainClassName"];
 
-        if (mainClassName == null)
-        {
-            var url:String = loaderInfo.loaderURL;
-            var dot:int = url.lastIndexOf(".");
-            var slash:int = url.lastIndexOf("/");
-            mainClassName = url.substring(slash + 1, dot);
-        }
+		COMPILE::AS3
+		{
+			if (mainClassName == null)
+			{
+				var url:String = loaderInfo.loaderURL;
+				var dot:int = url.lastIndexOf(".");
+				var slash:int = url.lastIndexOf("/");
+				mainClassName = url.substring(slash + 1, dot);
+			}				
+		}
 
         var mainClass:Class = Class(getDefinitionByName(mainClassName));
         

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as b/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
index 8a341fe..a882de4 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
@@ -19,37 +19,47 @@
 
 package mx.managers
 {
-
-    import flash.display.DisplayObject;
-    import flash.events.Event;
-    import flash.events.EventDispatcher;
-    import flash.events.MouseEvent;
-    import flash.events.TimerEvent;
-    import flash.geom.Point;
-    import flash.geom.Rectangle;
-    import flash.utils.Timer;
-
-    import mx.controls.ToolTip;
-    import mx.core.FlexGlobals;
-    import mx.core.FlexVersion;
-    import mx.core.IFlexDisplayObject;
-    import mx.core.IFlexModule;
-    import mx.core.IInvalidating;
-    import mx.core.ILayoutDirectionElement;
-    import mx.core.IToolTip;
-    import mx.core.IUIComponent;
-    import mx.core.IVisualElement;
-    import mx.core.LayoutDirection;
-    import mx.core.mx_internal;
-    import mx.effects.EffectManager;
-    import mx.effects.IAbstractEffect;
-    import mx.events.DynamicEvent;
-    import mx.events.EffectEvent;
-    import mx.events.ToolTipEvent;
-    import mx.styles.IStyleClient;
-    import mx.validators.IValidatorListener;
-
-    use namespace mx_internal;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;		
+	import flash.events.TimerEvent;
+}
+COMPILE::JS
+{
+	import mx.managers.SystemManagerGlobals;
+	
+	import flex.display.DisplayObject;
+	import flex.events.TimerEvent;
+}
+import org.apache.flex.events.Event;
+import org.apache.flex.events.EventDispatcher;
+import org.apache.flex.events.MouseEvent;
+import org.apache.flex.geom.Point;
+import org.apache.flex.geom.Rectangle;
+import org.apache.flex.utils.PointUtils;
+import org.apache.flex.utils.Timer;
+
+import mx.controls.ToolTip;
+import mx.core.FlexGlobals;
+import mx.core.FlexVersion;
+import mx.core.IFlexDisplayObject;
+import mx.core.IFlexModule;
+import mx.core.IInvalidating;
+import mx.core.ILayoutDirectionElement;
+import mx.core.IToolTip;
+import mx.core.IUIComponent;
+import mx.core.IVisualElement;
+import mx.core.LayoutDirection;
+import mx.core.mx_internal;
+import mx.effects.EffectManager;
+import mx.effects.IAbstractEffect;
+import mx.events.DynamicEvent;
+import mx.events.EffectEvent;
+import mx.events.ToolTipEvent;
+import mx.styles.IStyleClient;
+import mx.validators.IValidatorListener;
+
+use namespace mx_internal;
 
 [ExcludeClass]
 
@@ -129,6 +139,10 @@ public class ToolTipManagerImpl extends EventDispatcher
         if (hasEventListener("initialize"))
     		dispatchEvent(new Event("initialize"));
 
+		COMPILE::JS
+		{
+			SystemManagerGlobals.topLevelSystemManagers[0].addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, true);		
+		}
     }
 
     //--------------------------------------------------------------------------
@@ -686,34 +700,46 @@ public class ToolTipManagerImpl extends EventDispatcher
      *  @private
      *  Returns true if the mouse is over the specified target.
      */
-    private static function mouseIsOver(target:DisplayObject):Boolean
+    private function mouseIsOver(target:DisplayObject):Boolean
     {
-    	if (!target || !target.stage)
-    		return false;
-    		
-    	//SDK:13465 - If we pass through the above if block, then
-    	//we have a target component and its been added to the 
-    	//display list. If the mouse coordinates are (0,0), there 
-    	//is a chance the component has not been positioned yet 
-    	//and we'll end up mistakenly showing tooltips since the 
-    	//target hitTest will return true. 
-    	if ((target.stage.mouseX == 0)	 && (target.stage.mouseY == 0))
-    		return false;
-        
-        if (target is ILayoutManagerClient && !ILayoutManagerClient(target).initialized)
-            return false;
-		
-		if (target is IVisualElement && !IVisualElement(target).visible)
-			return false;
-		
-		if (target is IFlexDisplayObject && !IFlexDisplayObject(target).visible)
-			return false;
-    		
-        if (!isVisibleParentsIncluded(target))
-            return false;
-        
-    	return target.hitTestPoint(target.stage.mouseX,
-    							   target.stage.mouseY, true);
+		COMPILE::AS3
+		{
+			if (!target || !target.stage)
+				return false;
+			
+			//SDK:13465 - If we pass through the above if block, then
+			//we have a target component and its been added to the 
+			//display list. If the mouse coordinates are (0,0), there 
+			//is a chance the component has not been positioned yet 
+			//and we'll end up mistakenly showing tooltips since the 
+			//target hitTest will return true. 
+			if ((target.stage.mouseX == 0)	 && (target.stage.mouseY == 0))
+				return false;
+			
+			if (target is ILayoutManagerClient && !ILayoutManagerClient(target).initialized)
+				return false;
+			
+			if (target is IVisualElement && !IVisualElement(target).visible)
+				return false;
+			
+			if (target is IFlexDisplayObject && !IFlexDisplayObject(target).visible)
+				return false;
+			
+			if (!isVisibleParentsIncluded(target))
+				return false;
+			
+			return target.hitTestPoint(target.stage.mouseX,
+				target.stage.mouseY, true);				
+		}
+		COMPILE::JS
+		{
+			var screenPos:Point = new Point(target.x, target.y);
+			screenPos = PointUtils.localToGlobal(screenPos, target);
+			var screenX:Number = lastMouseEvent.screenX;
+			var screenY:Number = lastMouseEvent.screenY;
+			return ((screenPos.x <= screenX && screenX <= screenPos.x + target.width) &&
+					(screenPos.y <= screenY && screenY <= screenPos.y + target.height));
+		}
     }
     
     /**
@@ -968,9 +994,12 @@ public class ToolTipManagerImpl extends EventDispatcher
             currentTarget is IFlexModule)
             IFlexModule(currentToolTip).moduleFactory = IFlexModule(currentTarget).moduleFactory;
         
+		COMPILE::LATER
+		{
         if (hasEventListener("createTip"))
     		if (!dispatchEvent(new Event("createTip", false, true)))
 	    		return;
+		}
 
         var sm:ISystemManager = getSystemManager(currentTarget) as ISystemManager;
        	sm.topLevelSystemManager.toolTipChildren.addChild(currentToolTip as DisplayObject);
@@ -1221,8 +1250,8 @@ public class ToolTipManagerImpl extends EventDispatcher
                 y = screenHeight - toolTipHeight;
             
             var pos:Point = new Point(x, y);
-            pos = DisplayObject(sm).localToGlobal(pos);
-            pos = DisplayObject(sm.getSandboxRoot()).globalToLocal(pos);
+            pos = PointUtils.localToGlobal(pos, sm);
+            pos = PointUtils.globalToLocal(pos, sm.getSandboxRoot());
             x = pos.x;
             y = pos.y;
         }
@@ -1592,14 +1621,14 @@ public class ToolTipManagerImpl extends EventDispatcher
     {
         var upperLeft:Point = new Point(0, 0);
         
-        upperLeft = obj.localToGlobal(upperLeft);
+        upperLeft = PointUtils.localToGlobal(upperLeft, obj);
         
         // If the layout has been mirrored, then the 0,0 is the uppper
         // right corner; compensate here.
         if (mirror)
             upperLeft.x -= obj.width;
 
-        upperLeft = parent.globalToLocal(upperLeft);
+        upperLeft = PointUtils.globalToLocal(upperLeft, obj);
         
         return new Rectangle(upperLeft.x, upperLeft.y, obj.width, obj.height);
     }
@@ -1624,10 +1653,11 @@ public class ToolTipManagerImpl extends EventDispatcher
      *  @private
      *  This handler is called when the mouse moves out of an object
      *  with a toolTip.
+	 *  @flexjsignorecoercion flex.display.DisplayObject
      */
     mx_internal function toolTipMouseOutHandler(event:MouseEvent):void
     {
-        checkIfTargetChanged(event.relatedObject);
+        checkIfTargetChanged(event.relatedObject as DisplayObject);
     }
 
     /**
@@ -1644,10 +1674,11 @@ public class ToolTipManagerImpl extends EventDispatcher
      *  @private
      *  This handler is called when the mouse moves out of an object
      *  with an errorString.
+	 *  @flexjsignorecoercion flex.display.DisplayObject
      */
     mx_internal function errorTipMouseOutHandler(event:MouseEvent):void
     {
-        checkIfTargetChanged(event.relatedObject);
+        checkIfTargetChanged(event.relatedObject as DisplayObject);
     }
 
     /**
@@ -1711,6 +1742,15 @@ public class ToolTipManagerImpl extends EventDispatcher
     {
         reset();
     }
+	
+	COMPILE::JS
+	private var lastMouseEvent:MouseEvent;
+	
+	COMPILE::JS
+	private function mouseMoveHandler(event:MouseEvent):void
+	{
+		lastMouseEvent = event;
+	}
 
 }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/states/AddItems.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/states/AddItems.as b/frameworks/projects/MX/src/main/flex/mx/states/AddItems.as
index b840bca..68be25a 100644
--- a/frameworks/projects/MX/src/main/flex/mx/states/AddItems.as
+++ b/frameworks/projects/MX/src/main/flex/mx/states/AddItems.as
@@ -19,9 +19,16 @@
 
 package mx.states 
 {
-import flash.display.DisplayObject;
-import flash.events.Event;
-import flash.events.IEventDispatcher;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;		
+}
+COMPILE::JS
+{
+	import flex.display.DisplayObject;			
+}
+import org.apache.flex.events.Event;
+import org.apache.flex.events.IEventDispatcher;
 
 import mx.binding.BindingManager;
 import mx.collections.IList;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/states/State.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/states/State.as b/frameworks/projects/MX/src/main/flex/mx/states/State.as
index 4e24e62..79ffc83 100644
--- a/frameworks/projects/MX/src/main/flex/mx/states/State.as
+++ b/frameworks/projects/MX/src/main/flex/mx/states/State.as
@@ -20,7 +20,7 @@
 package mx.states
 {
 
-import flash.events.EventDispatcher;
+import org.apache.flex.events.EventDispatcher;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/utils/DescribeTypeCacheRecord.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/DescribeTypeCacheRecord.as b/frameworks/projects/MX/src/main/flex/mx/utils/DescribeTypeCacheRecord.as
index ea17f6c..dc8f00f 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/DescribeTypeCacheRecord.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/DescribeTypeCacheRecord.as
@@ -20,10 +20,13 @@
 package mx.utils 
 {
 
-import flash.utils.Proxy;
+import org.apache.flex.utils.Proxy;
+import org.apache.flex.reflection.TypeDefinition;
+COMPILE::AS3
+{
 import flash.utils.flash_proxy;
-
 use namespace flash_proxy;
+}
 
 [ExcludeClass]
 
@@ -60,7 +63,7 @@ public dynamic class DescribeTypeCacheRecord extends Proxy
     /**
      *  @private
      */
-    public var typeDescription:XML;
+    public var typeDescription:TypeDefinition;
     
     //----------------------------------
     //  typeName
@@ -94,6 +97,7 @@ public dynamic class DescribeTypeCacheRecord extends Proxy
     /**
      *  @private
      */
+	COMPILE::AS3
     override flash_proxy function getProperty(name:*):*
     {
         var result:* = cache[name];
@@ -106,10 +110,25 @@ public dynamic class DescribeTypeCacheRecord extends Proxy
         
         return result;
     }
+	COMPILE::JS
+	override public function getProperty(name:String):*
+	{
+		var result:* = cache[name];
+		
+		if (result === undefined)
+		{
+			result = DescribeTypeCache.extractValue(name, this);
+			cache[name] = result;
+		}
+		
+		return result;
+	}
+	
 
     /**
      *  @private
      */
+	COMPILE::AS3
     override flash_proxy function hasProperty(name:*):Boolean
     {
         if (name in cache)
@@ -124,6 +143,21 @@ public dynamic class DescribeTypeCacheRecord extends Proxy
         
         return true;
     }
+	COMPILE::JS
+	override public function hasProperty(name:String):Boolean
+	{
+		if (name in cache)
+			return true;
+		
+		var value:* = DescribeTypeCache.extractValue(name, this);       
+		
+		if (value === undefined)
+			return false;
+		
+		cache[name] = value;
+		
+		return true;
+	}
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as b/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
index 03a8f51..b1f31f2 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
@@ -20,20 +20,30 @@
 package mx.utils
 {
 
+import org.apache.flex.events.EventDispatcher;
+import org.apache.flex.reflection.getQualifiedClassName;
+COMPILE::AS3
+{
 import flash.events.Event;
-import flash.events.EventDispatcher;
-import flash.utils.getQualifiedClassName;
 import flash.utils.IDataInput;
 import flash.utils.IDataOutput;
 import flash.utils.IExternalizable;
-import flash.utils.Proxy;
 import flash.utils.flash_proxy;
+}
+COMPILE::JS
+{
+	import org.apache.flex.events.Event;	
+}
+import org.apache.flex.utils.Proxy;
 import mx.core.IPropertyChangeNotifier;
 import mx.events.PropertyChangeEvent;
 import mx.events.PropertyChangeEventKind;
 
+COMPILE::AS3
+{
 use namespace flash_proxy;
 use namespace object_proxy;
+}
 
 [Bindable("propertyChange")]
 [RemoteClass(alias="flex.messaging.io.ObjectProxy")]
@@ -256,6 +266,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     object_proxy function get object():Object
     {
         return _item;
@@ -269,6 +280,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @private
      *  Storage for the qualified type name.
      */
+	COMPILE::LATER
     private var _type:QName;
 
     /**
@@ -279,6 +291,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     object_proxy function get type():QName
     {
         return _type;
@@ -287,6 +300,7 @@ public dynamic class ObjectProxy extends Proxy
     /**
      *  @private
      */
+	COMPILE::LATER
     object_proxy function set type(value:QName):void
     {
         _type = value;
@@ -348,6 +362,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     override flash_proxy function getProperty(name:*):*
     {
         // if we have a data proxy for this then
@@ -372,6 +387,31 @@ public dynamic class ObjectProxy extends Proxy
 
         return result;
     }
+	COMPILE::JS
+	override public function getProperty(name:String):*
+	{
+		// if we have a data proxy for this then
+		var result:*;
+		
+		if (notifiers[name.toString()])
+			return notifiers[name];
+		
+		result = _item[name];
+		
+		if (result)
+		{
+			if (_proxyLevel == 0 || ObjectUtil.isSimple(result))
+			{
+				return result;
+			}
+			else
+			{
+				result = object_proxy::getComplexProperty(name, result);
+			} // if we are proxying
+		}
+		
+		return result;
+	}
 
     /**
      *  Returns the value of the proxied object's method with the specified name.
@@ -388,6 +428,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     override flash_proxy function callProperty(name:*, ... rest):*
     {
         return _item[name].apply(_item, rest)
@@ -408,6 +449,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     override flash_proxy function deleteProperty(name:*):Boolean
     {
         var notifier:IPropertyChangeNotifier = IPropertyChangeNotifier(notifiers[name]);
@@ -433,18 +475,51 @@ public dynamic class ObjectProxy extends Proxy
 
         return deleted;
     }
+	COMPILE::JS
+	override public function deleteProperty(name:String):Boolean
+	{
+		var notifier:IPropertyChangeNotifier = IPropertyChangeNotifier(notifiers[name]);
+		if (notifier)
+		{
+			notifier.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE,
+				propertyChangeHandler);
+			delete notifiers[name];
+		}
+		
+		var oldVal:* = _item[name];
+		var deleted:Boolean = delete _item[name]; 
+		
+		if (dispatcher.hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+		{
+			var event:PropertyChangeEvent = new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE);
+			event.kind = PropertyChangeEventKind.DELETE;
+			event.property = name;
+			event.oldValue = oldVal;
+			event.source = this;
+			dispatcher.dispatchEvent(event);
+		}
+		
+		return deleted;
+	}
 
     /**
      *  @private
      */
+	COMPILE::AS3
     override flash_proxy function hasProperty(name:*):Boolean
     {
         return(name in _item);
     }
+	COMPILE::JS
+	override public function hasProperty(name:String):Boolean
+	{
+		return(name in _item);
+	}
     
     /**
      *  @private
      */
+	COMPILE::AS3
     override flash_proxy function nextName(index:int):String
     {
         return propertyList[index -1];
@@ -453,6 +528,7 @@ public dynamic class ObjectProxy extends Proxy
     /**
      *  @private
      */
+	COMPILE::AS3
     override flash_proxy function nextNameIndex(index:int):int
     {
         if (index == 0)
@@ -473,6 +549,7 @@ public dynamic class ObjectProxy extends Proxy
     /**
      *  @private
      */
+	COMPILE::AS3
     override flash_proxy function nextValue(index:int):*
     {
         return _item[propertyList[index -1]];
@@ -492,6 +569,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     override flash_proxy function setProperty(name:*, value:*):void
     {
         var oldVal:* = _item[name];
@@ -523,6 +601,41 @@ public dynamic class ObjectProxy extends Proxy
             } 
         }
     }
+	COMPILE::JS
+	override public function setProperty(name:String, value:*):void
+	{
+		var oldVal:* = _item[name];
+		if (oldVal !== value)
+		{
+			// Update item.
+			_item[name] = value;
+			
+			// Stop listening for events on old item if we currently are.
+			var notifier:IPropertyChangeNotifier =
+				IPropertyChangeNotifier(notifiers[name]);
+			if (notifier)
+			{
+				notifier.removeEventListener(
+					PropertyChangeEvent.PROPERTY_CHANGE,
+					propertyChangeHandler);
+				delete notifiers[name];
+			}
+			
+			// Notify anyone interested.
+			if (dispatcher.hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+			{
+				COMPILE::LATER
+				{
+				if (name is QName)
+					name = QName(name).localName;
+				}
+				var event:PropertyChangeEvent =
+					PropertyChangeEvent.createUpdateEvent(
+						this, name.toString(), oldVal, value);
+				dispatcher.dispatchEvent(event);
+			} 
+		}
+	}
 
     //--------------------------------------------------------------------------
     //
@@ -590,6 +703,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function readExternal(input:IDataInput):void
     {
         var value:Object = input.readObject();
@@ -610,6 +724,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function writeExternal(output:IDataOutput):void
     {
         output.writeObject(_item);
@@ -655,6 +770,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function addEventListener(type:String, listener:Function,
                                      useCapture:Boolean = false,
                                      priority:int = 0,
@@ -690,6 +806,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function removeEventListener(type:String, listener:Function,
                                         useCapture:Boolean = false):void
     {
@@ -718,6 +835,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function dispatchEvent(event:Event):Boolean
     {
         return dispatcher.dispatchEvent(event);
@@ -743,6 +861,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function hasEventListener(type:String):Boolean
     {
         return dispatcher.hasEventListener(type);
@@ -768,6 +887,7 @@ public dynamic class ObjectProxy extends Proxy
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function willTrigger(type:String):Boolean
     {
         return dispatcher.willTrigger(type);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/7bfeed8a/frameworks/projects/MX/src/main/flex/mx/utils/OrderedObject.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/OrderedObject.as b/frameworks/projects/MX/src/main/flex/mx/utils/OrderedObject.as
index f60067b..f1e05cb 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/OrderedObject.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/OrderedObject.as
@@ -203,7 +203,7 @@ public dynamic class OrderedObject extends Proxy
 	 *  @productversion Flex 3
 	 */
 	COMPILE::JS
-	override public function deleteProperty(name:*):Boolean
+	override public function deleteProperty(name:String):Boolean
 	{
 		var deleted:Boolean = delete valueMap[name]; 
 		
@@ -246,7 +246,7 @@ public dynamic class OrderedObject extends Proxy
         return(name in valueMap);
     }
 	COMPILE::JS
-	override protected function hasProperty(name:*):Boolean
+	override public function hasProperty(name:String):Boolean
 	{
 		return(name in valueMap);
 	}
@@ -272,9 +272,9 @@ public dynamic class OrderedObject extends Proxy
         return propertyList[index -1];
     }
 	COMPILE::JS
-	override public function nextName(index:int):String
+	override public function elementNames():Array
 	{
-		return propertyList[index -1];
+		return propertyList.slice();
 	}
 
     /**
@@ -297,11 +297,6 @@ public dynamic class OrderedObject extends Proxy
     {
         return valueMap[propertyList[index -1]];
     }
-	COMPILE::JS
-	override public function nextValue(index:int):*
-	{
-		return valueMap[propertyList[index -1]];
-	}
 
     /**
      *  Updates the specified property on the proxied object.
@@ -336,7 +331,7 @@ public dynamic class OrderedObject extends Proxy
         }
     }               
 	COMPILE::JS
-	override public function setProperty(name:*, value:*):void
+	override public function setProperty(name:String, value:*):void
 	{
 		var oldVal:* = valueMap[name];
 		if (oldVal !== value)


[03/37] git commit: [flex-asjs] [refs/heads/spark] - Added JavaScript version of MobileWebBrowser so it could be used with Cordova/PhoneGap.

Posted by ah...@apache.org.
Added JavaScript version of MobileWebBrowser so it could be used with Cordova/PhoneGap.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/4d0f00f1
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/4d0f00f1
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/4d0f00f1

Branch: refs/heads/spark
Commit: 4d0f00f1f00aebe6cd7185d4f08526e4ebc31bb3
Parents: 36c14ed
Author: Peter Ent <pe...@apache.org>
Authored: Wed Feb 10 11:34:56 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Wed Feb 10 11:34:56 2016 -0500

----------------------------------------------------------------------
 .../Mobile/src/main/flex/MobileClasses.as       |  4 +---
 .../flex/mobile/beads/MobileWebBrowserView.as   | 22 ++++++++++++++++----
 2 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4d0f00f1/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as b/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
index 8643954..5a85f94 100644
--- a/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
+++ b/frameworks/projects/Mobile/src/main/flex/MobileClasses.as
@@ -38,9 +38,7 @@ internal class MobileClasses
 	import org.apache.flex.mobile.chrome.ToolBar; ToolBar;
 	import org.apache.flex.mobile.models.ViewManagerModel; ViewManagerModel;
 	
-	COMPILE::AS3 {
-		import org.apache.flex.mobile.beads.MobileWebBrowserView; MobileWebBrowserView;
-	}
+	import org.apache.flex.mobile.beads.MobileWebBrowserView; MobileWebBrowserView;
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4d0f00f1/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/MobileWebBrowserView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/MobileWebBrowserView.as b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/MobileWebBrowserView.as
index 686d94f..7213d00 100644
--- a/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/MobileWebBrowserView.as
+++ b/frameworks/projects/Mobile/src/main/flex/org/apache/flex/mobile/beads/MobileWebBrowserView.as
@@ -18,10 +18,12 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.mobile.beads
 {
-	import flash.events.Event;
-	import flash.media.StageWebView;
-	import flash.geom.Rectangle;
-	import flash.geom.Point;
+	COMPILE::AS3 {
+		import flash.events.Event;
+		import flash.media.StageWebView;
+		import flash.geom.Rectangle;
+		import flash.geom.Point;
+	}
 
 	import org.apache.flex.core.IBeadView;
 	import org.apache.flex.core.IStrand;
@@ -30,6 +32,10 @@ package org.apache.flex.mobile.beads
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.IEventDispatcher;
 	import org.apache.flex.html.beads.models.WebBrowserModel;
+	
+	COMPILE::JS {
+		import org.apache.flex.html.beads.WebBrowserView;
+	}
 
 	/**
 	 *  The MobileWebBrowserView creates an instance of StageWebView to load
@@ -42,6 +48,7 @@ package org.apache.flex.mobile.beads
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
+	COMPILE::AS3
 	public class MobileWebBrowserView implements IBeadView
 	{
 		/**
@@ -125,5 +132,12 @@ package org.apache.flex.mobile.beads
 			host.dispatchEvent(new org.apache.flex.events.Event("locationChanged"));
 		}
 	}
+	
+	COMPILE::JS
+	public class MobileWebBrowserView extends WebBrowserView
+	{
+		// does nothing but provide a placeholder so JavaScript version
+		// builds and runs
+	}
 }
 


[20/37] git commit: [flex-asjs] [refs/heads/spark] - fix example

Posted by ah...@apache.org.
fix example


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/c313d706
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/c313d706
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/c313d706

Branch: refs/heads/spark
Commit: c313d70661022e8b14a474cd33eb4db57d655df8
Parents: 063ac08
Author: Alex Harui <ah...@apache.org>
Authored: Mon Feb 29 17:52:12 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Feb 29 17:52:12 2016 -0800

----------------------------------------------------------------------
 .../src/productsView/CatalogTitleButtons.mxml             |  8 +++++---
 .../src/productsView/ProductCatalogThumbnail.mxml         |  2 +-
 .../src/productsView/ProductListItem.mxml                 | 10 ++++++++++
 3 files changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c313d706/examples/flexjs/FlexJSStore_jquery/src/productsView/CatalogTitleButtons.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/productsView/CatalogTitleButtons.mxml b/examples/flexjs/FlexJSStore_jquery/src/productsView/CatalogTitleButtons.mxml
index 77456be..af9cfd1 100755
--- a/examples/flexjs/FlexJSStore_jquery/src/productsView/CatalogTitleButtons.mxml
+++ b/examples/flexjs/FlexJSStore_jquery/src/productsView/CatalogTitleButtons.mxml
@@ -35,12 +35,14 @@ limitations under the License.
             [Bindable]
             public var cartCount:int;
             
-            private function rollOverLabel(event:Event):void
+            private function rollOverLabel(event:MouseEvent):void
             {
-                Label(event.target).className = "catalogTitleButtonHighlighted";
+                try {
+                    Label(event.target).className = "catalogTitleButtonHighlighted";
+                } catch (e:Error) {}
             }
             
-            private function rollOutLabel(event:Event):void
+            private function rollOutLabel(event:MouseEvent):void
             {
                 Label(event.target).className = "catalogTitleButtonDeselected";
             }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c313d706/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductCatalogThumbnail.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductCatalogThumbnail.mxml b/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductCatalogThumbnail.mxml
index 1d8ce8f..7b415da 100755
--- a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductCatalogThumbnail.mxml
+++ b/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductCatalogThumbnail.mxml
@@ -118,7 +118,7 @@ limitations under the License.
             }
         }
 
-        public function clickHandler(event:org.apache.flex.events.Event):void
+        public function clickHandler(event:org.apache.flex.events.MouseEvent):void
         {
             if (event.target != purchase &&
                 event.target != compare &&

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/c313d706/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductListItem.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductListItem.mxml b/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductListItem.mxml
index 2864cca..8e98c3b 100755
--- a/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductListItem.mxml
+++ b/examples/flexjs/FlexJSStore_jquery/src/productsView/ProductListItem.mxml
@@ -60,6 +60,16 @@ limitations under the License.
         {
             _data = value;
         }
+        
+        public function get listData():Object
+        {
+        	return null;
+        }
+        
+        public function set listData(value:Object):void
+        {
+        	// not used
+        }
 
         private var _itemRendererParent:Object;
         


[10/37] git commit: [flex-asjs] [refs/heads/spark] - Better itemRenderer for Tree.

Posted by ah...@apache.org.
Better itemRenderer for Tree.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/4c730018
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/4c730018
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/4c730018

Branch: refs/heads/spark
Commit: 4c7300188a86993cd5823bf1c327e948549090ba
Parents: d0dddc1
Author: Peter Ent <pe...@apache.org>
Authored: Fri Feb 19 11:57:26 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Fri Feb 19 11:57:26 2016 -0500

----------------------------------------------------------------------
 .../org/apache/flex/html/supportClasses/TreeItemRenderer.as | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4c730018/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeItemRenderer.as
index bf545b0..7250e82 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeItemRenderer.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeItemRenderer.as
@@ -47,10 +47,15 @@ package org.apache.flex.html.supportClasses
 			super.data = value;
 			
 			var treeData:TreeListData = listData as TreeListData;
+			var indentSpace:String = "    ";
 			
-			var indent:String = treeData.hasChildren ? (treeData.isOpen ? "-" : "+") : " ";
+			COMPILE::JS {
+				indentSpace = "&nbsp;&nbsp;&nbsp;&nbsp;"
+			}
+			
+			var indent:String = treeData.hasChildren ? (treeData.isOpen ? "â–¼" : "â–¶") : " ";
 			for (var i:int=0; i < treeData.depth; i++) {
-				indent += "    ";
+				indent += indentSpace;
 			}
 			
 			this.text = indent + this.text;


[14/37] git commit: [flex-asjs] [refs/heads/spark] - Updated Storage project by separating the implementation into a CSS-accessible class from the developer-facing class. The initial JavaScript implementation follows the W3C web storage specification; th

Posted by ah...@apache.org.
Updated Storage project by separating the implementation into a CSS-accessible class from the developer-facing class. The initial JavaScript implementation follows the W3C web storage specification; the Flash side uses SharedObject.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/75ee02d2
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/75ee02d2
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/75ee02d2

Branch: refs/heads/spark
Commit: 75ee02d2817d5a5c6bf8e976bfd8a305bb5b09e5
Parents: 392faf5
Author: Peter Ent <pe...@apache.org>
Authored: Thu Feb 25 17:24:22 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Feb 25 17:24:22 2016 -0500

----------------------------------------------------------------------
 .../Storage/src/main/flex/StorageClasses.as     |   5 +-
 .../flex/org/apache/flex/storage/IWebStorage.as | 100 +++++++++
 .../org/apache/flex/storage/LocalStorage.as     | 120 +++-------
 .../storage/providers/LocalStorageProvider.as   | 220 +++++++++++++++++++
 .../src/main/resources/basic-manifest.xml       |   2 +-
 .../src/main/resources/compile-asjs-config.xml  |   4 +
 .../src/main/resources/compile-config.xml       |   5 +
 .../Storage/src/main/resources/defaults.css     |  26 +++
 8 files changed, 388 insertions(+), 94 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/75ee02d2/frameworks/projects/Storage/src/main/flex/StorageClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/StorageClasses.as b/frameworks/projects/Storage/src/main/flex/StorageClasses.as
index 1f6b80a..db34477 100644
--- a/frameworks/projects/Storage/src/main/flex/StorageClasses.as
+++ b/frameworks/projects/Storage/src/main/flex/StorageClasses.as
@@ -16,7 +16,7 @@
 //  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////
-package 
+package
 {
 
 /**
@@ -26,8 +26,9 @@ package
  *  from the classes specified in manifest.xml.
  */
 internal class StorageClasses
-{	
+{
     import org.apache.flex.storage.LocalStorage; LocalStorage;
+    import org.apache.flex.storage.providers.LocalStorageProvider; LocalStorageProvider;
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/75ee02d2/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/IWebStorage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/IWebStorage.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/IWebStorage.as
new file mode 100644
index 0000000..3bc044d
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/IWebStorage.as
@@ -0,0 +1,100 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage
+{
+/**
+ * The IWebStorage interface provides a template for classes to use that wish
+ * to allow storage of small amounts of data into a web browser or perhaps on a
+ * mobile device.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.2
+ *  @playerversion AIR 2.6
+ *  @productversion FlexJS 0.0
+ */
+public interface IWebStorage
+{
+	/**
+	 * Returns true if the platform provides local storage.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	function storageAvailable() : Boolean;
+
+	/**
+	 * Stores a value with a key.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	function setItem(key:String, value:String) : Boolean;
+
+	/**
+	 * Returns the value of a key, if present. If the key is not
+	 * present in the storage area, null or undefined may be returned.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	function getItem(key:String) : String;
+
+	/**
+	 * Removes the key=value pair from storage.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	function removeItem(key:String) : Boolean;
+
+	/**
+	 * Returns true if there is a value associated with the key.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	function hasItem(key:String) : Boolean;
+
+	/**
+	 * Clears the storage area of all key=value pairs.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	function clear() : void;
+}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/75ee02d2/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
index 9edd82c..1a6018e 100644
--- a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
@@ -18,20 +18,25 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.storage
 {
-COMPILE::AS3 {
-	import flash.net.SharedObject;
-}
+	import org.apache.flex.storage.providers.LocalStorageProvider;
+	import org.apache.flex.core.ValuesManager;
 
 /**
  *  The LocalStorage class allows apps to store small amounts of data
  *  locally, in the browser's permitted storage area. This data will persist
  *  between browser invocations. The data is stored in key=value pairs.
  *
+ *  This class uses the ValuesManager to determine a storage provider - an implementation
+ *  class the actually does the storing and retrieving. To change the provider implementation,
+ *  set a ClassReference for the LocalStorage CSS style. The default is the
+ *  org.apache.flex.storage.providers.LocalStorageProvider class.
+ *
+ *  @see org.apache.flex.storage.IWebStorage
+ *  @see org.apache.flex.storage.provides.LocalStorageProvider
  *  @langversion 3.0
  *  @playerversion Flash 10.2
  *  @playerversion AIR 2.6
  *  @productversion FlexJS 0.0
- *  @flexjsignoreimport window
  */
 public class LocalStorage
 {
@@ -47,17 +52,13 @@ public class LocalStorage
 	 */
 	public function LocalStorage()
 	{
-		COMPILE::AS3 {
-			try {
-				sharedObject = SharedObject.getLocal("flexjs","/",false);
-			} catch(e) {
-				sharedObject = null;
-			}
-		}
+		storageProvider = ValuesManager.valuesImpl.newInstance(this, "iStorageProvider") as IWebStorage;
 	}
 
-	COMPILE::AS3
-	private var sharedObject:SharedObject;
+	/**
+	 * The implementation of the storage system.
+	 */
+	private var storageProvider:IWebStorage;
 
 	/**
 	 * Returns true if the platform provides local storage.
@@ -70,26 +71,11 @@ public class LocalStorage
 	 */
 	public function storageAvailable():Boolean
 	{
-		var result:Boolean = false;
-
-		COMPILE::AS3 {
-			result = (sharedObject != null);
-		}
-
-		COMPILE::JS {
-			try {
-				result = 'localStorage' in window && window['localStorage'] !== null;
-			} catch(e) {
-				result = false;
-			}
-		}
-
-		return result;
+		return storageProvider.storageAvailable();
 	}
 
 	/**
-	 * Stores a value with a key. The value may be converted to a String, depending
-	 * on the platform.
+	 * Stores a value with a key.
 	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
@@ -97,20 +83,12 @@ public class LocalStorage
 	 *  @productversion FlexJS 0.0
 	 *  @flexjsignoreimport window
 	 */
-	public function setItem(key:String, value:String) : Boolean
+	public function setItem(key:String, value:Object) : Boolean
 	{
-		if (!storageAvailable()) return false;
-
-		COMPILE::AS3 {
-			sharedObject.data[key] = value;
-			sharedObject.flush();
-		}
-
-		COMPILE::JS {
-			window.localStorage.setItem(key, value);
-		}
-
-		return true;
+		// turn the value into a string in some fashion, if possible, return
+		// the knowlege of what type value really is for getItem().
+		var valueAsString:String = value.toString();
+		return storageProvider.setItem(key, valueAsString);
 	}
 
 	/**
@@ -124,21 +102,12 @@ public class LocalStorage
 	 *  @productversion FlexJS 0.0
 	 *  @flexjsignoreimport window
 	 */
-	public function getItem(key:String) : String
+	public function getItem(key:String) : Object
 	{
-		if (!storageAvailable()) return null;
-
-		var result:String = null;
-
-		COMPILE::AS3 {
-			result = sharedObject.data[key] as String;
-		}
-
-		COMPILE::JS {
-			result = window.localStorage.getItem(key);
-		}
-
-		return result;
+		var value:Object = storageProvider.getItem(key);
+		// perhaps figure out what value is exactly and return that
+		// object.
+		return value;
 	}
 
 	/**
@@ -154,18 +123,7 @@ public class LocalStorage
 	 */
 	public function removeItem(key:String) : Boolean
 	{
-		if (!storageAvailable()) return null;
-
-		COMPILE::AS3 {
-			delete sharedObject.data[key];
-			sharedObject.flush();
-		}
-
-		COMPILE::JS {
-			window.localStorage.removeItem(key);
-		}
-
-		return true;
+		return storageProvider.removeItem(key);
 	}
 
 	/**
@@ -179,19 +137,7 @@ public class LocalStorage
 	 */
 	public function hasItem(key:String) : Boolean
 	{
-		if (!storageAvailable()) return false;
-
-		var result:Boolean = false;
-
-		COMPILE::AS3 {
-			result = sharedObject.data.hasOwnProperty(key);
-		}
-
-		COMPILE::JS {
-			result = (window.localStorage[key] !== null);
-		}
-
-		return result;
+		return storageProvider.hasItem(key);
 	}
 
 	/**
@@ -205,15 +151,7 @@ public class LocalStorage
 	 */
 	public function clear() : void
 	{
-		if (!storageAvailable()) return;
-
-		COMPILE::AS3 {
-			sharedObject.clear();
-		}
-
-		COMPILE::JS {
-			window.localStorage.clear();
-		}
+		storageProvider.clear();
 	}
 }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/75ee02d2/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/LocalStorageProvider.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/LocalStorageProvider.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/LocalStorageProvider.as
new file mode 100644
index 0000000..5370923
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/LocalStorageProvider.as
@@ -0,0 +1,220 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage.providers
+{
+	import org.apache.flex.storage.IWebStorage;
+
+COMPILE::AS3 {
+	import flash.net.SharedObject;
+}
+
+/**
+ *  The LocalStorageProvider class allows apps to store small amounts of data
+ *  locally, in the browser's permitted storage area. This data will persist
+ *  between browser invocations. The data is stored in key=value pairs and the
+ *  value must be a string.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.2
+ *  @playerversion AIR 2.6
+ *  @productversion FlexJS 0.0
+ *  @flexjsignoreimport window
+ */
+public class LocalStorageProvider implements IWebStorage
+{
+
+	/**
+	 * Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function LocalStorageProvider()
+	{
+		COMPILE::AS3 {
+			try {
+				sharedObject = SharedObject.getLocal("flexjs","/",false);
+			} catch(e) {
+				sharedObject = null;
+			}
+		}
+	}
+
+	COMPILE::AS3
+	private var sharedObject:SharedObject;
+
+	/**
+	 * Returns true if the platform provides local storage.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function storageAvailable():Boolean
+	{
+		var result:Boolean = false;
+
+		COMPILE::AS3 {
+			result = (sharedObject != null);
+		}
+
+		COMPILE::JS {
+			try {
+				result = 'localStorage' in window && window['localStorage'] !== null;
+			} catch(e) {
+				result = false;
+			}
+		}
+
+		return result;
+	}
+
+	/**
+	 * Stores a value with a key.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function setItem(key:String, value:String) : Boolean
+	{
+		if (!storageAvailable()) return false;
+
+		COMPILE::AS3 {
+			sharedObject.data[key] = value;
+			sharedObject.flush();
+		}
+
+		COMPILE::JS {
+			window.localStorage.setItem(key, value);
+		}
+
+		return true;
+	}
+
+	/**
+	 * Returns the value associated with the key, or undefined if there is
+	 * no value stored. Note that a String version of the value is stored.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function getItem(key:String) : String
+	{
+		if (!storageAvailable()) return null;
+
+		var result:String = null;
+
+		COMPILE::AS3 {
+			result = sharedObject.data[key] as String;
+		}
+
+		COMPILE::JS {
+			result = window.localStorage.getItem(key);
+		}
+
+		return result;
+	}
+
+	/**
+	 * Removed the value and, possibly, the key from local storage. On some
+	 * platforms, retriving the value after removing it will be an error, on
+	 * others it may return undefined or null.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function removeItem(key:String) : Boolean
+	{
+		if (!storageAvailable()) return null;
+
+		COMPILE::AS3 {
+			delete sharedObject.data[key];
+			sharedObject.flush();
+		}
+
+		COMPILE::JS {
+			window.localStorage.removeItem(key);
+		}
+
+		return true;
+	}
+
+	/**
+	 * Returns true if there is a value stored for the key.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function hasItem(key:String) : Boolean
+	{
+		if (!storageAvailable()) return false;
+
+		var result:Boolean = false;
+
+		COMPILE::AS3 {
+			result = sharedObject.data.hasOwnProperty(key);
+		}
+
+		COMPILE::JS {
+			result = (window.localStorage[key] !== null);
+		}
+
+		return result;
+	}
+
+	/**
+	 * Clears all values from local storage.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function clear() : void
+	{
+		if (!storageAvailable()) return;
+
+		COMPILE::AS3 {
+			sharedObject.clear();
+		}
+
+		COMPILE::JS {
+			window.localStorage.clear();
+		}
+	}
+}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/75ee02d2/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/resources/basic-manifest.xml b/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
index cd0f5b4..b502203 100644
--- a/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
@@ -20,5 +20,5 @@
 
 
 <componentPackage>
-
+	<component id="LocalStorage" class="org.apache.flex.storage.LocalStorage"/>
 </componentPackage>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/75ee02d2/frameworks/projects/Storage/src/main/resources/compile-asjs-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/resources/compile-asjs-config.xml b/frameworks/projects/Storage/src/main/resources/compile-asjs-config.xml
index 0d410aa..6b3c6d5 100644
--- a/frameworks/projects/Storage/src/main/resources/compile-asjs-config.xml
+++ b/frameworks/projects/Storage/src/main/resources/compile-asjs-config.xml
@@ -42,6 +42,10 @@
         <locale/>
         
         <library-path>
+            <!-- asjscompc won't 'link' these classes in, but will list their requires
+                 if these swcs are on the external-library-path then their requires
+                 will not be listed -->
+            <path-element>../../../../../externs/Core.swc</path-element>
         </library-path>
         
         <namespaces>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/75ee02d2/frameworks/projects/Storage/src/main/resources/compile-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/resources/compile-config.xml b/frameworks/projects/Storage/src/main/resources/compile-config.xml
index bdd4048..8ca6f9c 100644
--- a/frameworks/projects/Storage/src/main/resources/compile-config.xml
+++ b/frameworks/projects/Storage/src/main/resources/compile-config.xml
@@ -23,6 +23,7 @@
         
         <external-library-path>
             <path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
+            <path-element>../../../../../libs/Core.swc</path-element>
         </external-library-path>
         
 		<mxml>
@@ -59,6 +60,10 @@
     </compiler>
     
     <include-file>
+        <name>defaults.css</name>
+        <path>defaults.css</path>
+    </include-file>
+    <include-file>
         <name>js/out/*</name>
         <path>../../../target/generated-sources/flexjs/*</path>
     </include-file>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/75ee02d2/frameworks/projects/Storage/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/resources/defaults.css b/frameworks/projects/Storage/src/main/resources/defaults.css
new file mode 100644
index 0000000..9d82e6f
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/resources/defaults.css
@@ -0,0 +1,26 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+
+@namespace "library://ns.apache.org/flexjs/basic";
+@namespace svg "library://ns.apache.org/flexjs/svg";
+
+LocalStorage
+{
+    IStorageProvider: ClassReference("org.apache.flex.storage.providers.LocalStorageProvider");
+}
\ No newline at end of file


[22/37] git commit: [flex-asjs] [refs/heads/spark] - more changes to remove compile errors

Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/utils/NameUtil.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/NameUtil.as b/frameworks/projects/MX/src/main/flex/mx/utils/NameUtil.as
index e8f0823..4f8f53d 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/NameUtil.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/NameUtil.as
@@ -20,9 +20,10 @@
 package mx.utils
 {
 
-import flash.display.DisplayObject;
-import flash.utils.getQualifiedClassName;
+import org.apache.flex.reflection.getQualifiedClassName;
+
 import mx.core.IRepeaterClient;
+import mx.core.IUIComponent;
 
 /**
  *  The NameUtil utility class defines static methods for
@@ -108,9 +109,11 @@ public class NameUtil
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
+	 * 
+	 *  @flexjsignorecoercion mx.core.IUIComponent
      */
     public static function displayObjectToString(
-                                displayObject:DisplayObject):String
+                                displayObject:IUIComponent):String
     {
         var result:String;
 
@@ -118,13 +121,13 @@ public class NameUtil
         // to build up the string to return.
         try
         {
-            for (var o:DisplayObject = displayObject;
+            for (var o:IUIComponent = displayObject;
                  o != null;
-                 o = o.parent)
+                 o = o.parent as IUIComponent)
             {
                 // If this object is in the display tree,
                 // stop after we've prepended the topmost Application instance.
-                if (o.parent && o.stage && o.parent == o.stage)
+                if (o.parent && o.topOfDisplayList && o.parent == o.topOfDisplayList)
                     break;
     
                 // Prefer id over name if specified.
@@ -140,8 +143,13 @@ public class NameUtil
                 result = result == null ? s : s + "." + result;
             }
         }
-        catch (e:SecurityError)
+        catch (e:Error)
         {
+			COMPILE::AS3
+			{
+				if (!(e is SecurityError))
+					throw e;
+			}
             // Ignore error and continue with what we have. 
             // We may not have access to our parent if we are loaded into a sandbox.
         }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/utils/ObjectUtil.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectUtil.as b/frameworks/projects/MX/src/main/flex/mx/utils/ObjectUtil.as
index fba73e5..a7d9bc7 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectUtil.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/ObjectUtil.as
@@ -24,12 +24,12 @@ COMPILE::AS3
 {
     import flash.utils.ByteArray;
     import flash.utils.Dictionary;
-    import flash.utils.getQualifiedClassName;
     import flash.xml.XMLNode;
 }
-
 import mx.collections.IList;
 
+import org.apache.flex.reflection.getQualifiedClassName;
+
 /**
  *  The ObjectUtil class is an all-static class with methods for
  *  working with Objects within Flex.
@@ -887,7 +887,14 @@ public class ObjectUtil
                         }
                         
                         // now that we know we have the same properties, let's compare the values
-                        var propName:QName;
+						COMPILE::AS3
+						{
+							var propName:QName;								
+						}
+						COMPILE::JS
+						{
+							var propName:String;								
+						}
                         var aProp:Object;
                         var bProp:Object;
                         for (var i:int = 0; i < aProps.length; i++)
@@ -1112,7 +1119,10 @@ public class ObjectUtil
             n = properties.length();
             var uris:Array = options.uris;
             var uri:String;
-            var qName:QName;
+			COMPILE::AS3
+			{
+				var qName:QName;					
+			}
             for (i = 0; i < n; i++)
             {
                 prop = properties[i];
@@ -1125,55 +1135,59 @@ public class ObjectUtil
                 if (!options.includeTransient && internalHasMetadata(metadataInfo, p, "Transient"))
                     continue;
                 
-                if (uris != null)
-                {
-                    if (uris.length == 1 && uris[0] == "*")
-                    {   
-                        qName = new QName(uri, p);
-                        try
-                        {
-                            obj[qName]; // access the property to ensure it is supported
-                            propertyNames.push();
-                        }
-                        catch(e:Error)
-                        {
-                            // don't keep property name 
-                        }
-                    }
-                    else
-                    {
-                        for (var j:int = 0; j < uris.length; j++)
-                        {
-                            uri = uris[j];
-                            if (prop.@uri.toString() == uri)
-                            {
-                                qName = new QName(uri, p);
-                                try
-                                {
-                                    obj[qName];
-                                    propertyNames.push(qName);
-                                }
-                                catch(e:Error)
-                                {
-                                    // don't keep property name 
-                                }
-                            }
-                        }
-                    }
-                }
-                else if (uri.length == 0)
-                {
-                    qName = new QName(uri, p);
-                    try
-                    {
-                        obj[qName];
-                        propertyNames.push(qName);
-                    }
-                    catch(e:Error)
-                    {
-                        // don't keep property name 
-                    }
-                }
+				COMPILE::AS3
+				{
+					if (uris != null)
+					{
+						if (uris.length == 1 && uris[0] == "*")
+						{   
+							qName = new QName(uri, p);
+							try
+							{
+								obj[qName]; // access the property to ensure it is supported
+								propertyNames.push();
+							}
+							catch(e:Error)
+							{
+								// don't keep property name 
+							}
+						}
+						else
+						{
+							for (var j:int = 0; j < uris.length; j++)
+							{
+								uri = uris[j];
+								if (prop.@uri.toString() == uri)
+								{
+									qName = new QName(uri, p);
+									try
+									{
+										obj[qName];
+										propertyNames.push(qName);
+									}
+									catch(e:Error)
+									{
+										// don't keep property name 
+									}
+								}
+							}
+						}
+					}
+					else if (uri.length == 0)
+					{
+						qName = new QName(uri, p);
+						try
+						{
+							obj[qName];
+							propertyNames.push(qName);
+						}
+						catch(e:Error)
+						{
+							// don't keep property name 
+						}
+					}
+
+				}
             }
         }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/utils/OnDemandEventDispatcher.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/OnDemandEventDispatcher.as b/frameworks/projects/MX/src/main/flex/mx/utils/OnDemandEventDispatcher.as
index c4a0d3b..013d4bd 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/OnDemandEventDispatcher.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/OnDemandEventDispatcher.as
@@ -80,7 +80,7 @@ COMPILE::JS
             _dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference); 
         }
 		COMPILE::JS
-		public function addEventListener(type:String, listener:Function, useCapture:Boolean = false):void
+		public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, handlerScope:Object = null):void
 		{
 			if (_dispatcher == null)
 			{
@@ -98,12 +98,20 @@ COMPILE::JS
          *  @playerversion AIR 1.1
          *  @productversion Flex 3
          */
+		COMPILE::AS3
         public function dispatchEvent(event:Event):Boolean
         {
             if (_dispatcher != null)
                 return _dispatcher.dispatchEvent(event);
             return true; 
         }
+		COMPILE::JS
+		public function dispatchEvent(event:Object):Boolean
+		{
+			if (_dispatcher != null)
+				return _dispatcher.dispatchEvent(event);
+			return true; 
+		}
     
         /**
          *  @inheritDoc
@@ -128,11 +136,18 @@ COMPILE::JS
          *  @playerversion AIR 1.1
          *  @productversion Flex 3
          */
+		COMPILE::AS3
         public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
         {
             if (_dispatcher != null)
                 _dispatcher.removeEventListener(type,listener,useCapture);         
         }
+		COMPILE::JS
+		public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false, handlerScope:Object = null):void
+		{
+			if (_dispatcher != null)
+				_dispatcher.removeEventListener(type,listener,useCapture);         
+		}
     
         /**
          *  @inheritDoc
@@ -142,6 +157,7 @@ COMPILE::JS
          *  @playerversion AIR 1.1
          *  @productversion Flex 3
          */
+		COMPILE::AS3
         public function willTrigger(type:String):Boolean
         {
             if (_dispatcher != null)


[24/37] git commit: [flex-asjs] [refs/heads/spark] - do we still need this?

Posted by ah...@apache.org.
do we still need this?


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/62710910
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/62710910
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/62710910

Branch: refs/heads/spark
Commit: 6271091099b4375ac710ea2bdf19f0ee93a59264
Parents: c313d70
Author: Alex Harui <ah...@apache.org>
Authored: Sat Mar 5 23:41:00 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Sat Mar 5 23:41:00 2016 -0800

----------------------------------------------------------------------
 nightly.properties | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/62710910/nightly.properties
----------------------------------------------------------------------
diff --git a/nightly.properties b/nightly.properties
index cc6601a..3b96ceb 100644
--- a/nightly.properties
+++ b/nightly.properties
@@ -25,7 +25,7 @@ falcon.md5.server.url = http://apacheflexbuild.cloudapp.net:8080
 falcon.folder = job/flex-falcon/lastSuccessfulBuild/artifact/out
 falcon.version = 0.6.0
 #need this until Installer 3.2 comes out
-jburg.server=http://downloads.sourceforge.net
-jburg.folder=project/jburg
-jburg.filename=jburg-1.10.1.tar.gz
-jburg.md5=76830ee877cac40b981779325b3fa89f
+#jburg.server=http://downloads.sourceforge.net
+#jburg.folder=project/jburg
+#jburg.filename=jburg-1.10.1.tar.gz
+#jburg.md5=76830ee877cac40b981779325b3fa89f


[26/37] git commit: [flex-asjs] [refs/heads/spark] - Added StorageExample to FlexJS examples.

Posted by ah...@apache.org.
Added StorageExample to FlexJS examples.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/1c69a390
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/1c69a390
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/1c69a390

Branch: refs/heads/spark
Commit: 1c69a390af29678d4797d3e9648b06b69ed87510
Parents: 1bc555d
Author: Peter Ent <pe...@apache.org>
Authored: Wed Mar 9 11:13:26 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Wed Mar 9 11:13:26 2016 -0500

----------------------------------------------------------------------
 examples/build.xml                              |   2 +
 examples/flexjs/StorageExample/README.txt       |  81 ++++++
 .../StorageExample/StorageExample-app.xml       | 252 +++++++++++++++++++
 examples/flexjs/StorageExample/build.xml        |  77 ++++++
 examples/flexjs/StorageExample/pom.xml          |  50 ++++
 .../StorageExample/src/MyInitialView.mxml       | 131 ++++++++++
 .../StorageExample/src/StorageExample.mxml      |  42 ++++
 .../flexjs/StorageExample/src/models/MyModel.as |  58 +++++
 8 files changed, 693 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c69a390/examples/build.xml
----------------------------------------------------------------------
diff --git a/examples/build.xml b/examples/build.xml
index 7efccfc..27d1816 100644
--- a/examples/build.xml
+++ b/examples/build.xml
@@ -85,6 +85,7 @@
         <ant dir="${basedir}/flexjs/MapSearch"/>
         <ant dir="${basedir}/flexjs/MobileTrader"/>
         <ant dir="${basedir}/flexjs/ChartExample"/>
+        <ant dir="${basedir}/flexjs/StorageExample"/>
         <ant dir="${basedir}/flexjs/TodoListSampleApp"/>
         <ant dir="${basedir}/flexjs/TreeExample"/>
         <ant dir="${basedir}/native/ButtonExample"/>
@@ -113,6 +114,7 @@
         <ant dir="${basedir}/flexjs/MapSearch" target="clean"/>
         <ant dir="${basedir}/flexjs/MobileTrader" target="clean"/>
         <ant dir="${basedir}/flexjs/ChartExample" target="clean"/>
+        <ant dir="${basedir}/flexjs/StorageExample" target="clean"/>
         <ant dir="${basedir}/flexjs/TodoListSampleApp" target="clean"/>
         <ant dir="${basedir}/flexjs/TreeExample" target="clean"/>
         <ant dir="${basedir}/native/ButtonExample" target="clean"/>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c69a390/examples/flexjs/StorageExample/README.txt
----------------------------------------------------------------------
diff --git a/examples/flexjs/StorageExample/README.txt b/examples/flexjs/StorageExample/README.txt
new file mode 100644
index 0000000..12cb609
--- /dev/null
+++ b/examples/flexjs/StorageExample/README.txt
@@ -0,0 +1,81 @@
+Storage Example
+
+The StorageExample is designed to show you have to read and write simple, but permanent files using
+the FlexJS Storage framework.
+
+Permanent storage is available when the target platform is either Adobe AIR (desktop or mobile device)
+or Apache Cordova (mobile devices).
+
+Build the Example
+
+1. Run the build (ant)
+
+This will build both the AIR and Cordova-compatible versions. The AIR version will be in the
+bin-debug directory. The Cordova-compatible versions will be in the js-debug and js-release
+directories.
+
+Running on Adobe AIR
+
+1. Run the example (ant run).
+
+This will launch the SWF as an AIR application. 
+
+Running on an Android Device using Cordova
+
+This is a somewhat complex process. The JavaScript and HTML files that were built (bin/js-debug)
+need to be moved into a Cordova project. Once there, the application can be deployed to a device
+or run in an emulator.
+
+1. In a clean directory, outside of the flex-asjs directories, use the cordova command line
+interface to build an empty application:
+
+cordova create filetest org.apache.flex "FileTest"
+cd filetest
+
+2. Add in the Android platform and the Cordova File plugin:
+
+cordova platform add android
+cordova plugin add cordova-plugin-file
+
+3. Go to the StorageExample/bin/js-debug directory and copy all of the files and directories
+into the filetest/www directory:
+
+index.html (replaces the index.html from the generated cordova app)
+MyInitialView.js
+StorageExample.css
+StorageExample.js
+externs/
+library/
+models/
+org/
+
+
+4. Open filetest/www/index.html and replace the <body> element with this:
+
+<body onload="startup()">
+  <script type="text/javascript" src="cordova.js"></script>
+  <script type="text/javascript">
+      function startup() {
+        document.addEventListener('deviceready', this.onDeviceReady, false);
+      }
+      function onDeviceReady() {
+         new StorageExample().start();
+      }
+  </script>
+</body>
+
+
+5. Build the Cordova app from the top filetest directory:
+
+cordova build
+
+6. You can run it either in an emulator on a connected device:
+
+(emulator): cordova emulate android
+(device): cordova run android
+
+The filetest/platforms/android directory can be opened from Android Studio if you want to
+use an Android IDE. If you need to make changes, do that in the filetest/www directory,
+then run "cordova build" again. Android Studio will detect the change, ask you to re-sync,
+and after that, you can re-redeploy the changed app to the device.
+ 
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c69a390/examples/flexjs/StorageExample/StorageExample-app.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/StorageExample/StorageExample-app.xml b/examples/flexjs/StorageExample/StorageExample-app.xml
new file mode 100644
index 0000000..62657d2
--- /dev/null
+++ b/examples/flexjs/StorageExample/StorageExample-app.xml
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<application xmlns="http://ns.adobe.com/air/application/16.0">
+
+<!-- Adobe AIR Application Descriptor File Template.
+
+	Specifies parameters for identifying, installing, and launching AIR applications.
+
+	xmlns - The Adobe AIR namespace: http://ns.adobe.com/air/application/3.8
+			The last segment of the namespace specifies the version
+			of the AIR runtime required for this application to run.
+
+	minimumPatchLevel - The minimum patch level of the AIR runtime required to run
+			the application. Optional.
+-->
+
+	<!-- A universally unique application identifier. Must be unique across all AIR applications.
+	Using a reverse DNS-style name as the id is recommended. (Eg. com.example.ExampleApplication.) Required. -->
+	<id>org.apache.flexjs.storageexample</id>
+
+	<!-- Used as the filename for the application. Required. -->
+	<filename>Apache FlexJS Storage Example</filename>
+
+	<!-- The name that is displayed in the AIR application installer.
+	May have multiple values for each language. See samples or xsd schema file. Optional. -->
+	<name>Apache FlexJS Storage Example</name>
+
+	<!-- A string value of the format <0-999>.<0-999>.<0-999> that represents application version which can be used to check for application upgrade.
+	Values can also be 1-part or 2-part. It is not necessary to have a 3-part value.
+	An updated version of application must have a versionNumber value higher than the previous version. Required for namespace >= 2.5 . -->
+	<versionNumber>0.6.0</versionNumber>
+
+	<!-- A string value (such as "v1", "2.5", or "Alpha 1") that represents the version of the application, as it should be shown to users. Optional. -->
+	<!-- <versionLabel></versionLabel> -->
+
+	<!-- Description, displayed in the AIR application installer.
+	May have multiple values for each language. See samples or xsd schema file. Optional. -->
+	<!-- <description></description> -->
+
+	<!-- Copyright information. Optional -->
+	<copyright>Copyright 2015 The Apache Software Foundation.</copyright>
+
+	<!-- Publisher ID. Used if you're updating an application created prior to 1.5.3 -->
+	<!-- <publisherID></publisherID> -->
+
+	<!-- Settings for the application's initial window. Required. -->
+	<initialWindow>
+		<!-- The main SWF or HTML file of the application. Required. -->
+		<!-- Note: In Flash Builder, the SWF reference is set automatically. -->
+		<content>StorageExample.swf</content>
+
+		<!-- The title of the main window. Optional. -->
+		<!-- <title></title> -->
+
+		<!-- The type of system chrome to use (either "standard" or "none"). Optional. Default standard. -->
+		<!-- <systemChrome></systemChrome> -->
+
+		<!-- Whether the window is transparent. Only applicable when systemChrome is none. Optional. Default false. -->
+		<!-- <transparent></transparent> -->
+
+		<!-- Whether the window is initially visible. Optional. Default false. -->
+		<!-- <visible></visible> -->
+
+		<!-- Whether the user can minimize the window. Optional. Default true. -->
+		<!-- <minimizable></minimizable> -->
+
+		<!-- Whether the user can maximize the window. Optional. Default true. -->
+		<!-- <maximizable></maximizable> -->
+
+		<!-- Whether the user can resize the window. Optional. Default true. -->
+		<!-- <resizable></resizable> -->
+
+		<!-- The window's initial width in pixels. Optional. -->
+		<width>640</width>
+
+		<!-- The window's initial height in pixels. Optional. -->
+		<height>720</height>
+
+		<!-- The window's initial x position. Optional. -->
+		<!-- <x></x> -->
+
+		<!-- The window's initial y position. Optional. -->
+		<!-- <y></y> -->
+
+		<!-- The window's minimum size, specified as a width/height pair in pixels, such as "400 200". Optional. -->
+		<!-- <minSize></minSize> -->
+
+		<!-- The window's initial maximum size, specified as a width/height pair in pixels, such as "1600 1200". Optional. -->
+		<!-- <maxSize></maxSize> -->
+
+        <!-- The initial aspect ratio of the app when launched (either "portrait" or "landscape"). Optional. Mobile only. Default is the natural orientation of the device -->
+
+        <!-- <aspectRatio></aspectRatio> -->
+
+        <!-- Whether the app will begin auto-orienting on launch. Optional. Mobile only. Default false -->
+
+        <!-- <autoOrients></autoOrients> -->
+
+        <!-- Whether the app launches in full screen. Optional. Mobile only. Default false -->
+
+        <!-- <fullScreen></fullScreen> -->
+
+        <!-- The render mode for the app (either auto, cpu, gpu, or direct). Optional. Default auto -->
+
+        <!-- <renderMode></renderMode> -->
+
+		<!-- Whether or not to pan when a soft keyboard is raised or lowered (either "pan" or "none").  Optional.  Defaults "pan." -->
+		<!-- <softKeyboardBehavior></softKeyboardBehavior> -->
+	<autoOrients>false</autoOrients>
+        <fullScreen>false</fullScreen>
+        <visible>true</visible>
+    </initialWindow>
+
+	<!-- We recommend omitting the supportedProfiles element, -->
+	<!-- which in turn permits your application to be deployed to all -->
+	<!-- devices supported by AIR. If you wish to restrict deployment -->
+	<!-- (i.e., to only mobile devices) then add this element and list -->
+	<!-- only the profiles which your application does support. -->
+	<!-- <supportedProfiles>desktop extendedDesktop mobileDevice extendedMobileDevice</supportedProfiles> -->
+	<supportedProfiles>extendedDesktop desktop</supportedProfiles>
+
+	<!-- The subpath of the standard default installation location to use. Optional. -->
+	<installFolder>Apache Flex</installFolder>
+
+	<!-- The subpath of the Programs menu to use. (Ignored on operating systems without a Programs menu.) Optional. -->
+	<programMenuFolder>Apache Flex</programMenuFolder>
+
+	<!-- The icon the system uses for the application. For at least one resolution,
+	specify the path to a PNG file included in the AIR package. Optional. -->
+	<icon>
+		<image16x16>assets/icons/16.png</image16x16>
+		<image29x29>assets/icons/29.png</image29x29>
+		<image32x32>assets/icons/32.png</image32x32>
+		<image36x36>assets/icons/36.png</image36x36>
+		<image48x48>assets/icons/48.png</image48x48>
+		<image57x57>assets/icons/57.png</image57x57>
+		<image72x72>assets/icons/72.png</image72x72>
+		<image114x114>assets/icons/114.png</image114x114>
+		<image128x128>assets/icons/128.png</image128x128>
+	</icon>
+
+	<!-- Whether the application handles the update when a user double-clicks an update version
+	of the AIR file (true), or the default AIR application installer handles the update (false).
+	Optional. Default false. -->
+	<!-- <customUpdateUI></customUpdateUI> -->
+
+	<!-- Whether the application can be launched when the user clicks a link in a web browser.
+	Optional. Default false. -->
+	<!-- <allowBrowserInvocation></allowBrowserInvocation> -->
+
+	<!-- Listing of file types for which the application can register. Optional. -->
+	<!-- <fileTypes> -->
+
+		<!-- Defines one file type. Optional. -->
+		<!-- <fileType> -->
+
+			<!-- The name that the system displays for the registered file type. Required. -->
+			<!-- <name></name> -->
+
+			<!-- The extension to register. Required. -->
+			<!-- <extension></extension> -->
+
+			<!-- The description of the file type. Optional. -->
+			<!-- <description></description> -->
+
+			<!-- The MIME content type. -->
+			<!-- <contentType></contentType> -->
+
+			<!-- The icon to display for the file type. Optional. -->
+			<!-- <icon>
+				<image16x16></image16x16>
+				<image32x32></image32x32>
+				<image48x48></image48x48>
+				<image128x128></image128x128>
+			</icon> -->
+
+		<!-- </fileType> -->
+	<!-- </fileTypes> -->
+
+    <!-- iOS specific capabilities -->
+	<!-- <iPhone> -->
+		<!-- A list of plist key/value pairs to be added to the application Info.plist -->
+		<!-- <InfoAdditions>
+            <![CDATA[
+                <key>UIDeviceFamily</key>
+                <array>
+                    <string>1</string>
+                    <string>2</string>
+                </array>
+                <key>UIStatusBarStyle</key>
+                <string>UIStatusBarStyleBlackOpaque</string>
+                <key>UIRequiresPersistentWiFi</key>
+                <string>YES</string>
+            ]]>
+        </InfoAdditions> -->
+        <!-- A list of plist key/value pairs to be added to the application Entitlements.plist -->
+		<!-- <Entitlements>
+            <![CDATA[
+                <key>keychain-access-groups</key>
+                <array>
+                    <string></string>
+                    <string></string>
+                </array>
+            ]]>
+        </Entitlements> -->
+	<!-- Display Resolution for the app (either "standard" or "high"). Optional. Default "standard" -->
+	<!-- <requestedDisplayResolution></requestedDisplayResolution> -->
+	<!-- </iPhone> -->
+
+	<!-- Specify Android specific tags that get passed to AndroidManifest.xml file. -->
+    <!--<android> -->
+    <!--	<manifestAdditions>
+		<![CDATA[
+			<manifest android:installLocation="auto">
+				<uses-permission android:name="android.permission.INTERNET"/>
+				<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+				<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+				<uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch"/>
+				<application android:enabled="true">
+					<activity android:excludeFromRecents="false">
+						<intent-filter>
+							<action android:name="android.intent.action.MAIN"/>
+							<category android:name="android.intent.category.LAUNCHER"/>
+						</intent-filter>
+					</activity>
+				</application>
+            </manifest>
+		]]>
+        </manifestAdditions> -->
+	    <!-- Color depth for the app (either "32bit" or "16bit"). Optional. Default 16bit before namespace 3.0, 32bit after -->
+        <!-- <colorDepth></colorDepth> -->
+    <!-- </android> -->
+	<!-- End of the schema for adding the android specific tags in AndroidManifest.xml file -->
+
+</application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c69a390/examples/flexjs/StorageExample/build.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/StorageExample/build.xml b/examples/flexjs/StorageExample/build.xml
new file mode 100644
index 0000000..a976cad
--- /dev/null
+++ b/examples/flexjs/StorageExample/build.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<project name="storageexample" default="main" basedir=".">
+    <property name="FLEXJS_HOME" location="../../.."/>
+    <property name="example" value="StorageExample" />
+    
+    <!-- this project needs AIR 3.4 FP 11.4 -->
+    <property name="swf.version" value="17" />
+    <property name="playerglobal.version" value="11.4" />
+    
+    <property file="${FLEXJS_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${FLEXJS_HOME}/build.properties"/>
+    <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+    <property name="AIR_HOME" value="${env.AIR_HOME}"/>
+    
+    <condition property="adl" value="adl.exe">
+        <os family="windows"/>
+    </condition>
+    
+    <condition property="adl" value="adl">
+        <os family="mac"/>
+    </condition>
+    
+    <condition property="runtime" value="win">
+        <os family="windows"/>
+    </condition>
+    
+    <condition property="runtime" value="mac">
+        <os family="mac"/>
+    </condition>
+
+    <include file="${basedir}/../../build_example.xml" />
+
+    <property name="extlib_arg" value="-external-library-path=${FALCONJX_HOME}/../externs/cordova/out/bin/cordova.swc"/>
+    <property name="opt1_arg" value="-remove-circulars" />
+
+<!-- build_example.compileair, -->
+    <target name="main" depends="clean,build_example.compileair,build_example.compilejsair" description="Clean build of ${example}">
+    </target>
+    
+    <target name="clean">
+        <echo>playerglobal.version = ${playerglobal.version}</echo>
+        <delete dir="${basedir}/bin" failonerror="false" />
+        <delete dir="${basedir}/bin-debug" failonerror="false" />
+        <delete dir="${basedir}/bin-release" failonerror="false" />
+    </target>    
+    
+    <target name="run">
+        <exec executable="${AIR_HOME}/bin/${adl}" dir="${basedir}/bin-debug" failonerror="true">
+            <arg value="-runtime" />
+            <arg value="${AIR_HOME}/runtimes/air/${runtime}" />
+            <arg value="-profile" />
+            <arg value="extendedDesktop" />
+            <arg value="${basedir}/bin-debug/${example}-app.xml" />
+        </exec>
+    </target>
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c69a390/examples/flexjs/StorageExample/pom.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/StorageExample/pom.xml b/examples/flexjs/StorageExample/pom.xml
new file mode 100644
index 0000000..06ac9b2
--- /dev/null
+++ b/examples/flexjs/StorageExample/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.flex.examples.flexjs</groupId>
+        <artifactId>examples</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>StorageExample</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>swf</packaging>
+
+    <build>
+        <sourceDirectory>src</sourceDirectory>
+        <plugins>
+            <plugin>
+                <groupId>net.flexmojos.oss</groupId>
+                <artifactId>flexmojos-maven-plugin</artifactId>
+                <version>7.1.0-SNAPSHOT</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <sourceFile>StorageExample.mxml</sourceFile>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c69a390/examples/flexjs/StorageExample/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/StorageExample/src/MyInitialView.mxml b/examples/flexjs/StorageExample/src/MyInitialView.mxml
new file mode 100644
index 0000000..2bb6b7a
--- /dev/null
+++ b/examples/flexjs/StorageExample/src/MyInitialView.mxml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<js:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009"
+				xmlns:js="library://ns.apache.org/flexjs/basic"
+				xmlns:local="*"
+				initComplete="startup()">
+    <fx:Script>
+        <![CDATA[			
+			import org.apache.flex.storage.PermanentStorage;
+			import org.apache.flex.storage.events.FileReadEvent;
+			import org.apache.flex.storage.events.FileWriteEvent;
+			
+			private function startup():void
+			{
+				trace("Starting up");
+			}
+			
+			private function onRead():void
+			{
+				var storage:PermanentStorage = new PermanentStorage();
+				
+				var useFile:String = readFileNameField.text;
+				
+				storage.addEventListener("COMPLETE", handleRead);
+				storage.addEventListener("ERROR", handleRead);
+				storage.readTextFromDataFile( useFile );
+			}
+			
+			private function handleRead(event:FileReadEvent):void
+			{
+				trace("Read event type: "+event.type);
+				if (event.type == "ERROR") {
+					status.text = "Error: "+event.errorMessage;
+					readContent.text = "";
+				}
+				else {
+					trace(event.data);
+					status.text = "Read Success!";
+					readContent.text = String(event.data);
+				}
+			}
+			
+			private function onSave():void
+			{
+				var storage:PermanentStorage = new PermanentStorage();
+				var today:Date = new Date();
+				
+				var useFile:String = writeFileNameField.text;
+				var useContent:String = today.toString() + " " + contentField.text;
+				
+				storage.addEventListener("COMPLETE", handleSave);
+				storage.writeTextToDataFile(useFile, useContent);
+			}
+			
+			private function handleSave(event:FileWriteEvent):void
+			{
+				if (event.type == "ERROR") {
+					status.text = "Error: "+event.errorMessage;
+				} else {
+					status.text = "Write Success!";
+				}
+			}
+		]]>
+    </fx:Script>
+	
+	<fx:Style>
+	
+	.labelStyle {
+		color: #9999FF;
+	}
+	
+	.contentStyle {
+		font-size: 18pt;
+	}
+	
+	</fx:Style>
+	
+	<js:beads>
+		<js:ViewBaseDataBinding />
+	</js:beads>
+	
+	<js:VContainer width="100%" height="100%">
+		<js:Label text="Storage Example" width="100%" />
+		<js:Spacer height="20" />
+		
+		<js:HContainer>
+			<js:Label text="Write File Name:" className="labelStyle" />
+			<js:TextInput id="writeFileNameField" text="testfile.txt" />
+		</js:HContainer>
+		<js:HContainer>
+			<js:Label text="Content:" className="labelStyle" />
+			<js:TextInput id="contentField" />
+		</js:HContainer>
+		<js:TextButton text="SAVE" click="onSave()" />
+		<js:Spacer height="20" />
+		
+		<js:Label id="status" />
+		<js:Spacer height="20" />
+		
+		<js:HContainer>
+			<js:Label text="Read File Name:" className="labelStyle" />
+			<js:TextInput id="readFileNameField" text="testfile.txt" />
+		</js:HContainer>
+		<js:TextButton text="READ" click="onRead()" />
+		<js:HContainer>
+			<js:Label text="Content:" className="labelStyle" />
+		</js:HContainer>
+		<js:HContainer>
+			<js:Label id="readContent" className="contentStyle" />
+		</js:HContainer>
+	</js:VContainer>
+		
+
+</js:ViewBase>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c69a390/examples/flexjs/StorageExample/src/StorageExample.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/StorageExample/src/StorageExample.mxml b/examples/flexjs/StorageExample/src/StorageExample.mxml
new file mode 100644
index 0000000..1b9842a
--- /dev/null
+++ b/examples/flexjs/StorageExample/src/StorageExample.mxml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!---
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+-->
+<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+				   xmlns:local="*"
+				   xmlns:js="library://ns.apache.org/flexjs/basic" 
+				   >
+	
+	<!-- This application demonstrates how to use the Google MAP API
+	     on both the AIR and JavaScript/browser platform. After cross-
+	     compiling this application for JavaScript, edit the index.html
+	     file and include your Google developer API token.
+	-->
+	
+	<js:valuesImpl>
+		<js:SimpleCSSValuesImpl />
+	</js:valuesImpl>
+	<js:initialView>
+		<local:MyInitialView />
+	</js:initialView>
+	<js:beads>
+		<js:MixinManager />
+	</js:beads>
+	
+</js:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1c69a390/examples/flexjs/StorageExample/src/models/MyModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/StorageExample/src/models/MyModel.as b/examples/flexjs/StorageExample/src/models/MyModel.as
new file mode 100644
index 0000000..e0dab68
--- /dev/null
+++ b/examples/flexjs/StorageExample/src/models/MyModel.as
@@ -0,0 +1,58 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package models
+{
+	import org.apache.flex.core.IBeadModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.EventDispatcher;
+	
+	public class MyModel extends EventDispatcher implements IBeadModel
+	{
+		public function MyModel()
+		{
+			super();
+		}
+		
+		private var _strand:IStrand;
+		
+		public function set strand(value:IStrand):void
+		{
+			_strand = value;
+		}
+		
+		private var _cities:Array = ["Sydney", "NYC", "Mexico City", "London", "Rio de Janeiro"];
+		
+		[Bindable]
+		public function get cities():Array
+		{
+			return _cities;
+		}
+		
+		private var _coordinates:Array = [{lat:-33.86, lng:151.211},
+			{lat:40.712, lng:-74.0059},
+			{lat:19.26, lng:-99.03},
+			{lat:51.4, lng:-0.1},
+			{lat:-22.95, lng:-43.12}];
+		public function get coordinates():Array
+		{
+			return _coordinates;
+		}
+	}
+}
\ No newline at end of file


[15/37] git commit: [flex-asjs] [refs/heads/spark] - fix return type for delete property

Posted by ah...@apache.org.
fix return type for delete property


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/8b5fdc10
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/8b5fdc10
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/8b5fdc10

Branch: refs/heads/spark
Commit: 8b5fdc1057b26f692225a1ec7b11d9aa65d5857f
Parents: 416f7be
Author: Alex Harui <ah...@apache.org>
Authored: Sat Feb 27 23:13:13 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Sat Feb 27 23:13:13 2016 -0800

----------------------------------------------------------------------
 .../projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as   | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/8b5fdc10/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
index ad36a34..31bd886 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
@@ -122,9 +122,9 @@ public dynamic class Proxy extends EventDispatcher
 		return valueMap.hasOwnProperty(propName);
     }
     
-    public function deleteProperty(propName:String):void
+    public function deleteProperty(propName:String):Boolean
     {
-        delete valueMap[propName];
+        return delete valueMap[propName];
     }
 	
 	public function elementNames():Array


[28/37] git commit: [flex-asjs] [refs/heads/spark] - initial support for QName and Namespaces in JS

Posted by ah...@apache.org.
initial support for QName and Namespaces in JS


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/b4f50115
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/b4f50115
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/b4f50115

Branch: refs/heads/spark
Commit: b4f50115d5169b90212f51254b0710430ad218f3
Parents: 1c4d36c
Author: Alex Harui <ah...@apache.org>
Authored: Thu Mar 10 19:28:11 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Mar 10 19:28:20 2016 -0800

----------------------------------------------------------------------
 .../projects/Core/src/main/flex/CoreClasses.as  |  2 +
 .../projects/Core/src/main/flex/Namespace.as    | 50 ++++++++++++++++++
 frameworks/projects/Core/src/main/flex/QName.as | 53 ++++++++++++++++++++
 manualtests/LanguageTests/src/LanguageTests.as  | 26 ++++++++--
 4 files changed, 128 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4f50115/frameworks/projects/Core/src/main/flex/CoreClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/CoreClasses.as b/frameworks/projects/Core/src/main/flex/CoreClasses.as
index 5ad1688..b806f68 100644
--- a/frameworks/projects/Core/src/main/flex/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/flex/CoreClasses.as
@@ -145,6 +145,8 @@ internal class CoreClasses
 	COMPILE::JS
 	{
 	    import org.apache.flex.utils.Language; Language;
+		import QName; QName;
+		import Namespace; Namespace;
 	}
 }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4f50115/frameworks/projects/Core/src/main/flex/Namespace.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/Namespace.as b/frameworks/projects/Core/src/main/flex/Namespace.as
new file mode 100644
index 0000000..305d88c
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/Namespace.as
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package {
+
+/**
+ *  Namespace implementation for JS
+ */
+public class Namespace
+{
+    public function Namespace(param1:*, param2:* = undefined)
+	{
+		if (param2 !== undefined)
+		{
+			uri = param2;
+			prefix = param1;
+		}
+		else
+		{
+			uri = param1;
+		}
+	}
+	
+	public var uri:String;
+	public var prefix:String;
+	
+	public function toString():String
+	{
+		return uri;
+	}
+	
+}
+
+}
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4f50115/frameworks/projects/Core/src/main/flex/QName.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/QName.as b/frameworks/projects/Core/src/main/flex/QName.as
new file mode 100644
index 0000000..26c398b
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/QName.as
@@ -0,0 +1,53 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package {
+
+/**
+ *  QName implementation for JS
+ */
+public class QName
+{
+    public function QName(param1:Object, localName:String = null)
+	{
+		if (param1 is QName)
+		{
+			var q:QName = param1 as QName;
+			uri = q.uri;
+			localName = q.localName;
+		}
+		else if (param1 is Namespace)
+		{
+			var n:Namespace = param1 as Namespace;
+			uri = n.uri;
+			this.localName = localName;
+		}
+	}
+	
+	public var uri:String;
+	public var localName:String;
+	
+	public function toString():String
+	{
+		return uri + "::" + localName;
+	}
+	
+}
+
+}
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/b4f50115/manualtests/LanguageTests/src/LanguageTests.as
----------------------------------------------------------------------
diff --git a/manualtests/LanguageTests/src/LanguageTests.as b/manualtests/LanguageTests/src/LanguageTests.as
index 1343abe..8ed9c38 100644
--- a/manualtests/LanguageTests/src/LanguageTests.as
+++ b/manualtests/LanguageTests/src/LanguageTests.as
@@ -19,9 +19,6 @@
 package
 {
 
-import org.apache.flex.core.SimpleApplication;
-import org.apache.flex.events.Event;
-
 import classes.B;
 
 import interfaces.IA;
@@ -31,6 +28,9 @@ import interfaces.ID;
 import interfaces.IE;
 import interfaces.IF;
 
+import org.apache.flex.core.SimpleApplication;
+import org.apache.flex.events.Event;
+
 public class LanguageTests extends SimpleApplication implements IA, IE
 {
 	public function LanguageTests()
@@ -149,6 +149,19 @@ public class LanguageTests extends SimpleApplication implements IA, IE
             trace("removeEventListener worked");
         else
             trace("This shouldn't show!");
+        
+        var n:Namespace = new Namespace("my_ns", "http://www.apache.org/2016/flex/ns/internal");
+        trace("Namespace.prefix (should be my_ns): ", n.prefix);
+        trace("Namespace.uri (should be http://www.apache.org/2016/flex/ns/internal): ", n.uri);
+        var q:QName = new QName(n, "my_namespaced_property");
+        trace("QName.localName (should be my_namespaced_property): ", q.localName);
+        trace("QName.uri (should be http://www.apache.org/2016/flex/ns/internal): ", q.uri);
+        var o:MyDynamicClass = new MyDynamicClass;
+        o[q] = "value_of_namespaced_property";
+        trace("Get namespaced property via []: ", o[q]);
+        trace("Get namespaced property via ::: ", o.n::my_namespaced_property);
+        trace("Get namespaced property via my_ns: ", o.my_ns::my_namespaced_property);
+        
 	}
     
     public function eventHandler(e:Event):void
@@ -156,4 +169,11 @@ public class LanguageTests extends SimpleApplication implements IA, IE
         
     }
 }
+}
+
+namespace my_ns = "http://www.apache.org/2016/flex/ns/internal";
+
+dynamic class MyDynamicClass
+{
+    my_ns var my_namespaced_property:String;    
 }
\ No newline at end of file


[34/37] git commit: [flex-asjs] [refs/heads/spark] - Merge branch 'develop' into spark

Posted by ah...@apache.org.
Merge branch 'develop' into spark


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/87804f76
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/87804f76
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/87804f76

Branch: refs/heads/spark
Commit: 87804f76442b9a5c57c57c208e2da69ab49b8cd2
Parents: fc11d5a e701358
Author: Alex Harui <ah...@apache.org>
Authored: Mon Mar 14 23:19:23 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Mar 14 23:19:23 2016 -0700

----------------------------------------------------------------------
 LICENSE                                         |   3 +
 examples/build.xml                              |   2 +
 examples/flexjs/StorageExample/README.txt       |  81 ++++++
 .../StorageExample/StorageExample-app.xml       | 252 +++++++++++++++++++
 examples/flexjs/StorageExample/build.xml        |  77 ++++++
 examples/flexjs/StorageExample/pom.xml          |  50 ++++
 .../StorageExample/src/MyInitialView.mxml       | 131 ++++++++++
 .../StorageExample/src/StorageExample.mxml      |  42 ++++
 .../flexjs/StorageExample/src/models/MyModel.as |  58 +++++
 .../projects/Core/src/main/flex/CoreClasses.as  |   2 +
 .../projects/Core/src/main/flex/Namespace.as    |  50 ++++
 frameworks/projects/Core/src/main/flex/QName.as |  53 ++++
 .../org/apache/flex/core/HTMLElementWrapper.as  |  18 ++
 .../flex/org/apache/flex/core/IFlexJSElement.as |  18 ++
 .../org/apache/flex/core/WrappedHTMLElement.as  |  18 ++
 .../src/main/flex/google/maps/Animation.as      |  18 ++
 .../src/main/flex/google/maps/BicyclingLayer.as |  18 ++
 .../src/main/flex/google/maps/Circle.as         |  18 ++
 .../main/flex/google/maps/ControlPosition.as    |  18 ++
 .../main/flex/google/maps/DirectionsRenderer.as |  18 ++
 .../main/flex/google/maps/DirectionsService.as  |  18 ++
 .../main/flex/google/maps/DirectionsStatus.as   |  18 ++
 .../google/maps/DistanceMatrixElementStatus.as  |  18 ++
 .../flex/google/maps/DistanceMatrixService.as   |  18 ++
 .../flex/google/maps/DistanceMatrixStatus.as    |  18 ++
 .../main/flex/google/maps/ElevationService.as   |  18 ++
 .../main/flex/google/maps/ElevationStatus.as    |  18 ++
 .../flex/google/maps/FusionTablesHeatmap.as     |  18 ++
 .../main/flex/google/maps/FusionTablesLayer.as  |  18 ++
 .../google/maps/FusionTablesMarkerOptions.as    |  18 ++
 .../google/maps/FusionTablesPolygonOptions.as   |  18 ++
 .../google/maps/FusionTablesPolylineOptions.as  |  18 ++
 .../main/flex/google/maps/FusionTablesQuery.as  |  18 ++
 .../main/flex/google/maps/FusionTablesStyle.as  |  18 ++
 .../src/main/flex/google/maps/Geocoder.as       |  18 ++
 .../google/maps/GeocoderAddressComponent.as     |  18 ++
 .../main/flex/google/maps/GeocoderGeometry.as   |  18 ++
 .../flex/google/maps/GeocoderLocationType.as    |  18 ++
 .../src/main/flex/google/maps/GeocoderResult.as |  18 ++
 .../src/main/flex/google/maps/GeocoderStatus.as |  18 ++
 .../src/main/flex/google/maps/GroundOverlay.as  |  18 ++
 .../src/main/flex/google/maps/ImageMapType.as   |  18 ++
 .../src/main/flex/google/maps/InfoWindow.as     |  18 ++
 .../src/main/flex/google/maps/KmlAuthor.as      |  18 ++
 .../src/main/flex/google/maps/KmlFeatureData.as |  18 ++
 .../src/main/flex/google/maps/KmlLayer.as       |  18 ++
 .../main/flex/google/maps/KmlLayerMetadata.as   |  18 ++
 .../src/main/flex/google/maps/KmlLayerStatus.as |  18 ++
 .../src/main/flex/google/maps/KmlMouseEvent.as  |  18 ++
 .../src/main/flex/google/maps/LatLng.as         |  37 +--
 .../src/main/flex/google/maps/LatLngBounds.as   |  18 ++
 .../src/main/flex/google/maps/MVCArray.as       |  18 ++
 .../src/main/flex/google/maps/MVCObject.as      |  19 ++
 .../GoogleMaps/src/main/flex/google/maps/Map.as |  18 ++
 .../flex/google/maps/MapCanvasProjection.as     |  18 ++
 .../src/main/flex/google/maps/MapPanes.as       |  18 ++
 .../flex/google/maps/MapTypeControlStyle.as     |  18 ++
 .../src/main/flex/google/maps/MapTypeId.as      |  18 ++
 .../main/flex/google/maps/MapTypeRegistry.as    |  18 ++
 .../main/flex/google/maps/MapsEventListener.as  |  18 ++
 .../src/main/flex/google/maps/Marker.as         |  37 +--
 .../src/main/flex/google/maps/MaxZoomService.as |  18 ++
 .../src/main/flex/google/maps/MaxZoomStatus.as  |  18 ++
 .../src/main/flex/google/maps/MouseEvent.as     |  19 ++
 .../src/main/flex/google/maps/OverlayView.as    |  18 ++
 .../src/main/flex/google/maps/Point.as          |  18 ++
 .../src/main/flex/google/maps/PolyMouseEvent.as |  18 ++
 .../src/main/flex/google/maps/Polygon.as        |  18 ++
 .../src/main/flex/google/maps/Polyline.as       |  18 ++
 .../src/main/flex/google/maps/Rectangle.as      |  18 ++
 .../main/flex/google/maps/ScaleControlStyle.as  |  18 ++
 .../src/main/flex/google/maps/Size.as           |  18 ++
 .../flex/google/maps/StreetViewCoverageLayer.as |  18 ++
 .../main/flex/google/maps/StreetViewPanorama.as |  18 ++
 .../src/main/flex/google/maps/StreetViewPov.as  |  18 ++
 .../main/flex/google/maps/StreetViewService.as  |  18 ++
 .../main/flex/google/maps/StreetViewStatus.as   |  18 ++
 .../src/main/flex/google/maps/StrokePosition.as |  18 ++
 .../src/main/flex/google/maps/StyledMapType.as  |  18 ++
 .../src/main/flex/google/maps/SymbolPath.as     |  18 ++
 .../src/main/flex/google/maps/TrafficLayer.as   |  18 ++
 .../src/main/flex/google/maps/TransitLayer.as   |  18 ++
 .../src/main/flex/google/maps/TravelMode.as     |  18 ++
 .../src/main/flex/google/maps/UnitSystem.as     |  18 ++
 .../main/flex/google/maps/ZoomControlStyle.as   |  18 ++
 .../src/main/flex/google/maps/adsense.as        |  18 ++
 .../main/flex/google/maps/adsense/AdFormat.as   |  18 ++
 .../src/main/flex/google/maps/adsense/AdUnit.as |  18 ++
 .../src/main/flex/google/maps/drawing.as        |  18 ++
 .../flex/google/maps/drawing/DrawingManager.as  |  18 ++
 .../google/maps/drawing/OverlayCompleteEvent.as |  18 ++
 .../flex/google/maps/drawing/OverlayType.as     |  18 ++
 .../src/main/flex/google/maps/event.as          |  18 ++
 .../src/main/flex/google/maps/geometry.as       |  18 ++
 .../main/flex/google/maps/geometry/encoding.as  |  18 ++
 .../src/main/flex/google/maps/geometry/poly.as  |  18 ++
 .../main/flex/google/maps/geometry/spherical.as |  18 ++
 .../src/main/flex/google/maps/panoramio.as      |  18 ++
 .../google/maps/panoramio/PanoramioLayer.as     |  18 ++
 .../src/main/flex/google/maps/places.as         |  18 ++
 .../flex/google/maps/places/Autocomplete.as     |  18 ++
 .../google/maps/places/AutocompleteService.as   |  18 ++
 .../google/maps/places/ComponentRestrictions.as |  18 ++
 .../flex/google/maps/places/PhotoOptions.as     |  18 ++
 .../google/maps/places/PlaceAspectRating.as     |  18 ++
 .../flex/google/maps/places/PlaceGeometry.as    |  18 ++
 .../main/flex/google/maps/places/PlaceResult.as |  18 ++
 .../main/flex/google/maps/places/PlaceReview.as |  18 ++
 .../google/maps/places/PlaceSearchPagination.as |  18 ++
 .../flex/google/maps/places/PlacesService.as    |  18 ++
 .../google/maps/places/PlacesServiceStatus.as   |  18 ++
 .../src/main/flex/google/maps/places/RankBy.as  |  18 ++
 .../main/flex/google/maps/places/SearchBox.as   |  18 ++
 .../src/main/flex/google/maps/visualization.as  |  18 ++
 .../maps/visualization/DemographicsLayer.as     |  18 ++
 .../google/maps/visualization/HeatmapLayer.as   |  18 ++
 .../maps/visualization/MapsEngineLayer.as       |  18 ++
 .../maps/visualization/MapsEngineStatus.as      |  18 ++
 .../src/main/flex/google/maps/weather.as        |  18 ++
 .../main/flex/google/maps/weather/CloudLayer.as |  18 ++
 .../main/flex/google/maps/weather/LabelColor.as |  18 ++
 .../flex/google/maps/weather/TemperatureUnit.as |  18 ++
 .../flex/google/maps/weather/WeatherLayer.as    |  18 ++
 .../flex/google/maps/weather/WindSpeedUnit.as   |  18 ++
 .../main/flex/google/pseudo/HTMLInputElement.as |  20 ++
 .../src/main/flex/google/pseudo/Node.as         |  20 ++
 .../projects/HTML/src/main/flex/HTMLClasses.as  |   2 +-
 .../Mobile/src/main/flex/MobileClasses.as       |   3 +
 .../flex/org/apache/flex/mobile/ToggleSwitch.as | 105 ++++++++
 .../flex/mobile/beads/ToggleSwitchView.as       | 180 +++++++++++++
 .../controllers/ToggleSwitchMouseController.as  | 120 +++++++++
 .../src/main/resources/basic-manifest.xml       |   1 +
 .../Mobile/src/main/resources/defaults.css      |   9 +
 frameworks/projects/Storage/build.xml           |   3 +
 .../Storage/src/main/flex/StorageClasses.as     |   9 +
 .../apache/flex/storage/IPermanentStorage.as    |  63 +++++
 .../org/apache/flex/storage/PermanentStorage.as |  97 +++++++
 .../apache/flex/storage/events/FileReadEvent.as |  70 ++++++
 .../flex/storage/events/FileWriteEvent.as       |  60 +++++
 .../org/apache/flex/storage/file/LocalFile.as   |  84 +++++++
 .../storage/providers/AirStorageProvider.as     | 165 ++++++++++++
 .../providers/IPermanentStorageProvider.as      |  74 ++++++
 .../storage/providers/WebStorageProvider.as     | 169 +++++++++++++
 .../src/main/resources/basic-manifest.xml       |   1 +
 .../Storage/src/main/resources/defaults.css     |  16 ++
 manualtests/LanguageTests/src/LanguageTests.as  |  26 +-
 nightly.properties                              |   8 +-
 147 files changed, 4118 insertions(+), 44 deletions(-)
----------------------------------------------------------------------



[31/37] git commit: [flex-asjs] [refs/heads/spark] - try fixing up headers. Some day, we should try pulling most of these files from the flex-falcon externs. Most files are copies with some tweaks to jsdoc to make asdoc happy

Posted by ah...@apache.org.
try fixing up headers.  Some day, we should try pulling most of these files from the flex-falcon externs.  Most files are copies with some tweaks to jsdoc to make asdoc happy


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/26a26621
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/26a26621
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/26a26621

Branch: refs/heads/spark
Commit: 26a26621273081bbf9209bb4224ffb00964d7587
Parents: ba233ad
Author: Alex Harui <ah...@apache.org>
Authored: Fri Mar 11 12:28:19 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Mar 11 12:28:19 2016 -0800

----------------------------------------------------------------------
 .../src/main/flex/google/maps/Animation.as      | 18 ++++++++++
 .../src/main/flex/google/maps/BicyclingLayer.as | 18 ++++++++++
 .../src/main/flex/google/maps/Circle.as         | 18 ++++++++++
 .../main/flex/google/maps/ControlPosition.as    | 18 ++++++++++
 .../main/flex/google/maps/DirectionsRenderer.as | 18 ++++++++++
 .../main/flex/google/maps/DirectionsService.as  | 18 ++++++++++
 .../main/flex/google/maps/DirectionsStatus.as   | 18 ++++++++++
 .../google/maps/DistanceMatrixElementStatus.as  | 18 ++++++++++
 .../flex/google/maps/DistanceMatrixService.as   | 18 ++++++++++
 .../flex/google/maps/DistanceMatrixStatus.as    | 18 ++++++++++
 .../main/flex/google/maps/ElevationService.as   | 18 ++++++++++
 .../main/flex/google/maps/ElevationStatus.as    | 18 ++++++++++
 .../flex/google/maps/FusionTablesHeatmap.as     | 18 ++++++++++
 .../main/flex/google/maps/FusionTablesLayer.as  | 18 ++++++++++
 .../google/maps/FusionTablesMarkerOptions.as    | 18 ++++++++++
 .../google/maps/FusionTablesPolygonOptions.as   | 18 ++++++++++
 .../google/maps/FusionTablesPolylineOptions.as  | 18 ++++++++++
 .../main/flex/google/maps/FusionTablesQuery.as  | 18 ++++++++++
 .../main/flex/google/maps/FusionTablesStyle.as  | 18 ++++++++++
 .../src/main/flex/google/maps/Geocoder.as       | 18 ++++++++++
 .../google/maps/GeocoderAddressComponent.as     | 18 ++++++++++
 .../main/flex/google/maps/GeocoderGeometry.as   | 18 ++++++++++
 .../flex/google/maps/GeocoderLocationType.as    | 18 ++++++++++
 .../src/main/flex/google/maps/GeocoderResult.as | 18 ++++++++++
 .../src/main/flex/google/maps/GeocoderStatus.as | 18 ++++++++++
 .../src/main/flex/google/maps/GroundOverlay.as  | 18 ++++++++++
 .../src/main/flex/google/maps/ImageMapType.as   | 18 ++++++++++
 .../src/main/flex/google/maps/InfoWindow.as     | 18 ++++++++++
 .../src/main/flex/google/maps/KmlAuthor.as      | 18 ++++++++++
 .../src/main/flex/google/maps/KmlFeatureData.as | 18 ++++++++++
 .../src/main/flex/google/maps/KmlLayer.as       | 18 ++++++++++
 .../main/flex/google/maps/KmlLayerMetadata.as   | 18 ++++++++++
 .../src/main/flex/google/maps/KmlLayerStatus.as | 18 ++++++++++
 .../src/main/flex/google/maps/KmlMouseEvent.as  | 18 ++++++++++
 .../src/main/flex/google/maps/LatLng.as         | 37 ++++++++++----------
 .../src/main/flex/google/maps/LatLngBounds.as   | 18 ++++++++++
 .../src/main/flex/google/maps/MVCArray.as       | 18 ++++++++++
 .../src/main/flex/google/maps/MVCObject.as      | 19 ++++++++++
 .../GoogleMaps/src/main/flex/google/maps/Map.as | 18 ++++++++++
 .../flex/google/maps/MapCanvasProjection.as     | 18 ++++++++++
 .../src/main/flex/google/maps/MapPanes.as       | 18 ++++++++++
 .../flex/google/maps/MapTypeControlStyle.as     | 18 ++++++++++
 .../src/main/flex/google/maps/MapTypeId.as      | 18 ++++++++++
 .../main/flex/google/maps/MapTypeRegistry.as    | 18 ++++++++++
 .../main/flex/google/maps/MapsEventListener.as  | 18 ++++++++++
 .../src/main/flex/google/maps/Marker.as         | 37 ++++++++++----------
 .../src/main/flex/google/maps/MaxZoomService.as | 18 ++++++++++
 .../src/main/flex/google/maps/MaxZoomStatus.as  | 18 ++++++++++
 .../src/main/flex/google/maps/OverlayView.as    | 18 ++++++++++
 .../src/main/flex/google/maps/Point.as          | 18 ++++++++++
 .../src/main/flex/google/maps/PolyMouseEvent.as | 18 ++++++++++
 .../src/main/flex/google/maps/Polygon.as        | 18 ++++++++++
 .../src/main/flex/google/maps/Polyline.as       | 18 ++++++++++
 .../src/main/flex/google/maps/Rectangle.as      | 18 ++++++++++
 .../main/flex/google/maps/ScaleControlStyle.as  | 18 ++++++++++
 .../src/main/flex/google/maps/Size.as           | 18 ++++++++++
 .../flex/google/maps/StreetViewCoverageLayer.as | 18 ++++++++++
 .../main/flex/google/maps/StreetViewPanorama.as | 18 ++++++++++
 .../src/main/flex/google/maps/StreetViewPov.as  | 18 ++++++++++
 .../main/flex/google/maps/StreetViewService.as  | 18 ++++++++++
 .../main/flex/google/maps/StreetViewStatus.as   | 18 ++++++++++
 .../src/main/flex/google/maps/StrokePosition.as | 18 ++++++++++
 .../src/main/flex/google/maps/StyledMapType.as  | 18 ++++++++++
 .../src/main/flex/google/maps/SymbolPath.as     | 18 ++++++++++
 .../src/main/flex/google/maps/TrafficLayer.as   | 18 ++++++++++
 .../src/main/flex/google/maps/TransitLayer.as   | 18 ++++++++++
 .../src/main/flex/google/maps/TravelMode.as     | 18 ++++++++++
 .../src/main/flex/google/maps/UnitSystem.as     | 18 ++++++++++
 .../main/flex/google/maps/ZoomControlStyle.as   | 18 ++++++++++
 .../src/main/flex/google/maps/adsense.as        | 18 ++++++++++
 .../main/flex/google/maps/adsense/AdFormat.as   | 18 ++++++++++
 .../src/main/flex/google/maps/adsense/AdUnit.as | 18 ++++++++++
 .../src/main/flex/google/maps/drawing.as        | 18 ++++++++++
 .../flex/google/maps/drawing/DrawingManager.as  | 18 ++++++++++
 .../google/maps/drawing/OverlayCompleteEvent.as | 18 ++++++++++
 .../flex/google/maps/drawing/OverlayType.as     | 18 ++++++++++
 .../src/main/flex/google/maps/event.as          | 18 ++++++++++
 .../src/main/flex/google/maps/geometry.as       | 18 ++++++++++
 .../main/flex/google/maps/geometry/encoding.as  | 18 ++++++++++
 .../src/main/flex/google/maps/geometry/poly.as  | 18 ++++++++++
 .../main/flex/google/maps/geometry/spherical.as | 18 ++++++++++
 .../src/main/flex/google/maps/panoramio.as      | 18 ++++++++++
 .../google/maps/panoramio/PanoramioLayer.as     | 18 ++++++++++
 .../src/main/flex/google/maps/places.as         | 18 ++++++++++
 .../flex/google/maps/places/Autocomplete.as     | 18 ++++++++++
 .../google/maps/places/AutocompleteService.as   | 18 ++++++++++
 .../google/maps/places/ComponentRestrictions.as | 18 ++++++++++
 .../flex/google/maps/places/PhotoOptions.as     | 18 ++++++++++
 .../google/maps/places/PlaceAspectRating.as     | 18 ++++++++++
 .../flex/google/maps/places/PlaceGeometry.as    | 18 ++++++++++
 .../main/flex/google/maps/places/PlaceResult.as | 18 ++++++++++
 .../main/flex/google/maps/places/PlaceReview.as | 18 ++++++++++
 .../google/maps/places/PlaceSearchPagination.as | 18 ++++++++++
 .../flex/google/maps/places/PlacesService.as    | 18 ++++++++++
 .../google/maps/places/PlacesServiceStatus.as   | 18 ++++++++++
 .../src/main/flex/google/maps/places/RankBy.as  | 18 ++++++++++
 .../main/flex/google/maps/places/SearchBox.as   | 18 ++++++++++
 .../src/main/flex/google/maps/visualization.as  | 18 ++++++++++
 .../maps/visualization/DemographicsLayer.as     | 18 ++++++++++
 .../google/maps/visualization/HeatmapLayer.as   | 18 ++++++++++
 .../maps/visualization/MapsEngineLayer.as       | 18 ++++++++++
 .../maps/visualization/MapsEngineStatus.as      | 18 ++++++++++
 .../src/main/flex/google/maps/weather.as        | 18 ++++++++++
 .../main/flex/google/maps/weather/CloudLayer.as | 18 ++++++++++
 .../main/flex/google/maps/weather/LabelColor.as | 18 ++++++++++
 .../flex/google/maps/weather/TemperatureUnit.as | 18 ++++++++++
 .../flex/google/maps/weather/WeatherLayer.as    | 18 ++++++++++
 .../flex/google/maps/weather/WindSpeedUnit.as   | 18 ++++++++++
 .../main/flex/google/pseudo/HTMLInputElement.as | 20 +++++++++++
 .../src/main/flex/google/pseudo/Node.as         | 20 +++++++++++
 110 files changed, 1987 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Animation.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Animation.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Animation.as
index 8a76edf..67e885e 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Animation.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Animation.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/BicyclingLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/BicyclingLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/BicyclingLayer.as
index 5dab300..07fb859 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/BicyclingLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/BicyclingLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Circle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Circle.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Circle.as
index 2d95c54..425cedc 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Circle.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Circle.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ControlPosition.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ControlPosition.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ControlPosition.as
index 5ef0a2a..dbd9e27 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ControlPosition.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ControlPosition.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsRenderer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsRenderer.as
index f548646..78d34e9 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsRenderer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsRenderer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 	
 import google.pseudo.Node;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsService.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsService.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsService.as
index 3070674..7baa194 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsService.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsService.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsStatus.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsStatus.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsStatus.as
index e34bf53..d0aae71 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsStatus.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DirectionsStatus.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixElementStatus.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixElementStatus.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixElementStatus.as
index 510c17f..d65204d 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixElementStatus.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixElementStatus.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixService.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixService.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixService.as
index 035e63d..a6f4d2c 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixService.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixService.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixStatus.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixStatus.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixStatus.as
index b168675..9b671bd 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixStatus.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/DistanceMatrixStatus.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ElevationService.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ElevationService.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ElevationService.as
index 261da53..6ff4033 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ElevationService.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ElevationService.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ElevationStatus.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ElevationStatus.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ElevationStatus.as
index dfc5e3f..24b2fca 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ElevationStatus.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ElevationStatus.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesHeatmap.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesHeatmap.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesHeatmap.as
index 28400bc..e02ec94 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesHeatmap.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesHeatmap.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesLayer.as
index f185b75..e7580cc 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesMarkerOptions.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesMarkerOptions.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesMarkerOptions.as
index dcd8a4b..f7ed870 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesMarkerOptions.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesMarkerOptions.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesPolygonOptions.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesPolygonOptions.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesPolygonOptions.as
index 2730d85..dc84ebd 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesPolygonOptions.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesPolygonOptions.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesPolylineOptions.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesPolylineOptions.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesPolylineOptions.as
index 4c0ab0b..56898e5 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesPolylineOptions.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesPolylineOptions.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesQuery.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesQuery.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesQuery.as
index 83dbe8b..0695d37 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesQuery.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesQuery.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesStyle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesStyle.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesStyle.as
index 2f428c8..3e95157 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesStyle.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/FusionTablesStyle.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Geocoder.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Geocoder.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Geocoder.as
index f13a2d5..a2f8277 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Geocoder.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Geocoder.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderAddressComponent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderAddressComponent.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderAddressComponent.as
index 60ffa1e..97a942a 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderAddressComponent.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderAddressComponent.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderGeometry.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderGeometry.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderGeometry.as
index 6ba4aff..3c76cf8 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderGeometry.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderGeometry.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderLocationType.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderLocationType.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderLocationType.as
index f1b6379..58bd9f4 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderLocationType.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderLocationType.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderResult.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderResult.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderResult.as
index 773e3f5..5cc79af 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderResult.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderResult.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderStatus.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderStatus.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderStatus.as
index 07b0817..9d68d4d 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderStatus.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GeocoderStatus.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GroundOverlay.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GroundOverlay.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GroundOverlay.as
index e82daa6..05fc11a 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GroundOverlay.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/GroundOverlay.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ImageMapType.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ImageMapType.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ImageMapType.as
index afd2704..1c61c15 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ImageMapType.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ImageMapType.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/InfoWindow.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/InfoWindow.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/InfoWindow.as
index 99df034..b77203d 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/InfoWindow.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/InfoWindow.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlAuthor.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlAuthor.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlAuthor.as
index 57472e4..9ad3521 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlAuthor.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlAuthor.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlFeatureData.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlFeatureData.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlFeatureData.as
index 4730d83..93f09a4 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlFeatureData.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlFeatureData.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayer.as
index 75b4595..f571e18 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayerMetadata.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayerMetadata.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayerMetadata.as
index c224108..53fb2b6 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayerMetadata.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayerMetadata.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayerStatus.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayerStatus.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayerStatus.as
index e21bcb9..4978e44 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayerStatus.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlLayerStatus.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlMouseEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlMouseEvent.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlMouseEvent.as
index 2fe0883..1e26549 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlMouseEvent.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/KmlMouseEvent.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/LatLng.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/LatLng.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/LatLng.as
index fbedaea..688dc91 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/LatLng.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/LatLng.as
@@ -1,21 +1,22 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ * Modifications were implemented at the Apache Software Foundation.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/LatLngBounds.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/LatLngBounds.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/LatLngBounds.as
index 6384733..972badf 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/LatLngBounds.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/LatLngBounds.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MVCArray.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MVCArray.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MVCArray.as
index 356444f..b68ade3 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MVCArray.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MVCArray.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MVCObject.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MVCObject.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MVCObject.as
index ea9d213..d4d30f4 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MVCObject.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MVCObject.as
@@ -1,3 +1,22 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ * Modifications were implemented at the Apache Software Foundation.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Map.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Map.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Map.as
index 43ce77b..6ea10cc 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Map.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Map.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapCanvasProjection.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapCanvasProjection.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapCanvasProjection.as
index c63c20f..0178179 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapCanvasProjection.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapCanvasProjection.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapPanes.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapPanes.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapPanes.as
index 7ad8104..2b2c273 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapPanes.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapPanes.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 	
 import google.pseudo.Node;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeControlStyle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeControlStyle.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeControlStyle.as
index 8bb2221..0dea10a 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeControlStyle.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeControlStyle.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeId.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeId.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeId.as
index b73a3c2..1efa29a 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeId.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeId.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeRegistry.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeRegistry.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeRegistry.as
index 4352140..c0e535f 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeRegistry.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapTypeRegistry.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapsEventListener.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapsEventListener.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapsEventListener.as
index fae3495..c64e1e2 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapsEventListener.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MapsEventListener.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Marker.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Marker.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Marker.as
index 1d48f65..1872cc6 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Marker.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Marker.as
@@ -1,21 +1,22 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ * Modifications were implemented at the Apache Software Foundation.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MaxZoomService.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MaxZoomService.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MaxZoomService.as
index 17bb027..1f162d6 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MaxZoomService.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MaxZoomService.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MaxZoomStatus.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MaxZoomStatus.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MaxZoomStatus.as
index d5ffa09..458e459 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MaxZoomStatus.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MaxZoomStatus.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/OverlayView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/OverlayView.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/OverlayView.as
index a01a0aa..646c26d 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/OverlayView.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/OverlayView.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Point.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Point.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Point.as
index 0bd9f35..ebc5102 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Point.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Point.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/PolyMouseEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/PolyMouseEvent.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/PolyMouseEvent.as
index b31af4e..e87809d 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/PolyMouseEvent.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/PolyMouseEvent.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Polygon.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Polygon.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Polygon.as
index a467204..a768b2e 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Polygon.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Polygon.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Polyline.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Polyline.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Polyline.as
index c63d3ae..d46c057 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Polyline.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Polyline.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Rectangle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Rectangle.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Rectangle.as
index 99e0371..2570d56 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Rectangle.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Rectangle.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ScaleControlStyle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ScaleControlStyle.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ScaleControlStyle.as
index 7db4e10..105796d 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ScaleControlStyle.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ScaleControlStyle.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Size.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Size.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Size.as
index 021d67c..61c362d 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Size.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/Size.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewCoverageLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewCoverageLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewCoverageLayer.as
index 2f08eb8..4bf5a79 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewCoverageLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewCoverageLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewPanorama.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewPanorama.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewPanorama.as
index 6fe67f7..68a7010 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewPanorama.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewPanorama.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewPov.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewPov.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewPov.as
index 02d579f..6439fbf 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewPov.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewPov.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**


[11/37] git commit: [flex-asjs] [refs/heads/spark] - Initial Proxy implementation for FlexJS

Posted by ah...@apache.org.
Initial Proxy implementation for FlexJS


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/d5ee78af
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/d5ee78af
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/d5ee78af

Branch: refs/heads/spark
Commit: d5ee78af8021529921a760abbd1806c2d20657ee
Parents: 4c73001
Author: Alex Harui <ah...@apache.org>
Authored: Sun Feb 21 22:03:43 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Sun Feb 21 22:03:43 2016 -0800

----------------------------------------------------------------------
 .../projects/Core/src/main/flex/CoreClasses.as  |   2 +
 .../main/flex/org/apache/flex/utils/Proxy.as    | 152 +++++++++++++++++++
 manualtests/ProxyTest/build.xml                 |  72 +++++++++
 manualtests/ProxyTest/src/MyInitialView.mxml    |  67 ++++++++
 manualtests/ProxyTest/src/ProxyTest.mxml        |  40 +++++
 manualtests/ProxyTest/src/README.txt            |  45 ++++++
 .../ProxyTest/src/controllers/MyController.as   |  52 +++++++
 manualtests/ProxyTest/src/models/MyModel.as     | 125 +++++++++++++++
 8 files changed, 555 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d5ee78af/frameworks/projects/Core/src/main/flex/CoreClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/CoreClasses.as b/frameworks/projects/Core/src/main/flex/CoreClasses.as
index ee984aa..5ad1688 100644
--- a/frameworks/projects/Core/src/main/flex/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/flex/CoreClasses.as
@@ -140,6 +140,8 @@ internal class CoreClasses
     import org.apache.flex.core.ParentDocumentBead; ParentDocumentBead;
     import org.apache.flex.utils.CSSUtils; CSSUtils;
 
+    import org.apache.flex.utils.Proxy; Proxy;
+
 	COMPILE::JS
 	{
 	    import org.apache.flex.utils.Language; Language;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d5ee78af/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
new file mode 100644
index 0000000..39b6945
--- /dev/null
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
@@ -0,0 +1,152 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.utils
+{
+COMPILE::AS3
+{
+    import flash.utils.Proxy;
+	import flash.utils.flash_proxy;
+}
+
+COMPILE::JS
+{
+    import org.apache.flex.events.EventDispatcher;
+}
+
+//--------------------------------------
+//  Events
+//--------------------------------------
+
+/**
+ *  The Proxy class calls methods when properties
+ *  are set and read and deleted.  
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 10.2
+ *  @playerversion AIR 2.6
+ *  @productversion FlexJS 0.0
+ */
+COMPILE::AS3
+public dynamic class Proxy extends flash.utils.Proxy
+{
+	private var valueMap:Object = {};
+	
+	override flash_proxy function getProperty(propName:*):*
+	{
+		return valueMap[propName];
+	}
+	
+	override flash_proxy function setProperty(propName:*, value:*):void
+	{
+		valueMap[propName] = value;
+	}
+	
+	override flash_proxy function hasProperty(propName:*):Boolean
+	{
+		return valueMap.hasOwnProperty(propName);
+	}
+	
+	override flash_proxy function deleteProperty(propName:*):Boolean
+	{
+		return delete valueMap[propName];
+	}
+	
+	private var names:Array;
+	
+	override flash_proxy function nextNameIndex (index:int):int 
+	{
+		// initial call
+		if (index == 0) {
+			names = new Array();
+			for (var p:* in valueMap) {
+				names.push(p);
+			}
+		}
+		
+		if (index < names.length) {
+			return index + 1;
+		} else {
+			return 0;
+		}
+	}
+	
+	override flash_proxy function nextName(index:int):String 
+	{
+		return names[index - 1];
+	}
+	
+	override flash_proxy function nextValue(index:int):* 
+	{
+		return valueMap[names[index - 1]];
+	}
+}
+
+COMPILE::JS
+public dynamic class Proxy extends EventDispatcher
+{
+    /**
+     *  Constructor.
+     * 
+     *  @param delay The number of milliseconds 
+     *  to wait before dispatching the event.
+     *  @param repeatCount The number of times to dispatch
+     *  the event.  If 0, keep dispatching forever.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public function Proxy()
+    {
+    }
+    
+    
+	private var valueMap:Object = {};
+    
+    public function getProperty(propName:String):*
+    {
+        return valueMap[propName];
+    }
+    
+    public function setProperty(propName:String, value:*):void
+    {
+        valueMap[propName] = value;
+    }
+    
+    public function hasProperty(propName:String):Boolean
+    {
+		return valueMap.hasOwnProperty(propName);
+    }
+    
+    public function deleteProperty(propName:String):void
+    {
+        delete valueMap[propName];
+    }
+	
+	public function elementNames():Array
+	{
+		var names:Array = [];
+		for (var p:String in valueMap)
+			names.push(p);
+		return names;
+	}
+}
+
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d5ee78af/manualtests/ProxyTest/build.xml
----------------------------------------------------------------------
diff --git a/manualtests/ProxyTest/build.xml b/manualtests/ProxyTest/build.xml
new file mode 100644
index 0000000..2e1bcb7
--- /dev/null
+++ b/manualtests/ProxyTest/build.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<project name="proxytest" default="main" basedir=".">
+    <property name="FLEXJS_HOME" location="../.."/>
+    <property name="example" value="ProxyTest" />
+    
+    <property environment="env"/>
+    <property file="${FLEXJS_HOME}/build.properties"/>
+    <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+    <!-- use this to add keep metadata option -->
+    <property name="theme_arg" value="-keep-as3-metadata+=Event" />
+    <available file="${env.FALCON_HOME}/lib/falcon-mxmlc.jar"
+    type="file"
+    property="FALCON_HOME"
+    value="${env.FALCON_HOME}"/>
+    
+    <available file="${FLEXJS_HOME}/../flex-falcon/compiler/generated/dist/sdk/lib/falcon-mxmlc.jar"
+    type="file"
+    property="FALCON_HOME"
+    value="${FLEXJS_HOME}/../flex-falcon/compiler/generated/dist/sdk"/>
+    
+    <available file="${env.FALCONJX_HOME}/lib/jsc.jar"
+    type="file"
+    property="FALCONJX_HOME"
+    value="${env.FALCONJX_HOME}"/>
+    
+    <available file="${FLEXJS_HOME}/../flex-falcon/compiler.jx/lib/jsc.jar"
+    type="file"
+    property="FALCONJX_HOME"
+    value="${FLEXJS_HOME}/../flex-falcon/compiler.jx"/>
+    
+    <available file="${env.GOOG_HOME}/closure/goog/base.js"
+    type="file"
+    property="GOOG_HOME"
+    value="${env.GOOG_HOME}"/>
+    
+    <available file="${FLEXJS_HOME}/js/lib/google/closure-library/closure/goog/base.js"
+    type="file"
+    property="GOOG_HOME"
+    value="${FLEXJS_HOME}/js/lib/google/closure-library"/>
+    
+    <include file="${basedir}/../build_example.xml" />
+
+    <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of FlexJSUI.swc">
+    </target>
+    
+    <target name="clean">
+        <delete dir="${basedir}/bin" failonerror="false" />
+        <delete dir="${basedir}/bin-debug" failonerror="false" />
+        <delete dir="${basedir}/bin-release" failonerror="false" />
+    </target>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d5ee78af/manualtests/ProxyTest/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/manualtests/ProxyTest/src/MyInitialView.mxml b/manualtests/ProxyTest/src/MyInitialView.mxml
new file mode 100644
index 0000000..9b51ed8
--- /dev/null
+++ b/manualtests/ProxyTest/src/MyInitialView.mxml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<js:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009"
+				xmlns:js="library://ns.apache.org/flexjs/basic"
+				xmlns:local="*" 
+				xmlns:models="models.*" 
+				xmlns:acc="org.apache.flex.html.accessories.*">
+	
+	<fx:Style>
+		.title {
+			font-size: 14pt;
+			font-weight: bold;
+		}
+
+	</fx:Style>
+	
+	<fx:Script>
+		<![CDATA[			
+			import org.apache.flex.core.IPopUpHost;
+			import org.apache.flex.events.Event;
+			import org.apache.flex.utils.UIUtils;
+						
+            import org.apache.flex.utils.Proxy;
+            
+            public function runTest():void
+            {
+				var p:Proxy = new Proxy();
+				p.foo = "bar";
+				trace(p.foo);
+				var o:Object = p;
+				// in SWF, this should work, but in JS you should get undefined
+                trace(o.foo);
+				var s:String = p.foo + "bar";
+				trace(s); // barbar
+				p.foo += "bar";
+				trace(p.foo); // barbar
+            }
+		]]>
+	</fx:Script>
+	
+	<js:Container id="cont" width="600" height="700" x="50" y="50">
+		<js:beads>
+			<js:VerticalLayout />
+		</js:beads>
+		
+		<js:Label text="Proxy Test" className="title" />
+		<js:TextButton text="Test" click="runTest()" />
+	</js:Container>
+	
+</js:ViewBase>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d5ee78af/manualtests/ProxyTest/src/ProxyTest.mxml
----------------------------------------------------------------------
diff --git a/manualtests/ProxyTest/src/ProxyTest.mxml b/manualtests/ProxyTest/src/ProxyTest.mxml
new file mode 100644
index 0000000..27e97b5
--- /dev/null
+++ b/manualtests/ProxyTest/src/ProxyTest.mxml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!---
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+-->
+<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+				   xmlns:local="*"
+				   xmlns:models="models.*"
+                   xmlns:controllers="controllers.*"
+				   xmlns:js="library://ns.apache.org/flexjs/basic" 
+				   >
+	
+	<js:valuesImpl>
+		<js:SimpleCSSValuesImpl />
+	</js:valuesImpl>
+    <js:controller>
+        <controllers:MyController />
+    </js:controller>
+    <js:model>
+        <models:MyModel />
+    </js:model>
+	<js:initialView>
+		<local:MyInitialView />
+	</js:initialView>
+</js:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d5ee78af/manualtests/ProxyTest/src/README.txt
----------------------------------------------------------------------
diff --git a/manualtests/ProxyTest/src/README.txt b/manualtests/ProxyTest/src/README.txt
new file mode 100644
index 0000000..f38df7f
--- /dev/null
+++ b/manualtests/ProxyTest/src/README.txt
@@ -0,0 +1,45 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+DESCRIPTION
+
+The FormExample application demonstrates several FlexJS components and how they
+can be aligned in a column, much like you would see in a form. 
+
+This Flex application may be run as a Flash SWF or cross-compiled (using Falcon JX)
+into JavaScript and HTML and run without Flash.
+
+The components are placed into a Container with a VerticalColumnLayout bead. This bead
+examines each of the children in the Container and aligns them in two columns.
+
+COMPONENTS and BEADS
+
+- Container
+- DateField
+- Label
+- TextInput
+
+- NonVirtualVerticalLayout
+- NumericOnlyTextInputBead
+- VerticalColumnLayout
+
+NOTES
+
+The cross-compilation to JavaScript often results in non-fatal warnings. Some of these warnings
+should be addressed in future releases of the Falcon JX compiler.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d5ee78af/manualtests/ProxyTest/src/controllers/MyController.as
----------------------------------------------------------------------
diff --git a/manualtests/ProxyTest/src/controllers/MyController.as b/manualtests/ProxyTest/src/controllers/MyController.as
new file mode 100644
index 0000000..0d72c69
--- /dev/null
+++ b/manualtests/ProxyTest/src/controllers/MyController.as
@@ -0,0 +1,52 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package controllers
+{
+	import org.apache.flex.events.Event;
+	
+	import org.apache.flex.core.Application;
+	import org.apache.flex.core.IDocument;
+    
+    import models.MyModel;
+    	
+	public class MyController implements IDocument
+	{
+		public function MyController(app:Application = null)
+		{
+			if (app)
+			{
+				this.app = app as ProxyTest;
+				app.addEventListener("viewChanged", viewChangeHandler);
+			}
+		}
+		
+		private var app:ProxyTest;
+		
+		private function viewChangeHandler(event:Event):void
+		{
+		}
+		        
+		public function setDocument(document:Object, id:String = null):void
+		{
+			this.app = document as ProxyTest;
+			app.addEventListener("viewChanged", viewChangeHandler);
+		}
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d5ee78af/manualtests/ProxyTest/src/models/MyModel.as
----------------------------------------------------------------------
diff --git a/manualtests/ProxyTest/src/models/MyModel.as b/manualtests/ProxyTest/src/models/MyModel.as
new file mode 100644
index 0000000..5a16d02
--- /dev/null
+++ b/manualtests/ProxyTest/src/models/MyModel.as
@@ -0,0 +1,125 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package models
+{
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.EventDispatcher;
+	
+	public class MyModel extends EventDispatcher
+	{
+		public function MyModel()
+		{
+		}
+		
+		private var _requestedField:String = "Ask";
+		
+		[Bindable("requestedFieldChanged")]
+		public function get requestedField():String
+		{
+			return _requestedField;
+		}
+		
+		public function set requestedField(value:String):void
+		{
+			if (value != _requestedField)
+			{
+				_requestedField = value;
+				dispatchEvent(new Event("requestedFieldChanged"));
+				if (_responseData)
+					dispatchEvent(new Event("responseTextChanged"));
+			}
+		}
+		
+		[Bindable("responseTextChanged")]
+		public function get responseText():String
+		{
+			if (_responseData == null)
+				return "";
+			if (_responseData == "No Data")
+				return _responseData as String;
+			var s:String = _responseData[_requestedField];
+			if (s == null)
+			{
+				if (_requestedField == "Ask")
+					s = _responseData["Bid"];
+			}
+			return s;
+		}
+		
+		private var _responseData:Object;
+		
+		[Bindable("responseDataChanged")]
+		public function get responseData():Object
+		{
+			return _responseData;
+		}
+		
+		public function set responseData(value:Object):void
+		{
+			if (value != _responseData)
+			{
+				_responseData = value;
+				_allData = "";
+				dispatchEvent(new Event("responseDataChanged"));
+				dispatchEvent(new Event("responseTextChanged"));
+			}
+		}
+		
+		private var _allData:String = "";
+		
+		[Bindable("responseDataChanged")]
+		public function get allData():String
+		{
+			if (_allData == "" && _responseData != null)
+			{
+				for (var p:String in _responseData)
+				{
+					_allData += p + ": " + _responseData[p] + "\n";
+				}
+			}
+			return _allData;
+		}
+		
+		
+		private var _stockSymbol:String;
+		
+		[Bindable("stockSymbolChanged")]
+		public function get stockSymbol():String
+		{
+			return _stockSymbol;
+		}
+		
+		public function set stockSymbol(value:String):void
+		{
+			if (value != _stockSymbol)
+			{
+				_stockSymbol = value;
+				dispatchEvent(new Event("stockSymbolChanged"));
+			}
+		}
+
+        private var _strings:Array = ["AAPL", "ADBE", "GOOG", "MSFT", "YHOO"];
+        [Bindable("__NoChangeEvent__")]
+        public function get strings():Array
+        {
+            return _strings;
+        }
+
+	}
+}
\ No newline at end of file


[13/37] git commit: [flex-asjs] [refs/heads/spark] - Changed Storage package LocalStorage class to use same function names as web storage API for better cross-compatibility. Also changed storage data type to String from Object to maintain that compatibil

Posted by ah...@apache.org.
Changed Storage package LocalStorage class to use same function names as web storage API for better cross-compatibility. Also changed storage data type to String from Object to maintain that compatibility and provide a concrete data type.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/392faf58
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/392faf58
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/392faf58

Branch: refs/heads/spark
Commit: 392faf58189d864a5b2f7acb5e020e906211925b
Parents: 5479450
Author: Peter Ent <pe...@apache.org>
Authored: Thu Feb 25 14:32:55 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Feb 25 14:32:55 2016 -0500

----------------------------------------------------------------------
 .../org/apache/flex/storage/LocalStorage.as     | 106 +++++++++++--------
 1 file changed, 64 insertions(+), 42 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/392faf58/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
index a3a2b87..9edd82c 100644
--- a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
@@ -26,7 +26,7 @@ COMPILE::AS3 {
  *  The LocalStorage class allows apps to store small amounts of data
  *  locally, in the browser's permitted storage area. This data will persist
  *  between browser invocations. The data is stored in key=value pairs.
- *  
+ *
  *  @langversion 3.0
  *  @playerversion Flash 10.2
  *  @playerversion AIR 2.6
@@ -35,17 +35,17 @@ COMPILE::AS3 {
  */
 public class LocalStorage
 {
-	
+
 	/**
 	 * Constructor.
-	 *  
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 *  @flexjsignoreimport window
 	 */
-	public function LocalStorage() 
+	public function LocalStorage()
 	{
 		COMPILE::AS3 {
 			try {
@@ -55,13 +55,13 @@ public class LocalStorage
 			}
 		}
 	}
-	
+
 	COMPILE::AS3
 	private var sharedObject:SharedObject;
-	
+
 	/**
 	 * Returns true if the platform provides local storage.
-	 *  
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
@@ -71,11 +71,11 @@ public class LocalStorage
 	public function storageAvailable():Boolean
 	{
 		var result:Boolean = false;
-		
+
 		COMPILE::AS3 {
 			result = (sharedObject != null);
 		}
-		
+
 		COMPILE::JS {
 			try {
 				result = 'localStorage' in window && window['localStorage'] !== null;
@@ -83,115 +83,137 @@ public class LocalStorage
 				result = false;
 			}
 		}
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * Stores a value with a key. The value may be converted to a String, depending
 	 * on the platform.
-	 *  
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 *  @flexjsignoreimport window
 	 */
-	public function setValue(key:String, value:Object) : Boolean
+	public function setItem(key:String, value:String) : Boolean
 	{
 		if (!storageAvailable()) return false;
-				
+
 		COMPILE::AS3 {
 			sharedObject.data[key] = value;
 			sharedObject.flush();
 		}
-		
+
 		COMPILE::JS {
-			window.localStorage[key] = value;
+			window.localStorage.setItem(key, value);
 		}
-		
+
 		return true;
 	}
-	
+
 	/**
 	 * Returns the value associated with the key, or undefined if there is
 	 * no value stored. Note that a String version of the value may have been
 	 * stored, depending on the platform.
-	 *  
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 *  @flexjsignoreimport window
 	 */
-	public function getValue(key:String) : Object
+	public function getItem(key:String) : String
 	{
 		if (!storageAvailable()) return null;
-		
-		var result:Object = null;
-		
+
+		var result:String = null;
+
 		COMPILE::AS3 {
-			result = sharedObject.data[key];
+			result = sharedObject.data[key] as String;
 		}
-		
+
 		COMPILE::JS {
-			result = window.localStorage[key];
+			result = window.localStorage.getItem(key);
 		}
-		
+
 		return result;
 	}
-	
+
 	/**
 	 * Removed the value and, possibly, the key from local storage. On some
 	 * platforms, retriving the value after removing it will be an error, on
 	 * others it may return undefined or null.
-	 *  
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 *  @flexjsignoreimport window
 	 */
-	public function removeValue(key:String) : Boolean
+	public function removeItem(key:String) : Boolean
 	{
 		if (!storageAvailable()) return null;
-				
+
 		COMPILE::AS3 {
 			delete sharedObject.data[key];
 			sharedObject.flush();
 		}
-		
+
 		COMPILE::JS {
-			window.localStorage[key] = null;
+			window.localStorage.removeItem(key);
 		}
-		
+
 		return true;
 	}
-	
+
 	/**
 	 * Returns true if there is a value stored for the key.
-	 *  
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 *  @flexjsignoreimport window
 	 */
-	public function hasValue(key:String) : Boolean
+	public function hasItem(key:String) : Boolean
 	{
 		if (!storageAvailable()) return false;
-		
+
 		var result:Boolean = false;
-		
+
 		COMPILE::AS3 {
 			result = sharedObject.data.hasOwnProperty(key);
 		}
-		
+
 		COMPILE::JS {
 			result = (window.localStorage[key] !== null);
 		}
-		
+
 		return result;
 	}
+
+	/**
+	 * Clears all values from local storage.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function clear() : void
+	{
+		if (!storageAvailable()) return;
+
+		COMPILE::AS3 {
+			sharedObject.clear();
+		}
+
+		COMPILE::JS {
+			window.localStorage.clear();
+		}
+	}
+}
 }
-}
\ No newline at end of file


[21/37] git commit: [flex-asjs] [refs/heads/spark] - Merge branch 'develop' into spark

Posted by ah...@apache.org.
Merge branch 'develop' into spark

Conflicts:
	frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/958b112f
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/958b112f
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/958b112f

Branch: refs/heads/spark
Commit: 958b112f72e3e2e06c972967a9d473fbe9c2ad91
Parents: 7bfeed8 c313d70
Author: Alex Harui <ah...@apache.org>
Authored: Mon Feb 29 23:53:45 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Feb 29 23:53:45 2016 -0800

----------------------------------------------------------------------
 .../src/productsView/CatalogTitleButtons.mxml   |   8 +-
 .../productsView/ProductCatalogThumbnail.mxml   |   2 +-
 .../src/productsView/ProductListItem.mxml       |  10 +
 frameworks/build.xml                            |   6 +
 .../flex/org/apache/flex/events/CustomEvent.as  |   9 +-
 .../main/flex/org/apache/flex/events/Event.as   |  17 +-
 .../org/apache/flex/events/EventDispatcher.as   |  14 ++
 .../flex/org/apache/flex/events/MouseEvent.as   |   2 +-
 .../org/apache/flex/events/ValueChangeEvent.as  |   9 +-
 .../flex/org/apache/flex/events/ValueEvent.as   |  10 +-
 .../main/flex/org/apache/flex/utils/Proxy.as    |   3 +-
 frameworks/projects/Storage/build.xml           | 172 +++++++++++++++
 .../Storage/src/main/flex/StorageClasses.as     |  35 +++
 .../flex/org/apache/flex/storage/IWebStorage.as | 100 +++++++++
 .../org/apache/flex/storage/LocalStorage.as     | 157 +++++++++++++
 .../storage/providers/LocalStorageProvider.as   | 220 +++++++++++++++++++
 .../src/main/resources/basic-manifest.xml       |  24 ++
 .../src/main/resources/compile-asjs-config.xml  |  82 +++++++
 .../src/main/resources/compile-config.xml       |  82 +++++++
 .../Storage/src/main/resources/defaults.css     |  26 +++
 20 files changed, 948 insertions(+), 40 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/958b112f/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/958b112f/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
----------------------------------------------------------------------
diff --cc frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
index 31bd886,39b6945..7621e98
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Proxy.as
@@@ -103,9 -103,22 +103,8 @@@ public dynamic class Proxy extends Even
      public function Proxy()
      {
      }
--    
--    
 -	private var valueMap:Object = {};
++        
 +	protected var valueMap:Object = {};
      
      public function getProperty(propName:String):*
      {


[25/37] git commit: [flex-asjs] [refs/heads/spark] - Added permanent storage option to Storage project.

Posted by ah...@apache.org.
Added permanent storage option to Storage project.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/1bc555d9
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/1bc555d9
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/1bc555d9

Branch: refs/heads/spark
Commit: 1bc555d93d756abdf804e39e0521df726d4f0dac
Parents: 6271091
Author: Peter Ent <pe...@apache.org>
Authored: Wed Mar 9 11:12:28 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Wed Mar 9 11:12:28 2016 -0500

----------------------------------------------------------------------
 frameworks/projects/Storage/build.xml           |   3 +
 .../Storage/src/main/flex/StorageClasses.as     |   9 +
 .../apache/flex/storage/IPermanentStorage.as    |  63 +++++++
 .../org/apache/flex/storage/PermanentStorage.as |  97 +++++++++++
 .../apache/flex/storage/events/FileReadEvent.as |  70 ++++++++
 .../flex/storage/events/FileWriteEvent.as       |  60 +++++++
 .../org/apache/flex/storage/file/LocalFile.as   |  84 +++++++++
 .../storage/providers/AirStorageProvider.as     | 165 ++++++++++++++++++
 .../providers/IPermanentStorageProvider.as      |  74 ++++++++
 .../storage/providers/WebStorageProvider.as     | 169 +++++++++++++++++++
 .../src/main/resources/basic-manifest.xml       |   1 +
 .../Storage/src/main/resources/defaults.css     |  16 ++
 12 files changed, 811 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/build.xml b/frameworks/projects/Storage/build.xml
index 0d5fd9a..6fc0ed5 100644
--- a/frameworks/projects/Storage/build.xml
+++ b/frameworks/projects/Storage/build.xml
@@ -30,6 +30,7 @@
     <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
     <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/out/bin/js.swc" />
     <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/out/bin/GCL.swc" />
+    <property name="CORDOVA.SWC" value="${FALCONJX_HOME}/../externs/cordova/out/bin/cordova.swc" />
     <property name="target.name" value="Storage-${release.version}.swc" />
     <property name="target.name.no.version" value="Storage.swc" />
 
@@ -118,6 +119,7 @@
             <arg value="-external-library-path+=${JS.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
+            <arg value="--external-library-path+=${CORDOVA.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </java>
@@ -155,6 +157,7 @@
             <arg value="-external-library-path+=${JS.SWC}" />
             <!-- this is not on external-library path otherwise goog.requires are not generated -->
             <arg value="-library-path+=${GCL.SWC}" />
+            <arg value="--external-library-path+=${CORDOVA.SWC}" />
             <arg value="-define=COMPILE::AS3,false" />
             <arg value="-define=COMPILE::JS,true" />
         </compc>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/flex/StorageClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/StorageClasses.as b/frameworks/projects/Storage/src/main/flex/StorageClasses.as
index db34477..92d9bd4 100644
--- a/frameworks/projects/Storage/src/main/flex/StorageClasses.as
+++ b/frameworks/projects/Storage/src/main/flex/StorageClasses.as
@@ -29,6 +29,15 @@ internal class StorageClasses
 {
     import org.apache.flex.storage.LocalStorage; LocalStorage;
     import org.apache.flex.storage.providers.LocalStorageProvider; LocalStorageProvider;
+
+	import org.apache.flex.storage.PermanentStorage; PermanentStorage;
+	import org.apache.flex.storage.events.FileReadEvent; FileReadEvent;
+	import org.apache.flex.storage.events.FileWriteEvent; FileWriteEvent;
+
+	import org.apache.flex.storage.providers.AirStorageProvider; AirStorageProvider;
+
+	import org.apache.flex.storage.providers.WebStorageProvider; WebStorageProvider;
+
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/IPermanentStorage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/IPermanentStorage.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/IPermanentStorage.as
new file mode 100644
index 0000000..d47866b
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/IPermanentStorage.as
@@ -0,0 +1,63 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage
+{
+	import org.apache.flex.events.IEventDispatcher;
+	
+	/**
+	 * The IPermanentStorage interface provides the template for creating
+	 * an interface to a device's native file system.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public interface IPermanentStorage extends IEventDispatcher
+	{	
+		/**
+		 * A convenience function to read an entire file as a single 
+		 * string of text. The file is storaged in the application's
+		 * data storage directory. 
+		 * 
+		 *  @param fileName The name of the file.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function readTextFromDataFile( fileName:String ) : void;
+		
+		/**
+		 * A convenience function write a string into a file that resides in the
+		 * application's data storage directory. If the file already exists it is 
+		 * replaced with the string.
+		 * 
+		 *  @param fileName The name of file.
+		 *  @param text The string to be stored.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function writeTextToDataFile( fileName:String, text:String ) : void;
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/PermanentStorage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/PermanentStorage.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/PermanentStorage.as
new file mode 100644
index 0000000..d1e8887
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/PermanentStorage.as
@@ -0,0 +1,97 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage
+{
+	import org.apache.flex.events.EventDispatcher;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.core.ValuesManager;
+
+	import org.apache.flex.storage.providers.AirStorageProvider;
+	import org.apache.flex.storage.providers.IPermanentStorageProvider;
+
+	/**
+	 * The PermanentStorage class provides the interface to the native
+	 * file system. This classes uses the FlexJS ValuesManager to provide
+	 * the actual implementation using the iStorage style.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+	 */
+	public class PermanentStorage extends EventDispatcher implements IPermanentStorage
+	{
+		/**
+		 * Constructor.
+	     *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function PermanentStorage()
+		{
+			super();
+			_storageProvider = ValuesManager.valuesImpl.newInstance(this, "iStorageProvider") as IPermanentStorageProvider;
+			_storageProvider.target = this;
+		}
+
+		/**
+		 * @private
+		 */
+		private var _storageProvider:IPermanentStorageProvider;
+
+		/**
+		 * A convenience function to read an entire file as a single 
+		 * string of text. The file is storaged in the application's
+		 * data storage directory. Dispatches a FileRead event once
+		 * the data is available.
+		 * 
+		 *  @param fileName The name of the file.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function readTextFromDataFile( fileName:String ) : void
+		{
+			_storageProvider.readTextFromDataFile( fileName );
+		}
+		
+		/**
+		 * A convenience function write a string into a file that resides in the
+		 * application's data storage directory. If the file already exists it is 
+		 * replaced with the string. Dispatches a FileWrite event once the file
+		 * has been written.
+		 * 
+		 *  @param fileName The name of file.
+		 *  @param text The string to be stored.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function writeTextToDataFile( fileName:String, text:String ) : void
+		{
+			_storageProvider.writeTextToDataFile( fileName, text );
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/events/FileReadEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/events/FileReadEvent.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/events/FileReadEvent.as
new file mode 100644
index 0000000..528c36b
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/events/FileReadEvent.as
@@ -0,0 +1,70 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage.events
+{
+	import org.apache.flex.events.Event;
+	
+	/**
+	 * The FileReadEvent class is used to signal varies events in the life and
+	 * use of permanent files. 
+	 * 
+	 * COMPLETE - The file has been completely read.
+	 * ERROR    - An error occurred reading or opening the file.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class FileReadEvent extends Event
+	{
+		/**
+		 * Constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function FileReadEvent(type:String)
+		{
+			super(type);
+		}
+		
+		/**
+		 * The data read from the file.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public var data:String;
+		
+		/**
+		 * If not null, the error that occurred opening or reading the file.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public var errorMessage:String;
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/events/FileWriteEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/events/FileWriteEvent.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/events/FileWriteEvent.as
new file mode 100644
index 0000000..fea4542
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/events/FileWriteEvent.as
@@ -0,0 +1,60 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage.events
+{
+	import org.apache.flex.events.Event;
+	
+	/**
+	 * The FileWriteEvent class is used to signal varies events in the life and
+	 * use of permanent files. 
+	 * 
+	 * COMPLETE - The file has been successfully written.
+	 * ERROR    - An error occurred writing or opening the file.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class FileWriteEvent extends Event
+	{
+		/**
+		 * Constructor.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function FileWriteEvent(type:String)
+		{
+			super(type);
+		}
+		
+		/**
+		 * If not null, the error that occurred opening or writing the file.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public var errorMessage:String;
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/file/LocalFile.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/file/LocalFile.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/file/LocalFile.as
new file mode 100644
index 0000000..47b8333
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/file/LocalFile.as
@@ -0,0 +1,84 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage.file
+{
+COMPILE::AS3 {
+	import flash.filesystem.File;
+}
+COMPILE::JS {
+}
+
+/**
+ * The File class provides access to a specific file on the device.
+ */
+COMPILE::AS3
+public class LocalFile
+{
+	public static const documentsDirectory:String = "documentsDirectory";
+	public static const dataDirectory:String = "dataDirectory";
+
+	public function LocalFile(handle:Object=null)
+	{
+		_handle = handle as flash.filesystem.File;
+	}
+
+	private var _handle::flash.filesystem.File;
+
+	public function get handle():flash.filesystem.File {
+		return _handle;
+	}
+
+	static public function resolvePath(directory:String, filename:String):LocalFile {
+		var root:File;
+		if (directory == LocalFile.documentsDirectory) {
+			root = File.documentsDirectory;
+		}
+		else if (directory == LocalFile.dataDirectory) {
+			root = File.applicationStorageDirectory;
+		}
+		var result:LocalFile = new LocalFile(root.resolvePath(filename));
+		return result;
+	}
+}
+
+COMPILE::JS
+public class LocalFile
+{
+	public static const documentsDirectory:String = cordova.file.documentsDirectory;
+	public static const dataDirectory:String = cordova.file.dataDirectory;
+
+	private var _handle:cordova.File;
+
+	public function get handle():cordova.File {
+		return _handle;
+	}
+
+	static public function resolvePath(directory:String, filename:String):LocalFile {
+		var pathToFile = directory + filename;
+		var result:File = new File();
+		window.resolveLocalFileSystemURL(pathToFile, function(fileEntry) {
+			fileEntry.file(function (file) {
+				this.result._handle = file;
+			})
+		});
+		return result;
+	}
+}
+
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/AirStorageProvider.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/AirStorageProvider.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/AirStorageProvider.as
new file mode 100644
index 0000000..185b6a3
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/AirStorageProvider.as
@@ -0,0 +1,165 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage.providers
+{
+	import org.apache.flex.events.EventDispatcher;
+	import org.apache.flex.events.IEventDispatcher;
+	
+	COMPILE::AS3 {
+		import flash.filesystem.File;
+		import flash.filesystem.FileMode;
+		import flash.filesystem.FileStream;
+		import flash.utils.ByteArray;
+		import flash.errors.IOError;
+	}
+
+	import org.apache.flex.storage.events.FileReadEvent;
+	import org.apache.flex.storage.events.FileWriteEvent;
+
+	/**
+	 * The AirStorageProvider class implements the IPermanentStorageProvider
+	 * interface for saving files to a mobile device using the Adobe(tm) AIR platform. 
+	 * 
+	 * @flexjsignorecoercion FileEntry
+	 * @flexjsignorecoercion FileWriter
+	 * @flexjsignorecoercion window
+	 * @flexjsignorecoercion Blob
+	 */
+	public class AirStorageProvider extends EventDispatcher implements IPermanentStorageProvider
+	{
+		/**
+		 * Constructor.
+		 * 
+		 * @param target The target dispatcher for events as files are read and written.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function AirStorageProvider(target:IEventDispatcher=null)
+		{
+			super();
+			_target = target;
+		}
+
+		/**
+		 * The target dispatcher for events as files are read and written.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get target():IEventDispatcher
+		{
+			return _target;
+		}
+		public function set target(value:IEventDispatcher):void
+		{
+			_target = value;
+		}
+
+		/**
+		 * @private
+		 */
+		private var _target:IEventDispatcher;
+		
+		/**
+		 * A convenience function to read an entire file as a single 
+		 * string of text. The file is storaged in the application's
+		 * data storage directory. Dispatches a FileRead event once
+		 * the data is available.
+		 * 
+		 *  @param fileName The name of the file.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function readTextFromDataFile( fileName:String ) : void
+		{
+			COMPILE::AS3 {
+				var file:File = File.applicationStorageDirectory.resolvePath(fileName);
+				
+				if (!file.exists) {
+					var errEvent:FileReadEvent = new FileReadEvent("ERROR");
+					errEvent.errorMessage = "File does not exist.";
+					_target.dispatchEvent(errEvent);
+					return;
+				}
+				
+				var stream:FileStream = new FileStream();
+				
+				stream.open(file, FileMode.READ);
+				var bytes:ByteArray = new ByteArray();
+				stream.readBytes(bytes);
+				stream.close();
+				
+				var text:String = new String(bytes);
+				
+				var newEvent:FileReadEvent = new FileReadEvent("COMPLETE");
+				newEvent.data = text;
+				_target.dispatchEvent(newEvent);
+			}
+		}
+		
+		/**
+		 * A convenience function write a string into a file that resides in the
+		 * application's data storage directory. If the file already exists it is 
+		 * replaced with the string. Dispatches a FileWrite event once the file
+		 * has been written.
+		 * 
+		 *  @param fileName The name of file.
+		 *  @param text The string to be stored.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function writeTextToDataFile( fileName:String, text:String ) : void
+		{
+			COMPILE::AS3 {
+				var file:File = File.applicationStorageDirectory.resolvePath(fileName);
+				var stream:FileStream = new FileStream();
+				
+				try {
+					stream.open(file, FileMode.WRITE);
+					stream.writeUTFBytes(text);
+					stream.close();
+				} catch(ioerror:IOError) {
+					var ioEvent:FileWriteEvent = new FileWriteEvent("ERROR");
+					ioEvent.errorMessage = "I/O Error";
+					_target.dispatchEvent(ioEvent);
+					return;
+				} catch(secerror:SecurityError) {
+					var secEvent:FileWriteEvent = new FileWriteEvent("ERROR");
+					secEvent.errorMessage = "Security Error";
+					_target.dispatchEvent(secEvent);
+					return;
+				}
+				
+				var newEvent:FileWriteEvent = new FileWriteEvent("COMPLETE");
+				_target.dispatchEvent(newEvent);
+			}
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/IPermanentStorageProvider.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/IPermanentStorageProvider.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/IPermanentStorageProvider.as
new file mode 100644
index 0000000..023b1a7
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/IPermanentStorageProvider.as
@@ -0,0 +1,74 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage.providers
+{
+	import org.apache.flex.events.IEventDispatcher;
+
+	/**
+	 * This interface provides the template for creating classes the work
+	 * with the permanent storages API of the native system.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+	 */
+	public interface IPermanentStorageProvider
+	{
+		/**
+		 * The target dispatcher for events.
+	     *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function get target():IEventDispatcher;
+		function set target(value:IEventDispatcher):void;
+
+		/**
+		 * A convenience function to read an entire file as a single 
+		 * string of text. The file is storaged in the application's
+		 * data storage directory.
+		 * 
+		 *  @param fileName The name of the file.
+	     *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function readTextFromDataFile( fileName:String ) : void;
+		
+		/**
+		 * A convenience function write a string into a file that resides in the
+		 * application's data storage directory. If the file already exists it is 
+		 * replaced with the string.
+		 * 
+		 *  @param fileName The name of file.
+		 *  @param text The string to be stored.
+	     *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function writeTextToDataFile( fileName:String, text:String ) : void;
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/WebStorageProvider.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/WebStorageProvider.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/WebStorageProvider.as
new file mode 100644
index 0000000..557b591
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/providers/WebStorageProvider.as
@@ -0,0 +1,169 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage.providers
+{
+	import org.apache.flex.events.EventDispatcher;
+	import org.apache.flex.events.IEventDispatcher;
+
+	import org.apache.flex.storage.events.FileReadEvent;
+    import org.apache.flex.storage.events.FileWriteEvent;
+
+	/**
+	 * The WebStorageProvider class implements the IPermanentStorageProvider
+	 * interface for saving files to a mobile device. 
+	 * 
+	 * @flexjsignorecoercion FileEntry
+	 * @flexjsignorecoercion FileWriter
+	 * @flexjsignorecoercion window
+     * @flexjsignorecoercion Blob
+	 */
+	public class WebStorageProvider extends EventDispatcher implements IPermanentStorageProvider
+	{
+		/**
+		 * Constructor.
+		 * 
+		 * @param target The target dispatcher for events as files are read and written.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function WebStorageProvider(target:IEventDispatcher=null)
+		{
+			super();
+			_target = target;
+		}
+
+		/**
+		 * @private
+		 */
+		private var _target:IEventDispatcher;
+
+		/**
+		 * The target dispatcher for events as files are read and written.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get target():IEventDispatcher
+		{
+			return _target;
+		}
+		public function set target(value:IEventDispatcher):void
+		{
+			_target = value;
+		}
+		
+		/**
+		 * A convenience function to read an entire file as a single 
+		 * string of text. The file is storaged in the application's
+		 * data storage directory. Dispatches a FileRead event once
+		 * the data is available.
+		 * 
+		 *  @param fileName The name of the file.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function readTextFromDataFile( fileName:String ) : void
+		{
+			COMPILE::JS {
+				var fullPath:String = String(cordova["file"]["dataDirectory"]) + fileName;
+				
+				window.resolveLocalFileSystemURL(fullPath, function (fileEntry):void {
+					fileEntry.file(function (file):void {
+						var reader:FileReader = new FileReader();
+						reader.onloadend = function (e):void {
+							var newEvent:FileReadEvent = new FileReadEvent("COMPLETE");
+							newEvent.data = this.result;
+							_target.dispatchEvent(newEvent);
+						};
+						reader.readAsText(file);
+					}, function (e):void {
+						var errEvent:FileReadEvent = new FileReadEvent("ERROR");
+						errEvent.errorMessage = "Cannot open file for reading";
+						_target.dispatchEvent(errEvent);
+					});
+				}, function (e):void {
+					var errEvent:FileReadEvent = new FileReadEvent("ERROR");
+					errEvent.errorMessage = "File does not exist";
+					_target.dispatchEvent(errEvent);
+				});
+			}
+		}
+		
+		/**
+		 * A convenience function write a string into a file that resides in the
+		 * application's data storage directory. If the file already exists it is 
+		 * replaced with the string. Dispatches a FileWrite event once the file
+		 * has been written.
+		 * 
+		 *  @param fileName The name of file.
+		 *  @param text The string to be stored.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function writeTextToDataFile( fileName:String, text:String ) : void
+		{
+			COMPILE::JS {
+				var fullPath:String = String(cordova["file"]["dataDirectory"]) + fileName;
+		
+				window.resolveLocalFileSystemURL(cordova.file.dataDirectory, function (directoryEntry):void {
+					directoryEntry.getFile(fileName, { 'create': true }, function (fileEntry):void {
+						fileEntry.createWriter(function (fileWriter):void {
+							fileWriter.onwriteend = function (e):void {
+								var newEvent:FileWriteEvent = new FileWriteEvent("COMPLETE");
+								_target.dispatchEvent(newEvent);
+							};
+							
+							fileWriter.onerror = function (e):void {
+								var newEvent:FileWriteEvent = new FileWriteEvent("ERROR");
+								newEvent.errorMessage = "Failed to write the file.";
+								_target.dispatchEvent(newEvent);
+							};
+							
+							var blob:Blob = new Blob([text], { type: 'text/plain' });
+							fileWriter.write(blob);
+						}, function(e):void {
+							var errEvent:FileWriteEvent = new FileWriteEvent("ERROR");
+							errEvent.errorMessage = "Cannot open file for writing.";
+							_target.dispatchEvent(errEvent);
+						});
+					}, function(e):void {
+						var errEvent:FileWriteEvent = new FileWriteEvent("ERROR");
+						errEvent.errorMessage = "Cannot create file.";
+						_target.dispatchEvent(errEvent);
+					});
+				}, function(e):void {
+					var errEvent:FileWriteEvent = new FileWriteEvent("ERROR");
+					errEvent.errorMessage = "Cannot create file.";
+					_target.dispatchEvent(errEvent);
+				});
+			}
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/resources/basic-manifest.xml b/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
index b502203..b82c859 100644
--- a/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
@@ -21,4 +21,5 @@
 
 <componentPackage>
 	<component id="LocalStorage" class="org.apache.flex.storage.LocalStorage"/>
+	<component id="PermanentStorage" class="org.apache.flex.storage.PermanentStorage"/>
 </componentPackage>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/1bc555d9/frameworks/projects/Storage/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/resources/defaults.css b/frameworks/projects/Storage/src/main/resources/defaults.css
index 9d82e6f..dd88207 100644
--- a/frameworks/projects/Storage/src/main/resources/defaults.css
+++ b/frameworks/projects/Storage/src/main/resources/defaults.css
@@ -23,4 +23,20 @@
 LocalStorage
 {
     IStorageProvider: ClassReference("org.apache.flex.storage.providers.LocalStorageProvider");
+}
+
+PermanentStorage
+{
+	IStorageProvider: ClassReference("org.apache.flex.storage.providers.WebStorageProvider");
+}
+
+@media -flex-flash
+{
+/**
+ * StorageProvider for AIR platform
+ */
+PermanentStorage
+{
+	IStorageProvider: ClassReference("org.apache.flex.storage.providers.AirStorageProvider");
+}	
 }
\ No newline at end of file


[02/37] git commit: [flex-asjs] [refs/heads/spark] - Fixed JS version of WebBrowser to intercept correct location change events and dispatch proper FlexJS event.

Posted by ah...@apache.org.
Fixed JS version of WebBrowser to intercept correct location change events and dispatch proper FlexJS event.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/36c14ed8
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/36c14ed8
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/36c14ed8

Branch: refs/heads/spark
Commit: 36c14ed8ee6ca7125dd1f86daa460d53ec205a50
Parents: 18deeae
Author: Peter Ent <pe...@apache.org>
Authored: Wed Feb 10 11:29:43 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Wed Feb 10 11:29:43 2016 -0500

----------------------------------------------------------------------
 .../src/main/flex/org/apache/flex/html/beads/WebBrowserView.as     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/36c14ed8/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
index cb14971..46c9484 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/WebBrowserView.as
@@ -168,7 +168,7 @@ package org.apache.flex.html.beads
 			model.addEventListener("urlChanged", loadPage);
 
 			var iframe:HTMLIFrameElement = (host as UIBase).element as HTMLIFrameElement;
-			iframe.addEventListener("pageshow", handlePageShow, false);
+			iframe.addEventListener("load", handlePageShow, false);
 		}
 
 		/**


Re: [37/37] git commit: [flex-asjs] [refs/heads/spark] - under 100 errors

Posted by Harbs <ha...@gmail.com>.
Very impressive!

On Mar 25, 2016, at 1:11 AM, OmPrakash Muppirala <bi...@gmail.com> wrote:

> On Thu, Mar 24, 2016 at 12:59 PM, <ah...@apache.org> wrote:
> 
>> under 100 errors
>> 
> 
> woohoo!
> 
> 
>> 
>> 
>> Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
>> Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/a23bd593
>> Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/a23bd593
>> Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/a23bd593
>> 
>> Branch: refs/heads/spark
>> Commit: a23bd593f77438cf52898e8b72c988563f2ca9d8
>> Parents: 93ca6b8
>> Author: Alex Harui <ah...@apache.org>
>> Authored: Thu Mar 24 12:59:08 2016 -0700
>> Committer: Alex Harui <ah...@apache.org>
>> Committed: Thu Mar 24 12:59:08 2016 -0700
>> 
>> ----------------------------------------------------------------------
>> .../main/flex/org/apache/flex/core/IChild.as    |  22 +-
>> .../src/main/flex/flex/display/DisplayObject.as |   7 +-
>> .../MX/src/main/flex/flex/display/Graphics.as   |   2 +-
>> .../MX/src/main/flex/flex/display/MovieClip.as  | 190 +++++++++
>> .../MX/src/main/flex/flex/display/Sprite.as     |  28 ++
>> .../main/flex/flex/display/TopOfDisplayList.as  |  21 +-
>> .../MX/src/main/flex/flex/system/I18NManager.as |   7 +
>> .../MX/src/main/flex/flex/text/TextField.as     | 394 ++-----------------
>> .../src/main/flex/flex/utils/IExternalizable.as |  26 ++
>> .../MX/src/main/flex/mx/binding/Watcher.as      |   3 +
>> .../MX/src/main/flex/mx/controls/ToolTip.as     |  42 +-
>> .../core/IDeferredInstantiationUIComponent.as   |   4 +
>> .../mx/core/IDisplayObjectContainerInterface.as |  47 ++-
>> .../flex/mx/core/IDisplayObjectInterface.as     |  30 +-
>> .../src/main/flex/mx/core/IFlexDisplayObject.as |   1 -
>> .../MX/src/main/flex/mx/core/IVisualElement.as  |   2 +
>> .../MX/src/main/flex/mx/core/UIComponent.as     | 238 +++++++++--
>> .../MX/src/main/flex/mx/core/UITextField.as     |  29 ++
>> .../MX/src/main/flex/mx/core/UITextFormat.as    |  15 +-
>> .../src/main/flex/mx/effects/EffectManager.as   |  42 +-
>> .../src/main/flex/mx/managers/SystemManager.as  |  47 +--
>> .../flex/mx/managers/SystemManagerGlobals.as    |   9 +
>> .../main/flex/mx/managers/ToolTipManagerImpl.as |   5 +-
>> .../MX/src/main/flex/mx/utils/ObjectProxy.as    |   1 +
>> .../MX/src/main/flex/mx/utils/Platform.as       |   2 +-
>> .../src/main/resources/compile-asjs-config.xml  |   4 +-
>> 26 files changed, 720 insertions(+), 498 deletions(-)
>> ----------------------------------------------------------------------
>> 
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
>> b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
>> index 6052094..f273f2e 100755
>> --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
>> +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
>> @@ -42,18 +42,18 @@ package org.apache.flex.core
>>          *  @playerversion AIR 2.6
>>          *  @productversion FlexJS 0.0
>>          */
>> -        COMPILE::AS3
>> +               COMPILE::AS3
>>         function get parent():DisplayObjectContainer;
>> 
>> -        /**
>> -         *  The parent.
>> -         *
>> -         *  @langversion 3.0
>> -         *  @playerversion Flash 10.2
>> -         *  @playerversion AIR 2.6
>> -         *  @productversion FlexJS 0.0
>> -         */
>> -        COMPILE::JS
>> -        function get parent():IUIBase;
>> +               /**
>> +                *  The parent.
>> +                *
>> +                *  @langversion 3.0
>> +                *  @playerversion Flash 10.2
>> +                *  @playerversion AIR 2.6
>> +                *  @productversion FlexJS 0.0
>> +                */
>> +               COMPILE::JS
>> +               function get parent():IUIBase;
>>        }
>> }
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
>> b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
>> index 2568582..bf0598b 100644
>> --- a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
>> +++ b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
>> @@ -18,6 +18,11 @@
>> 
>> ////////////////////////////////////////////////////////////////////////////////
>> package flex.display
>> {
>> +COMPILE::AS3
>> +{
>> +       import flash.display.DisplayObject;
>> +       import flash.display.DisplayObjectContainer;
>> +}
>> import flex.display.TopOfDisplayList;
>> 
>> import org.apache.flex.core.IUIBase;
>> @@ -25,7 +30,7 @@ import org.apache.flex.events.IEventDispatcher;
>> import org.apache.flex.geom.Point;
>> import org.apache.flex.geom.Rectangle;
>> 
>> -public interface DisplayObject extends IEventDispatcher
>> +public interface DisplayObject extends IEventDispatcher, IUIBase
>> {
>>        include "../../mx/core/IDisplayObjectInterface.as"
>> 
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
>> ----------------------------------------------------------------------
>> diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
>> b/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
>> index fe6f0ec..1a83c3c 100644
>> --- a/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
>> +++ b/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
>> @@ -69,7 +69,7 @@ package flex.display
>>                public function curveTo(mx:Number, my:Number, x:Number,
>> y:Number):void
>>                {
>>                        var path:String = "M " + lastX.toString() + " " +
>> lastY.toString();
>> -                       path += "Q " + mx.toString() + " " + my.toString()
>> + " " +
>> +                       path += "Q " + mx.toString() + " " + my.toString()
>> + " "
>>                                                + x.toString() + " " +
>> y.toString();
>>                        host.drawPath(path);
>>                        lastX = x;
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
>> b/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
>> index 6f1fca9..8add311 100644
>> --- a/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
>> +++ b/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
>> @@ -19,6 +19,195 @@
>> 
>> package flex.display
>> {
>> +       import org.apache.flex.core.IBead;
>> +       import org.apache.flex.core.IBeadModel;
>> +       import org.apache.flex.core.IBeadView;
>> +       import org.apache.flex.core.IFlexJSElement;
>> +       import org.apache.flex.core.ValuesManager;
>> +       import org.apache.flex.events.Event;
>> +       import org.apache.flex.events.IEventDispatcher;
>> +
>> +       COMPILE::AS3
>> +       {
>> +               import flash.display.MovieClip;
>> +       }
>> +       COMPILE::JS
>> +       {
>> +               import flex.display.DisplayObjectContainer;
>> +       }
>> +
>> +       COMPILE::AS3
>> +       public class MovieClip extends flash.display.MovieClip
>> +       {
>> +               COMPILE::AS3
>> +               private var _model:IBeadModel;
>> +
>> +               /**
>> +                *  An IBeadModel that serves as the data model for the
>> component.
>> +                *
>> +                *  @langversion 3.0
>> +                *  @playerversion Flash 10.2
>> +                *  @playerversion AIR 2.6
>> +                *  @productversion FlexJS 0.0
>> +                */
>> +               COMPILE::AS3
>> +               public function get model():Object
>> +               {
>> +                       if (_model == null)
>> +                       {
>> +                               // addbead will set _model
>> +                               addBead(new
>> (ValuesManager.valuesImpl.getValue(this, "iBeadModel")) as IBead);
>> +                       }
>> +                       return _model;
>> +               }
>> +
>> +               /**
>> +                *  @private
>> +                */
>> +               COMPILE::AS3
>> +               public function set model(value:Object):void
>> +               {
>> +                       if (_model != value)
>> +                       {
>> +                               addBead(value as IBead);
>> +                               dispatchEvent(new Event("modelChanged"));
>> +                       }
>> +               }
>> +
>> +               private var _view:IBeadView;
>> +
>> +               /**
>> +                *  An IBeadView that serves as the view for the component.
>> +                *
>> +                *  @langversion 3.0
>> +                *  @playerversion Flash 10.2
>> +                *  @playerversion AIR 2.6
>> +                *  @productversion FlexJS 0.0
>> +                *  @flexjsignorecoercion Class
>> +                */
>> +               public function get view():IBeadView
>> +               {
>> +                       if (_view == null)
>> +                       {
>> +                               var c:Class =
>> ValuesManager.valuesImpl.getValue(this, "iBeadView") as Class;
>> +                               if (c)
>> +                               {
>> +                                       if (c)
>> +                                       {
>> +                                               _view = (new c()) as
>> IBeadView;
>> +                                               addBead(_view);
>> +                                       }
>> +                               }
>> +                       }
>> +                       return _view;
>> +               }
>> +
>> +               /**
>> +                *  @private
>> +                */
>> +               public function set view(value:IBeadView):void
>> +               {
>> +                       if (_view != value)
>> +                       {
>> +                               addBead(value as IBead);
>> +                               dispatchEvent(new Event("viewChanged"));
>> +                       }
>> +               }
>> +
>> +               /**
>> +                *  @copy org.apache.flex.core.IUIBase#element
>> +                *
>> +                *  @langversion 3.0
>> +                *  @playerversion Flash 10.2
>> +                *  @playerversion AIR 2.6
>> +                *  @productversion FlexJS 0.0
>> +                */
>> +               public function get element():IFlexJSElement
>> +               {
>> +                       return this;
>> +               }
>> +
>> +               /**
>> +                *  @copy org.apache.flex.core.Application#beads
>> +                *
>> +                *  @langversion 3.0
>> +                *  @playerversion Flash 10.2
>> +                *  @playerversion AIR 2.6
>> +                *  @productversion FlexJS 0.0
>> +                */
>> +               public var beads:Array;
>> +
>> +               private var _beads:Vector.<IBead>;
>> +
>> +               /**
>> +                *  @copy org.apache.flex.core.IStrand#addBead()
>> +                *
>> +                *  @langversion 3.0
>> +                *  @playerversion Flash 10.2
>> +                *  @playerversion AIR 2.6
>> +                *  @productversion FlexJS 0.0
>> +                */
>> +               override public function addBead(bead:IBead):void
>> +               {
>> +                       if (!_beads)
>> +                               _beads = new Vector.<IBead>;
>> +                       _beads.push(bead);
>> +                       if (bead is IBeadModel)
>> +                               _model = bead as IBeadModel;
>> +                       else if (bead is IBeadView)
>> +                               _view = bead as IBeadView;
>> +                       bead.strand = this;
>> +
>> +                       if (bead is IBeadView) {
>> +                               IEventDispatcher(this).dispatchEvent(new
>> Event("viewChanged"));
>> +                       }
>> +               }
>> +
>> +               /**
>> +                *  @copy org.apache.flex.core.IStrand#getBeadByType()
>> +                *
>> +                *  @langversion 3.0
>> +                *  @playerversion Flash 10.2
>> +                *  @playerversion AIR 2.6
>> +                *  @productversion FlexJS 0.0
>> +                */
>> +               public function getBeadByType(classOrInterface:Class):IBead
>> +               {
>> +                       for each (var bead:IBead in _beads)
>> +                       {
>> +                               if (bead is classOrInterface)
>> +                                       return bead;
>> +                       }
>> +                       return null;
>> +               }
>> +
>> +               /**
>> +                *  @copy org.apache.flex.core.IStrand#removeBead()
>> +                *
>> +                *  @langversion 3.0
>> +                *  @playerversion Flash 10.2
>> +                *  @playerversion AIR 2.6
>> +                *  @productversion FlexJS 0.0
>> +                */
>> +               public function removeBead(value:IBead):IBead
>> +               {
>> +                       var n:int = _beads.length;
>> +                       for (var i:int = 0; i < n; i++)
>> +                       {
>> +                               var bead:IBead = _beads[i];
>> +                               if (bead == value)
>> +                               {
>> +                                       _beads.splice(i, 1);
>> +                                       return bead;
>> +                               }
>> +                       }
>> +                       return null;
>> +               }
>> +
>> +
>> +       }
>> +
>> +       COMPILE::JS
>>        public class MovieClip extends Sprite
>>        {
>>                public function get totalFrames():int
>> @@ -29,5 +218,6 @@ package flex.display
>>                {
>>                        return 1;
>>                }
>> +
>>        }
>> }
>> \ No newline at end of file
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
>> ----------------------------------------------------------------------
>> diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
>> b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
>> index 99dd7c4..bd29b87 100644
>> --- a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
>> +++ b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
>> @@ -20,6 +20,9 @@
>> package flex.display
>> {
>>        import org.apache.flex.core.graphics.GraphicsContainer;
>> +       import org.apache.flex.geom.Point;
>> +       import org.apache.flex.utils.PointUtils;
>> +       import mx.managers.SystemManagerGlobals;
>> 
>>        public class Sprite extends GraphicsContainer implements
>> DisplayObjectContainer
>>        {
>> @@ -147,5 +150,30 @@ package flex.display
>>                        return _graphics
>>                }
>> 
>> +               COMPILE::JS
>> +               public function get mouseX():Number
>> +               {
>> +                       var pt:Point = new
>> Point(SystemManagerGlobals.lastMouseEvent.screenX,
>> +
>> SystemManagerGlobals.lastMouseEvent.screenY);
>> +                       pt = PointUtils.globalToLocal(pt, this);
>> +                       return pt.x;
>> +               }
>> +
>> +               COMPILE::JS
>> +               public function get mouseY():Number
>> +               {
>> +                       var pt:Point = new
>> Point(SystemManagerGlobals.lastMouseEvent.screenX,
>> +
>> SystemManagerGlobals.lastMouseEvent.screenY);
>> +                       pt = PointUtils.globalToLocal(pt, this);
>> +                       return pt.x;
>> +               }
>> +
>> +               COMPILE::JS
>> +               override public function get
>> parent():DisplayObjectContainer
>> +               {
>> +                       return super.parent as DisplayObjectContainer;
>> +               }
>> +
>>        }
>> +
>> }
>> \ No newline at end of file
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
>> b/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
>> index 94dbf47..e5ef3e4 100644
>> --- a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
>> +++ b/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
>> @@ -26,6 +26,8 @@ COMPILE::AS3
>> COMPILE::JS
>> {
>>        import org.apache.flex.core.UIBase;
>> +       import org.apache.flex.core.HTMLElementWrapper;
>> +       import org.apache.flex.core.WrappedHTMLElement;
>> }
>> 
>> COMPILE::AS3
>> @@ -52,12 +54,29 @@ public class TopOfDisplayList extends Stage
>> }
>> 
>> COMPILE::JS
>> -public class TopOfDisplayList extends UIBase
>> +public class TopOfDisplayList extends Sprite
>> {
>>        public function TopOfDisplayList()
>>        {
>>                super();
>>        }
>> +
>> +       /**
>> +        * @flexjsignorecoercion flex.display.InteractiveObject
>> +        * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
>> +        */
>> +       public function get focus():InteractiveObject
>> +       {
>> +               return (document.activeElement as
>> WrappedHTMLElement).flexjs_wrapper as InteractiveObject;
>> +       }
>> +
>> +       /**
>> +        * @flexjsignorecoercion org.apache.flex.core.HTMLElementWrapper
>> +        */
>> +       public function set focus(value:InteractiveObject):void
>> +       {
>> +               document.activeElement = (value as
>> HTMLElementWrapper).element;
>> +       }
>> }
>> 
>> }
>> \ No newline at end of file
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
>> b/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
>> index c838d89..68e6cf4 100644
>> --- a/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
>> +++ b/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
>> @@ -1,6 +1,9 @@
>> package flex.system
>> {
>> +       COMPILE::AS3
>> +       {
>>        import flash.system.Capabilities;
>> +       }
>> 
>>        public class I18NManager
>>        {
>> @@ -19,6 +22,10 @@ package flex.system
>>                                else
>>                                        return [ Capabilities.language ];
>>                        }
>> +                       COMPILE::JS
>> +                       {
>> +                               return [ navigator.language ];
>> +                       }
>>                }
>>        }
>> }
>> \ No newline at end of file
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
>> ----------------------------------------------------------------------
>> diff --git a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
>> b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
>> index d8bde5f..116c7e3 100644
>> --- a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
>> +++ b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
>> @@ -1,5 +1,6 @@
>> package flex.text
>> {
>> +
>> COMPILE::AS3
>> {
>>        import flash.text.TextField;
>> @@ -30,7 +31,7 @@ public class TextField extends flash.text.TextField
>> }
>> 
>> COMPILE::JS
>> -public class TextField extends Label implements IUITextField
>> +public class TextField extends Label
>> {
>> 
>>        private var _alwaysShowSelection:Boolean;
>> @@ -94,12 +95,6 @@ public class TextField extends Label implements
>> IUITextField
>>                        element.style.backgroundColor = "#" +
>> _backgroundColor.toString(16);
>>        }
>> 
>> -       public function get baselinePosition():Number
>> -       {
>> -               trace("TextField.baselinePosition not implemented");
>> -               return 0;
>> -       }
>> -
>>        private var _border:Boolean;
>>        public function get border():Boolean
>>        {
>> @@ -179,16 +174,6 @@ public class TextField extends Label implements
>> IUITextField
>>                        (element as HTMLInputElement).type = "input";
>>        }
>> 
>> -       private var _document:Object;
>> -       public function get document():Object
>> -       {
>> -               return _document;
>> -       }
>> -       public function set document(value:Object):void
>> -       {
>> -               _document = value;
>> -       }
>> -
>>        private var _doubleClickEnabled:Boolean;
>>        public function get doubleClickEnabled():Boolean
>>        {
>> @@ -213,58 +198,6 @@ public class TextField extends Label implements
>> IUITextField
>>                trace("TextField.embedFonts not implemented");
>>        }
>> 
>> -       private var _enabled:Boolean;
>> -       public function get enabled():Boolean
>> -       {
>> -               return _enabled;
>> -       }
>> -       public function set enabled(value:Boolean):void
>> -       {
>> -               _enabled = value;
>> -       }
>> -
>> -       public function get enableIME():Boolean
>> -       {
>> -               trace("TextField.enableIME not implemented");
>> -               return false;
>> -       }
>> -
>> -       public function get explicitMaxWidth():Number
>> -       {
>> -               trace("TextField.explicitMaxWidth not implemented");
>> -               return 0;
>> -       }
>> -
>> -       public function get explicitMaxHeight():Number
>> -       {
>> -               trace("TextField.explicitMaxHeight not implemented");
>> -               return 0;
>> -       }
>> -
>> -       public function get explicitMinHeight():Number
>> -       {
>> -               trace("TextField.explicitMinHeight not implemented");
>> -               return 0;
>> -       }
>> -
>> -       public function get explicitMinWidth():Number
>> -       {
>> -               trace("TextField.explicitMinWidth not implemented");
>> -               return 0;
>> -       }
>> -
>> -       private var _focusPane:Sprite;
>> -       public function get focusPane():Sprite
>> -       {
>> -               trace("TextField.focusPane not implemented");
>> -               return _focusPane;
>> -       }
>> -       public function set focusPane(value:Sprite):void
>> -       {
>> -               _focusPane = value;
>> -               trace("TextField.focusPane not implemented");
>> -       }
>> -
>>        private var _focusRect:Object;
>>        public function get focusRect():Object
>>        {
>> @@ -299,64 +232,6 @@ public class TextField extends Label implements
>> IUITextField
>>                element.innerHTML = _htmlText = value;
>>        }
>> 
>> -       private var _ignorePadding:Boolean;
>> -       public function get ignorePadding():Boolean
>> -       {
>> -               trace("TextField.ignorePadding not implemented");
>> -               return _ignorePadding;
>> -       }
>> -       public function set ignorePadding(value:Boolean):void
>> -       {
>> -               _ignorePadding = value;
>> -               trace("TextField.ignorePadding not implemented");
>> -       }
>> -
>> -       private var _imeMode:String;
>> -       public function get imeMode():String
>> -       {
>> -               return _imeMode;
>> -       }
>> -       public function set imeMode(value:String):void
>> -       {
>> -               _imeMode = value;
>> -       }
>> -
>> -       private var _includeInLayout:Boolean;
>> -       public function get includeInLayout():Boolean
>> -       {
>> -               trace("TextField.includeInLayout not implemented");
>> -               return _includeInLayout;
>> -       }
>> -       public function set includeInLayout(value:Boolean):void
>> -       {
>> -               _includeInLayout = value;
>> -               trace("TextField.includeInLayout not implemented");
>> -       }
>> -
>> -       private var _inheritingStyles:Object;
>> -       public function get inheritingStyles():Object
>> -       {
>> -               trace("TextField.inheritingStyles not implemented");
>> -               return _inheritingStyles;
>> -       }
>> -       public function set inheritingStyles(value:Object):void
>> -       {
>> -               _inheritingStyles = value;
>> -               trace("TextField.inheritingStyles not implemented");
>> -       }
>> -
>> -       private var _isPopUp:Boolean;
>> -       public function get isPopUp():Boolean
>> -       {
>> -               trace("TextField.isPopUp not implemented");
>> -               return _isPopUp;
>> -       }
>> -       public function set isPopUp(value:Boolean):void
>> -       {
>> -               _isPopUp = value;
>> -               trace("TextField.isPopUp not implemented");
>> -       }
>> -
>>        public function get length():int
>>        {
>>                return element.innerText.length;
>> @@ -373,12 +248,6 @@ public class TextField extends Label implements
>> IUITextField
>>                (element as HTMLInputElement).maxLength = value;
>>        }
>> 
>> -       public function get maxHeight():Number
>> -       {
>> -               trace("TextField.maxHeight not implemented");
>> -               return 0;
>> -       }
>> -
>>        public function get maxScrollH():int
>>        {
>>                trace("TextField.maxScrollH not implemented");
>> @@ -391,72 +260,6 @@ public class TextField extends Label implements
>> IUITextField
>>                return 0;
>>        }
>> 
>> -       public function get maxWidth():Number
>> -       {
>> -               trace("TextField.maxWidth not implemented");
>> -               return 0;
>> -       }
>> -
>> -       public function get measuredHeight():Number
>> -       {
>> -               trace("TextField.measuredHeight not implemented");
>> -               return 0;
>> -       }
>> -
>> -       private var _measuredMinHeight:Number;
>> -       public function get measuredMinHeight():Number
>> -       {
>> -               trace("TextField.measuredMinHeight not implemented");
>> -               return _measuredMinHeight;
>> -       }
>> -       public function set measuredMinHeight(value:Number):void
>> -       {
>> -               _measuredMinHeight = value;
>> -               trace("TextField.measuredMinHeight not implemented");
>> -       }
>> -
>> -       public function get measuredWidth():Number
>> -       {
>> -               trace("TextField.measuredWidth not implemented");
>> -               return 0;
>> -       }
>> -
>> -       private var _measuredMinWidth:Number;
>> -       public function get measuredMinWidth():Number
>> -       {
>> -               trace("TextField.measuredMinWidth not implemented");
>> -               return _measuredMinWidth;
>> -       }
>> -       public function set measuredMinWidth(value:Number):void
>> -       {
>> -               _measuredMinWidth = value;
>> -               trace("TextField.measuredMinWidth not implemented");
>> -       }
>> -
>> -       public function get minHeight():Number
>> -       {
>> -               trace("TextField.minHeight not implemented");
>> -               return 0;
>> -       }
>> -
>> -       public function get minWidth():Number
>> -       {
>> -               trace("TextField.minWidth not implemented");
>> -               return 0;
>> -       }
>> -
>> -       private var _moduleFactory:IFlexModuleFactory;
>> -       public function get moduleFactory():IFlexModuleFactory
>> -       {
>> -               trace("TextField.moduleFactory not implemented");
>> -               return _moduleFactory;
>> -       }
>> -       public function set moduleFactory(value:IFlexModuleFactory):void
>> -       {
>> -               _moduleFactory = value;
>> -               trace("TextField.moduleFactory not implemented");
>> -       }
>> -
>>        private var _mouseEnabled:Boolean;
>>        public function get mouseEnabled():Boolean
>>        {
>> @@ -481,6 +284,18 @@ public class TextField extends Label implements
>> IUITextField
>>                trace("TextField.mouseWheelEnabled not implemented");
>>        }
>> 
>> +       public function get mouseX():Number
>> +       {
>> +               trace("TextField.mouseX not implemented");
>> +               return 0;
>> +       }
>> +
>> +       public function get mouseY():Number
>> +       {
>> +               trace("TextField.mouseY not implemented");
>> +               return 0;
>> +       }
>> +
>>        private var _multiline:Boolean;
>>        public function get multiline():Boolean
>>        {
>> @@ -504,50 +319,12 @@ public class TextField extends Label implements
>> IUITextField
>>                element.id = name;
>>        }
>> 
>> -       private var _owner:DisplayObjectContainer;
>> -       public function get owner():DisplayObjectContainer
>> -       {
>> -               return _owner;
>> -       }
>> -       public function set owner(value:DisplayObjectContainer):void
>> -       {
>> -               _owner = value;
>> -       }
>> -
>> -       private var _nestLevel:int;
>> -       public function get nestLevel():int
>> -       {
>> -               return _nestLevel;
>> -       }
>> -       public function set nestLevel(value:int):void
>> -       {
>> -               _nestLevel = value;
>> -       }
>> -
>> -       private var _nonInheritingStyles:Object;
>> -       public function get nonInheritingStyles():Object
>> -       {
>> -               trace("TextField.nonInheritingStyles not implemented");
>> -               return _nonInheritingStyles;
>> -       }
>> -       public function set nonInheritingStyles(value:Object):void
>> -       {
>> -               _nonInheritingStyles = value;
>> -               trace("TextField.nonInheritingStyles not implemented");
>> -       }
>> -
>> -       public function get nonZeroTextHeight():Number
>> -       {
>> -               trace("TextField.nonZeroTextHeight not implemented");
>> -               return 0;
>> -       }
>> -
>>        public function get numLines():int
>>        {
>>                trace("TextField.numLines not implemented");
>> -               return 0;
>> +               return -1;
>>        }
>> -
>> +
>>        private var _restrict:String;
>>        public function get restrict():String
>>        {
>> @@ -626,17 +403,6 @@ public class TextField extends Label implements
>> IUITextField
>>                trace("TextField.sharpness not implemented");
>>        }
>> 
>> -       private var _styleName:Object;
>> -       public function get styleName():Object
>> -       {
>> -               return _styleName;
>> -       }
>> -       public function set styleName(value:Object):void
>> -       {
>> -               _styleName = value;
>> -               element.className = styleName.toString();
>> -       }
>> -
>>        private var _styleSheet:StyleSheet;
>>        public function get styleSheet():StyleSheet
>>        {
>> @@ -648,19 +414,7 @@ public class TextField extends Label implements
>> IUITextField
>>                _styleSheet = value;
>>                trace("TextField.styleSheet not implemented");
>>        }
>> -
>> -       private var _systemManager:ISystemManager;
>> -       public function get systemManager():ISystemManager
>> -       {
>> -               trace("TextField.systemManager not implemented");
>> -               return _systemManager;
>> -       }
>> -       public function set systemManager(value:ISystemManager):void
>> -       {
>> -               _systemManager = value;
>> -               trace("TextField.systemManager not implemented");
>> -       }
>> -
>> +
>>        private var _tabEnabled:Boolean;
>>        public function get tabEnabled():Boolean
>>        {
>> @@ -718,30 +472,6 @@ public class TextField extends Label implements
>> IUITextField
>>                trace("TextField.thickness not implemented");
>>        }
>> 
>> -       private var _toolTip:String;
>> -       public function get toolTip():String
>> -       {
>> -               trace("TextField.toolTip not implemented");
>> -               return _toolTip;
>> -       }
>> -       public function set toolTip(value:String):void
>> -       {
>> -               _toolTip = value;
>> -               trace("TextField.toolTip not implemented");
>> -       }
>> -
>> -       private var _tweeningProperties:Array;
>> -       public function get tweeningProperties():Array
>> -       {
>> -               trace("TextField.tweeningProperties not implemented");
>> -               return _tweeningProperties;
>> -       }
>> -       public function set tweeningProperties(value:Array):void
>> -       {
>> -               _tweeningProperties = value;
>> -               trace("TextField.tweeningProperties not implemented");
>> -       }
>> -
>>        public function get topOfDisplayList():TopOfDisplayList
>>        {
>>                trace("TextField.topOfDisplayList not implemented");
>> @@ -801,18 +531,6 @@ public class TextField extends Label implements
>> IUITextField
>>                return 0;
>>        }
>> 
>> -       public function getExplicitOrMeasuredHeight():Number
>> -       {
>> -               trace("TextField.getExplicitOrMeasuredHeight not
>> implemented");
>> -               return 0;
>> -       }
>> -
>> -       public function getExplicitOrMeasuredWidth():Number
>> -       {
>> -               trace("TextField.getExplicitOrMeasuredWidth not
>> implemented");
>> -               return 0;
>> -       }
>> -
>>        public function getFirstCharInParagraph(index:int):int
>>        {
>>                trace("TextField.getFirstCharInParagraph not implemented");
>> @@ -867,59 +585,12 @@ public class TextField extends Label implements
>> IUITextField
>>                return 0;
>>        }
>> 
>> -       public function getStyle(styleName:String):*
>> -       {
>> -               trace("TextField.getStyle not implemented");
>> -               return undefined;
>> -       }
>> -
>>        public function getTextFormat(beginIndex:int = -1, endIndex:int =
>> -1):TextFormat
>>        {
>>                trace("TextField.getTextFormat not implemented");
>>                return null;
>>        }
>> 
>> -       public function getUITextFormat():UITextFormat
>> -       {
>> -               trace("TextField.getUITextFormat not implemented");
>> -               return null;
>> -       }
>> -
>> -       public function initialize():void
>> -       {
>> -               trace("TextField.initialize not implemented");
>> -       }
>> -
>> -       public function invalidateDisplayList():void
>> -       {
>> -               trace("TextField.invalidateDisplayList not implemented");
>> -       }
>> -
>> -       public function invalidateProperties():void
>> -       {
>> -               trace("TextField.invalidateProperties not implemented");
>> -       }
>> -
>> -       public function invalidateSize():void
>> -       {
>> -               trace("TextField.invalidateSize not implemented");
>> -       }
>> -
>> -       public function move(x:Number, y:Number):void
>> -       {
>> -               this.x = x;
>> -               this.y = y;
>> -       }
>> -
>> -       public function owns(child:DisplayObject):Boolean
>> -       {
>> -               return false;
>> -       }
>> -
>> -       public function parentChanged(parent:DisplayObjectContainer):void
>> -       {
>> -       }
>> -
>>        public function replaceSelectedText(text:String):void
>>        {
>>                trace("TextField.replaceSelectedText not implemented");
>> @@ -930,11 +601,6 @@ public class TextField extends Label implements
>> IUITextField
>>                trace("TextField.replaceText not implemented");
>>        }
>> 
>> -       public function setActualSize(x:Number, y:Number):void
>> -       {
>> -               setWidthAndHeight(x, y, true);
>> -       }
>> -
>>        public function setColor(color:uint):void
>>        {
>>                element.style.color = "#" + color.toString(16);
>> @@ -955,29 +621,13 @@ public class TextField extends Label implements
>> IUITextField
>>                trace("TextField.setTextFormat not implemented");
>>        }
>> 
>> -       public function setVisible(value:Boolean, noEvent:Boolean =
>> false):void
>> -       {
>> -               if (value)
>> -                       element.style.display = "inline";
>> -               else
>> -                       element.style.display = "none";
>> -       }
>> -
>> -       public function styleChanged(styleProp:String):void
>> -       {
>> -               trace("TextField.styleChanged not implemented");
>> -       }
>> -
>> -       public function truncateToFit(truncationIndicator:String =
>> null):Boolean
>> -       {
>> -               trace("TextField.truncateToFit not implemented");
>> -               return false;
>> -       }
>> -
>> -       public function validateNow():void
>> +       /**
>> +        * @flexjsignorecoercion flex.display.DisplayObjectContainer
>> +        */
>> +       override public function get parent():DisplayObjectContainer
>>        {
>> +               return super.parent as DisplayObjectContainer;
>>        }
>> -
>> 
>> }
>> }
>> \ No newline at end of file
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
>> b/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
>> new file mode 100644
>> index 0000000..a75a480
>> --- /dev/null
>> +++ b/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
>> @@ -0,0 +1,26 @@
>> 
>> +////////////////////////////////////////////////////////////////////////////////
>> +//
>> +//  Licensed to the Apache Software Foundation (ASF) under one or more
>> +//  contributor license agreements.  See the NOTICE file distributed with
>> +//  this work for additional information regarding copyright ownership.
>> +//  The ASF licenses this file to You under the Apache License, Version
>> 2.0
>> +//  (the "License"); you may not use this file except in compliance with
>> +//  the License.  You may obtain a copy of the License at
>> +//
>> +//      http://www.apache.org/licenses/LICENSE-2.0
>> +//
>> +//  Unless required by applicable law or agreed to in writing, software
>> +//  distributed under the License is distributed on an "AS IS" BASIS,
>> +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
>> implied.
>> +//  See the License for the specific language governing permissions and
>> +//  limitations under the License.
>> +//
>> 
>> +////////////////////////////////////////////////////////////////////////////////
>> +
>> +package flex.utils
>> +{
>> +       public interface IExternalizable
>> +       {
>> +
>> +       }
>> +}
>> \ No newline at end of file
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
>> ----------------------------------------------------------------------
>> diff --git a/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
>> b/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
>> index fef6ee3..c5855e1 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
>> @@ -218,6 +218,8 @@ public class Watcher
>>                    //   Error #1069: Property - not found on - and there
>> is no default value
>>                    //   Error #1507: - invalid null argument.
>>                    // We allow any other errors to be thrown.
>> +                               COMPILE::AS3
>> +                               {
>>                    if ((error.errorID != 1006) &&
>>                        (error.errorID != 1009) &&
>>                        (error.errorID != 1010) &&
>> @@ -227,6 +229,7 @@ public class Watcher
>>                    {
>>                        throw error;
>>                    }
>> +                               }
>>                        }
>>         }
>>     }
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
>> ----------------------------------------------------------------------
>> diff --git a/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
>> b/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
>> index f6a4b9f..ab63cd4 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
>> @@ -20,9 +20,17 @@
>> package mx.controls
>> {
>> 
>> -import flash.display.DisplayObject;
>> -import flash.text.TextFieldAutoSize;
>> -import flash.text.TextFormat;
>> +COMPILE::AS3
>> +{
>> +       import flash.display.DisplayObject;
>> +       import flash.text.TextFieldAutoSize;
>> +       import flash.text.TextFormat;
>> +}
>> +COMPILE::JS
>> +{
>> +       import flex.display.DisplayObject;
>> +       import flex.text.TextFormat;
>> +}
>> import mx.core.EdgeMetrics;
>> import mx.core.IFlexDisplayObject;
>> import mx.core.IFlexModuleFactory;
>> @@ -167,10 +175,13 @@ public class ToolTip extends UIComponent implements
>> IToolTip, IFontContextCompon
>>     {
>>         super();
>> 
>> -        // InteractiveObject variables.
>> -        // Make the ToolTip invisible to the mouse so that it doesn't
>> -        // interfere with the ToolTipManager's mouse-tracking.
>> -        mouseEnabled = false;
>> +               COMPILE::AS3
>> +               {
>> +               // InteractiveObject variables.
>> +               // Make the ToolTip invisible to the mouse so that it
>> doesn't
>> +               // interfere with the ToolTipManager's mouse-tracking.
>> +               mouseEnabled = false;
>> +               }
>>     }
>> 
>> 
>> //--------------------------------------------------------------------------
>> @@ -451,13 +462,16 @@ public class ToolTip extends UIComponent implements
>> IToolTip, IFontContextCompon
>>         {
>>             textField = IUITextField(createInFontContext(UITextField));
>> 
>> -            textField.autoSize = TextFieldAutoSize.LEFT;
>> -            textField.mouseEnabled = false;
>> -            textField.multiline = true;
>> -            textField.selectable = false;
>> -            textField.wordWrap = false;
>> -            textField.styleName = this;
>> -
>> +                       COMPILE::AS3
>> +                       {
>> +                   textField.autoSize = TextFieldAutoSize.LEFT;
>> +                   textField.mouseEnabled = false;
>> +                   textField.multiline = true;
>> +                   textField.selectable = false;
>> +                   textField.wordWrap = false;
>> +                   textField.styleName = this;
>> +                       }
>> +
>>             if (childIndex == -1)
>>                 addChild(DisplayObject(textField));
>>             else
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
>> b/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
>> index 714e0bb..632309f 100644
>> ---
>> a/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
>> +++
>> b/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
>> @@ -49,6 +49,7 @@ public interface IDeferredInstantiationUIComponent
>> extends IUIComponent
>>         *  @playerversion AIR 1.1
>>         *  @productversion Flex 3
>>         */
>> +       COMPILE::LATER
>>     function set cacheHeuristic(value:Boolean):void;
>> 
>>        //----------------------------------
>> @@ -63,6 +64,7 @@ public interface IDeferredInstantiationUIComponent
>> extends IUIComponent
>>         *  @playerversion AIR 1.1
>>         *  @productversion Flex 3
>>         */
>> +       COMPILE::LATER
>>     function get cachePolicy():String
>> 
>>        //----------------------------------
>> @@ -123,6 +125,7 @@ public interface IDeferredInstantiationUIComponent
>> extends IUIComponent
>>         *  @playerversion AIR 1.1
>>         *  @productversion Flex 3
>>         */
>> +       COMPILE::LATER
>>        function createReferenceOnParentDocument(
>> 
>> parentDocument:IFlexDisplayObject):void;
>> 
>> @@ -140,6 +143,7 @@ public interface IDeferredInstantiationUIComponent
>> extends IUIComponent
>>         *  @playerversion AIR 1.1
>>         *  @productversion Flex 3
>>         */
>> +       COMPILE::LATER
>>        function deleteReferenceOnParentDocument(
>> 
>> parentDocument:IFlexDisplayObject):void;
>> 
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
>> b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
>> index e9d9652..894bd46 100644
>> ---
>> a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
>> +++
>> b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
>> @@ -22,6 +22,10 @@
>>  *  for web version of flash.display.DisplayObjectContainer
>>  *
>>  */
>> +COMPILE::AS3
>> +{
>> +       import flash.display.DisplayObjectContainer;
>> +}
>> import flash.text.TextSnapshot;
>> import flash.geom.Point;
>> 
>> @@ -33,7 +37,10 @@ import flash.geom.Point;
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -    function addChild(child:DisplayObject):DisplayObject;
>> +       COMPILE::AS3
>> +    function
>> addChild(child:flash.display.DisplayObject):flash.display.DisplayObject;
>> +       COMPILE::JS
>> +       function addChild(child:DisplayObject):DisplayObject;
>> 
>>     /**
>>      *  @copy flash.display.DisplayObjectContainer#addChildAt()
>> @@ -43,6 +50,9 @@ import flash.geom.Point;
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::AS3
>> +       function addChildAt(child:flash.display.DisplayObject,
>> index:int):flash.display.DisplayObject;
>> +       COMPILE::JS
>>     function addChildAt(child:DisplayObject, index:int):DisplayObject;
>> 
>>     /**
>> @@ -53,7 +63,10 @@ import flash.geom.Point;
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -    function removeChild(child:DisplayObject):DisplayObject;
>> +       COMPILE::AS3
>> +    function
>> removeChild(child:flash.display.DisplayObject):flash.display.DisplayObject;
>> +       COMPILE::JS
>> +       function removeChild(child:DisplayObject):DisplayObject;
>> 
>>     /**
>>      *  @copy flash.display.DisplayObjectContainer#removeChildAt()
>> @@ -63,7 +76,10 @@ import flash.geom.Point;
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -    function removeChildAt(index:int):DisplayObject;
>> +       COMPILE::AS3
>> +    function removeChildAt(index:int):flash.display.DisplayObject;
>> +       COMPILE::JS
>> +       function removeChildAt(index:int):DisplayObject;
>> 
>>     /**
>>      *  @copy flash.display.DisplayObjectContainer#getChildIndex()
>> @@ -73,7 +89,10 @@ import flash.geom.Point;
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -    function getChildIndex(child:DisplayObject):int;
>> +       COMPILE::AS3
>> +    function getChildIndex(child:flash.display.DisplayObject):int;
>> +       COMPILE::JS
>> +       function getChildIndex(child:DisplayObject):int;
>> 
>>     /**
>>      *  @copy flash.display.DisplayObjectContainer#setChildIndex()
>> @@ -83,7 +102,10 @@ import flash.geom.Point;
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -    function setChildIndex(child:DisplayObject, index:int):void;
>> +       COMPILE::AS3
>> +    function setChildIndex(child:flash.display.DisplayObject,
>> index:int):void;
>> +       COMPILE::JS
>> +       function setChildIndex(child:DisplayObject, index:int):void;
>> 
>>     /**
>>      *  @copy flash.display.DisplayObjectContainer#getChildAt()
>> @@ -93,7 +115,10 @@ import flash.geom.Point;
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -    function getChildAt(index:int):DisplayObject;
>> +       COMPILE::AS3
>> +    function getChildAt(index:int):flash.display.DisplayObject;
>> +       COMPILE::JS
>> +       function getChildAt(index:int):DisplayObject;
>> 
>>     /**
>>      *  @copy flash.display.DisplayObjectContainer#getChildByName()
>> @@ -103,7 +128,10 @@ import flash.geom.Point;
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -    function getChildByName(name:String):DisplayObject;
>> +       COMPILE::AS3
>> +    function getChildByName(name:String):flash.display.DisplayObject;
>> +       COMPILE::JS
>> +       function getChildByName(name:String):DisplayObject;
>> 
>>     /**
>>      *  @copy flash.display.DisplayObjectContainer#numChildren
>> @@ -187,7 +215,10 @@ import flash.geom.Point;
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -    function contains(child:DisplayObject):Boolean;
>> +       COMPILE::AS3
>> +    function contains(child:flash.display.DisplayObject):Boolean;
>> +       COMPILE::JS
>> +       function contains(child:DisplayObject):Boolean;
>> 
>>     /**
>>      *  @copy flash.display.DisplayObjectContainer#swapChildrenAt()
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
>> b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
>> index 3d0dbc2..f84242d 100644
>> ---
>> a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
>> +++
>> b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
>> @@ -32,7 +32,10 @@
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -    function get root():DisplayObject;
>> +       COMPILE::AS3
>> +    function get root():flash.display.DisplayObject;
>> +       COMPILE::JS
>> +       function get root():DisplayObject;
>> 
>> 
>>     /**
>> @@ -67,7 +70,10 @@
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -    function get parent():DisplayObjectContainer;
>> +       COMPILE::AS3
>> +    function get parent():flash.display.DisplayObjectContainer;
>> +       COMPILE::JS
>> +       function get parent():DisplayObjectContainer;
>> 
>> 
>>     /**
>> @@ -91,9 +97,10 @@
>>      *  @playerversion Flash 9
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>> -     */
>>     function get visible():Boolean;
>>     function set visible(value:Boolean):void;
>> +        * already in IUIBase
>> +     */
>> 
>> 
>>     /**
>> @@ -103,9 +110,10 @@
>>      *  @playerversion Flash 9
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>> -     */
>>     function get x():Number;
>>     function set x(value:Number):void;
>> +       * already in IUIBase
>> +       */
>> 
>> 
>>     /**
>> @@ -115,9 +123,10 @@
>>      *  @playerversion Flash 9
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>> -     */
>>     function get y():Number;
>>     function set y(value:Number):void;
>> +        * already in IUIBase
>> +     */
>> 
>> 
>>     /**
>> @@ -156,7 +165,6 @@
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -       COMPILE::LATER
>>     function get mouseX():Number; // note: no setter
>> 
>> 
>> @@ -168,7 +176,6 @@
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> -       COMPILE::LATER
>>     function get mouseY():Number; // note: no setter
>> 
>> 
>> @@ -193,9 +200,10 @@
>>      *  @playerversion Flash 9
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>> -     */
>>     function get alpha():Number;
>>     function set alpha(value:Number):void;
>> +        * already in IUIBase
>> +     */
>> 
>> 
>>     /**
>> @@ -205,9 +213,10 @@
>>      *  @playerversion Flash 9
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>> -     */
>>     function get width():Number;
>>     function set width(value:Number):void;
>> +        * already in IUIBase
>> +     */
>> 
>>     /**
>>      *  @copy flash.display.DisplayObject#height
>> @@ -216,9 +225,10 @@
>>      *  @playerversion Flash 9
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>> -     */
>>     function get height():Number;
>>     function set height(value:Number):void;
>> +        * already in IUIBase
>> +     */
>> 
>> 
>>     /**
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
>> b/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
>> index f622766..ecb8dd5 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
>> @@ -35,7 +35,6 @@ COMPILE::JS
>> }
>> import org.apache.flex.events.IEventDispatcher;
>> import flex.display.TopOfDisplayList;
>> -import flex.display.DisplayObject;
>> 
>> /**
>>  *  The IFlexDisplayObject interface defines the interface for skin
>> elements.
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
>> b/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
>> index 3f1464a..4691a12 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
>> @@ -241,11 +241,13 @@ public interface IVisualElement extends
>> ILayoutElement, ILayoutDirectionElement
>>      *  @playerversion AIR 1.5
>>      *  @productversion Flex 4
>>      */
>> +       COMPILE::LATER
>>     function get designLayer():DesignLayer;
>> 
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::LATER
>>     function set designLayer(value:DesignLayer):void;
>> 
>>     /**
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
>> ----------------------------------------------------------------------
>> diff --git a/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
>> b/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
>> index 427550e..9b2a960 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
>> @@ -35,7 +35,7 @@ COMPILE::AS3
>>        import flash.display.DisplayObject;
>>        import flash.display.DisplayObjectContainer;
>>        import flash.display.InteractiveObject;
>> -       import flash.display.Sprite;
>> +//     import flash.display.Sprite;
>>        import flash.display.GradientType;
>>        import flash.display.Graphics;
>>        import flash.display.Loader;
>> @@ -48,9 +48,10 @@ COMPILE::JS
>>        import flex.display.DisplayObject;
>>        import flex.display.DisplayObjectContainer;
>>        import flex.display.InteractiveObject;
>> +       import flex.display.Graphics;
>>        import flex.display.Loader;
>> -       import flex.display.Sprite;
>> }
>> +import flex.display.Sprite;
>> /*
>> import flash.display.Shader;
>> */
>> @@ -158,7 +159,6 @@ import mx.validators.ValidationResult;
>> 
>> use namespace mx_internal;
>> 
>> -import org.apache.flex.core.UIBase;
>> import flex.system.DefinitionManager;
>> import org.apache.flex.events.EventDispatcher;
>> import org.apache.flex.events.IEventDispatcher;
>> @@ -1475,7 +1475,7 @@ include "../styles/metadata/AnchorStyles.as";
>>  *  @playerversion AIR 1.1
>>  *  @productversion Flex 3
>>  */
>> -public class UIComponent extends UIBase
>> +public class UIComponent extends Sprite
>>     implements IAutomationObject, IChildList, IConstraintClient,
>>     IDeferredInstantiationUIComponent, IFlexDisplayObject, IFlexModule,
>>     IInvalidating, ILayoutManagerClient, IPropertyChangeNotifier,
>> @@ -1706,8 +1706,11 @@ public class UIComponent extends UIBase
>>             if (UIComponentGlobals.callLaterSuspendCount == 0)
>>             {
>>                 var sm:ISystemManager =
>> SystemManagerGlobals.topLevelSystemManagers[0];
>> +                               COMPILE::AS3
>> +                               {
>>                 if (sm && sm.topOfDisplayList)
>>                     sm.topOfDisplayList.invalidate();
>> +                               }
>>             }
>>         }
>>     }
>> @@ -1731,9 +1734,12 @@ public class UIComponent extends UIBase
>>         super();
>> 
>>         // Override  variables in superclasses.
>> +               COMPILE::AS3
>> +               {
>>         focusRect = false; // We do our own focus drawing.
>>         // We are tab enabled by default if IFocusManagerComponent
>>         tabEnabled = (this is IFocusManagerComponent);
>> +               }
>>         tabFocusEnabled = (this is IFocusManagerComponent);
>> 
>>         // Whether the component can accept user interaction.
>> @@ -2088,6 +2094,7 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::LATER
>>     public function get accessibilityName():String
>>     {
>>         return accessibilityProperties ? accessibilityProperties.name :
>> "";
>> @@ -2472,9 +2479,14 @@ public class UIComponent extends UIBase
>>         {
>>             return _parent ? _parent : super.parent;
>>         }
>> -        catch (e:SecurityError)
>> +        catch (e:Error)
>>         {
>>             // trace("UIComponent.get parent(): " + e);
>> +                       COMPILE::AS3
>> +                       {
>> +                               if (!(e is SecurityError))
>> +                                       throw e;
>> +                       }
>>         }
>> 
>>         return null;
>> @@ -2781,6 +2793,7 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::LATER
>>     override public function get rotationZ():Number
>>     {
>>         return rotation;
>> @@ -2788,6 +2801,7 @@ public class UIComponent extends UIBase
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::LATER
>>     override public function set rotationZ(value:Number):void
>>     {
>>         rotation = value;
>> @@ -3107,6 +3121,7 @@ public class UIComponent extends UIBase
>>      *  @productversion Flex 3
>>      */
>> 
>> +       COMPILE::LATER
>>     override public function get scaleX():Number
>>     {
>>         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
>> @@ -3119,8 +3134,10 @@ public class UIComponent extends UIBase
>>      *  @private
>>      *  Storage for the scaleX property.
>>      */
>> +       COMPILE::LATER
>>     private var _scaleX:Number = 1.0;
>> 
>> +       COMPILE::LATER
>>     override public function set scaleX(value:Number):void
>>     {
>>         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
>> @@ -3187,6 +3204,7 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::LATER
>>     override public function get scaleY():Number
>>     {
>>         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
>> @@ -3201,9 +3219,11 @@ public class UIComponent extends UIBase
>>      *  @private
>>      *  Storage for the scaleY property.
>>      */
>> +       COMPILE::LATER
>>     private var _scaleY:Number = 1.0;
>> 
>> 
>> +       COMPILE::LATER
>>     override public function set scaleY(value:Number):void
>>     {
>>         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
>> @@ -3310,11 +3330,13 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::LATER
>>     mx_internal final function get $scaleX():Number
>>     {
>>         return super.scaleX;
>>     }
>> 
>> +       COMPILE::LATER
>>     mx_internal final function set $scaleX(value:Number):void
>>     {
>>         super.scaleX = value;
>> @@ -3332,11 +3354,13 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::LATER
>>     mx_internal final function get $scaleY():Number
>>     {
>>         return super.scaleY;
>>     }
>> 
>> +       COMPILE::LATER
>>     mx_internal final function set $scaleY(value:Number):void
>>     {
>>         super.scaleY = value;
>> @@ -3414,9 +3438,12 @@ public class UIComponent extends UIBase
>>         if (!initialized)
>>             return;
>> 
>> +               COMPILE::LATER
>> +               {
>>         if (designLayer && !designLayer.effectiveVisibility)
>>             value = false;
>> -
>> +               }
>> +
>>         if ($visible == value)
>>             return;
>> 
>> @@ -3463,8 +3490,11 @@ public class UIComponent extends UIBase
>>         {
>>             _alpha = value;
>> 
>> +                       COMPILE::LATER
>> +                       {
>>             if (designLayer)
>>                 value = value * designLayer.effectiveAlpha;
>> +                       }
>> 
>>             $alpha = value;
>> 
>> @@ -3545,6 +3575,7 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::LATER
>>     override public function get doubleClickEnabled():Boolean
>>     {
>>         return super.doubleClickEnabled;
>> @@ -3554,6 +3585,7 @@ public class UIComponent extends UIBase
>>      *  @private
>>      *  Propagate to children.
>>      */
>> +       COMPILE::LATER
>>     override public function set doubleClickEnabled(value:Boolean):void
>>     {
>>         super.doubleClickEnabled = value;
>> @@ -3621,6 +3653,7 @@ public class UIComponent extends UIBase
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::LATER
>>     override public function set cacheAsBitmap(value:Boolean):void
>>     {
>>         super.cacheAsBitmap = value;
>> @@ -3704,6 +3737,7 @@ public class UIComponent extends UIBase
>>      *  @private
>>      *  Storage for the layer property.
>>      */
>> +       COMPILE::LATER
>>     private var _designLayer:DesignLayer;
>> 
>>     [Inspectable (environment='none')]
>> @@ -3716,6 +3750,7 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.5
>>      *  @productversion Flex 4
>>      */
>> +       COMPILE::LATER
>>     public function get designLayer():DesignLayer
>>     {
>>         return _designLayer;
>> @@ -3724,6 +3759,7 @@ public class UIComponent extends UIBase
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::LATER
>>     public function set designLayer(value:DesignLayer):void
>>     {
>>         if (_designLayer)
>> @@ -3781,6 +3817,7 @@ public class UIComponent extends UIBase
>>      *  Note that this "base property" is final and cannot be overridden,
>>      *  so you can count on it to reflect what is happening at the player
>> level.
>>      */
>> +       COMPILE::LATER
>>     mx_internal final function get $blendMode():String
>>     {
>>         return super.blendMode;
>> @@ -3789,6 +3826,7 @@ public class UIComponent extends UIBase
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::LATER
>>     mx_internal final function set $blendMode(value:String):void
>>     {
>>         super.blendMode = value;
>> @@ -4998,6 +5036,7 @@ public class UIComponent extends UIBase
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::LATER
>>     public function set cachePolicy(value:String):void
>>     {
>>         if (_cachePolicy != value)
>> @@ -5036,6 +5075,7 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::LATER
>>     public function set cacheHeuristic(value:Boolean):void
>>     {
>>         if (_cachePolicy == UIComponentCachePolicy.AUTO)
>> @@ -5092,7 +5132,10 @@ public class UIComponent extends UIBase
>> 
>>             value.x = 0;
>>             value.y = 0;
>> +                       COMPILE::AS3
>> +                       {
>>             value.scrollRect = null;
>> +                       }
>> 
>>             _focusPane = value;
>>         }
>> @@ -5100,7 +5143,10 @@ public class UIComponent extends UIBase
>>         {
>>             removeChild(_focusPane);
>> 
>> +                       COMPILE::AS3
>> +                       {
>>             _focusPane.mask = null;
>> +                       }
>>             _focusPane = null;
>>         }
>>     }
>> @@ -7429,6 +7475,7 @@ public class UIComponent extends UIBase
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::AS3
>>     override public function stopDrag():void
>>     {
>>         super.stopDrag();
>> @@ -7544,8 +7591,11 @@ public class UIComponent extends UIBase
>>                 listeningForRender = true;
>>             }
>> 
>> +                       COMPILE::AS3
>> +                       {
>>             if (_systemManager.topOfDisplayList)
>>                 _systemManager.topOfDisplayList.invalidate();
>> +                       }
>>         }
>>     }
>> 
>> @@ -7634,10 +7684,13 @@ public class UIComponent extends UIBase
>>         else if (child is IUITextField)
>>             IUITextField(child).nestLevel = nestLevel + 1;
>> 
>> +               COMPILE::LATER
>> +               {
>>         if (child is InteractiveObject)
>>             if (doubleClickEnabled)
>>                 InteractiveObject(child).doubleClickEnabled = true;
>> -
>> +               }
>> +
>>         // Sets up the inheritingStyles and nonInheritingStyles objects
>>         // and their proto chains so that getStyle() works.
>>         // If this object already has some children,
>> @@ -8378,6 +8431,8 @@ public class UIComponent extends UIBase
>>                                }
>>                                case 3:
>>                                {
>> +                                       COMPILE::LATER
>> +                                       {
>>                                        propertyName =
>> bindingData[index++];
>>                                        value = bindingData[index++];
>>                                        if (value is Array)
>> @@ -8389,6 +8444,7 @@ public class UIComponent extends UIBase
>> 
>> theBindings.push(bindings[bindingIndex]);
>>                                        w = new XMLWatcher(propertyName,
>> theBindings);
>>                                        break;
>> +                                       }
>>                                }
>>                        }
>>                        watchers.push(w);
>> @@ -8795,6 +8851,7 @@ public class UIComponent extends UIBase
>>     public function callLater(method:Function,
>>                               args:Array /* of Object */ = null):void
>>     {
>> +
>>         // trace(">>calllater " + this)
>>         // Push the method and the arguments onto the method queue.
>>         methodQueue.push(new MethodQueueElement(method, args));
>> @@ -8815,9 +8872,12 @@ public class UIComponent extends UIBase
>>                 listeningForRender = true;
>>             }
>> 
>> +                       COMPILE::AS3
>> +                       {
>>             // Force a "render" event to happen soon
>>             if (sm.topOfDisplayList)
>>                 sm.topOfDisplayList.invalidate();
>> +                       }
>>         }
>> 
>>         // trace("<<calllater " + this)
>> @@ -8903,6 +8963,8 @@ public class UIComponent extends UIBase
>>     {
>>         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
>>         {
>> +                       COMPILE::LATER
>> +                       {
>>             if (_scaleX != oldScaleX)
>>             {
>>                 var scalingFactorX:Number = Math.abs(_scaleX / oldScaleX);
>> @@ -8932,6 +8994,7 @@ public class UIComponent extends UIBase
>> 
>>                 super.scaleY = oldScaleY = _scaleY;
>>             }
>> +                       }
>>         }
>>         else
>>         {
>> @@ -8943,8 +9006,11 @@ public class UIComponent extends UIBase
>>                 currentState = newState;
>>             }
>> 
>> +                       COMPILE::LATER
>> +                       {
>>             oldScaleX = scaleX;
>>             oldScaleY = scaleY;
>> +                       }
>>         }
>> 
>>         // Typically state changes occur immediately, but during
>> @@ -9139,6 +9205,8 @@ public class UIComponent extends UIBase
>>         }
>>         else
>>         {
>> +                       COMPILE::LATER
>> +                       {
>>             var xScale:Number = Math.abs(scaleX);
>>             var yScale:Number = Math.abs(scaleY);
>> 
>> @@ -9156,7 +9224,7 @@ public class UIComponent extends UIBase
>>                     _measuredHeight /= yScale;
>>                 }
>>             }
>> -
>> +                       }
>>             measure();
>> 
>>             invalidateSizeFlag = false;
>> @@ -9173,6 +9241,8 @@ public class UIComponent extends UIBase
>>             if (!isNaN(explicitMaxHeight) && measuredHeight >
>> explicitMaxHeight)
>>                 measuredHeight = explicitMaxHeight;
>> 
>> +                       COMPILE::LATER
>> +                       {
>>             if (FlexVersion.compatibilityVersion <
>> FlexVersion.VERSION_4_0)
>>             {
>>                 if (xScale != 1.0)
>> @@ -9187,9 +9257,13 @@ public class UIComponent extends UIBase
>>                     _measuredHeight *= yScale;
>>                 }
>>             }
>> +                       }
>>         }
>> 
>> +               COMPILE::LATER
>> +               {
>>         adjustSizesForScaleChanges();
>> +               }
>> 
>>         if (isNaN(oldMinWidth))
>>         {
>> @@ -9326,6 +9400,7 @@ public class UIComponent extends UIBase
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::LATER
>>     mx_internal function adjustSizesForScaleChanges():void
>>     {
>>         var xScale:Number = scaleX;
>> @@ -9422,10 +9497,14 @@ public class UIComponent extends UIBase
>>      */
>>     protected function get unscaledWidth():Number
>>     {
>> +               COMPILE::LATER
>> +               {
>>         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
>>             return width / Math.abs(scaleX);
>>         else
>>             return width;
>> +               }
>> +               return width;
>>     }
>> 
>>     /**
>> @@ -9482,10 +9561,14 @@ public class UIComponent extends UIBase
>>      */
>>     protected function get unscaledHeight():Number
>>     {
>> +               COMPILE::LATER
>> +               {
>>         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
>>             return height / Math.abs(scaleY);
>>         else
>>             return height;
>> +               }
>> +               return height;
>>     }
>> 
>>     /**
>> @@ -9642,6 +9725,8 @@ public class UIComponent extends UIBase
>> 
>>             var unscaledWidth:Number = width;
>>             var unscaledHeight:Number = height;
>> +                       COMPILE::LATER
>> +                       {
>>             if (FlexVersion.compatibilityVersion <
>> FlexVersion.VERSION_4_0)
>>             {
>>                 unscaledWidth = scaleX == 0 ? 0 : width / scaleX;
>> @@ -9655,6 +9740,7 @@ public class UIComponent extends UIBase
>>                 if (Math.abs(unscaledHeight - lastUnscaledHeight) <
>> .00001)
>>                     unscaledHeight = lastUnscaledHeight;
>>             }
>> +                       }
>>             updateDisplayList(unscaledWidth,unscaledHeight);
>>             lastUnscaledWidth = unscaledWidth;
>>             lastUnscaledHeight = unscaledHeight;
>> @@ -10725,8 +10811,13 @@ public class UIComponent extends UIBase
>>         var height:Number;
>>         if (obj is UIComponent)
>>         {
>> +                       COMPILE::LATER
>> +                       {
>>             width = UIComponent(obj).unscaledWidth * Math.abs(obj.scaleX);
>>             height = UIComponent(obj).unscaledHeight *
>> Math.abs(obj.scaleY);
>> +                       }
>> +                       width = UIComponent(obj).unscaledWidth;
>> +                       height = UIComponent(obj).unscaledHeight;
>>         }
>>         else
>>         {
>> @@ -10768,6 +10859,8 @@ public class UIComponent extends UIBase
>> 
>>             var pt:Point;
>> 
>> +                       COMPILE::LATER
>> +                       {
>>             if (rotation)
>>             {
>>                 var rotRad:Number = rotation * Math.PI / 180;
>> @@ -10780,7 +10873,8 @@ public class UIComponent extends UIBase
>>                 pt = new Point(obj.x - thickness, obj.y - thickness);
>>                 DisplayObject(focusObj).rotation = 0;
>>             }
>> -
>> +                       }
>> +
>>             if (obj.parent == this)
>>             {
>>                 // This adjustment only works if obj is a direct child of
>> this.
>> @@ -11273,7 +11367,14 @@ public class UIComponent extends UIBase
>>         {
>>             var message:String = resourceManager.getString(
>>                 "core", "stateUndefined", [ stateName ]);
>> -            throw new ArgumentError(message);
>> +                       COMPILE::AS3
>> +                       {
>> +                               throw new ArgumentError(message);
>> +                       }
>> +                       COMPILE::JS
>> +                       {
>> +                               throw new Error(message);
>> +                       }
>>         }
>>         return null;
>>     }
>> @@ -11935,7 +12036,14 @@ public class UIComponent extends UIBase
>>         {
>>             var message:String = resourceManager.getString(
>>                 "core", "badParameter", [ styleClient ]);
>> -            throw new ArgumentError(message);
>> +                       COMPILE::AS3
>> +                       {
>> +                   throw new ArgumentError(message);
>> +                       }
>> +                       COMPILE::JS
>> +                       {
>> +                               throw new Error(message);
>> +                       }
>>         }
>>     }
>> 
>> @@ -12363,7 +12471,7 @@ public class UIComponent extends UIBase
>>         g.clear();
>>         g.beginFill(color);
>> 
>> -        g.drawRoundRect(targetArea.x, targetArea.y,
>> +        g.drawRoundRect(targetArea.left, targetArea.top,
>>                         targetArea.width, targetArea.height,
>>                         targetArea.cornerRadius * 2,
>>                         targetArea.cornerRadius * 2);
>> @@ -12592,6 +12700,7 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::LATER
>>     public function createReferenceOnParentDocument(
>>                         parentDocument:IFlexDisplayObject):void
>>     {
>> @@ -12645,6 +12754,7 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::LATER
>>     public function deleteReferenceOnParentDocument(
>>                                 parentDocument:IFlexDisplayObject):void
>>     {
>> @@ -13043,8 +13153,16 @@ public class UIComponent extends UIBase
>>     {
>>         //reset systemManager in case we've been reparented to a new
>> Window.
>>         //systemManager will be set on get systemManager()
>> -        if (event.eventPhase != EventPhase.AT_TARGET)
>> -            return;
>> +               COMPILE::AS3
>> +               {
>> +               if (event.eventPhase != EventPhase.AT_TARGET)
>> +                   return;
>> +               }
>> +               COMPILE::JS
>> +               {
>> +                       if (event.target != event.currentTarget)
>> +                               return;
>> +               }
>> 
>>         try
>>         {
>> @@ -13054,10 +13172,15 @@ public class UIComponent extends UIBase
>>                 return;
>>             }
>>         }
>> -        catch (error:SecurityError)
>> -        {
>> -
>> -        }
>> +               catch (e:Error)
>> +               {
>> +                       // trace("UIComponent.get parent(): " + e);
>> +                       COMPILE::AS3
>> +                       {
>> +                               if (!(e is SecurityError))
>> +                                       throw e;
>> +                       }
>> +               }
>>     }
>> 
>>     /**
>> @@ -13066,8 +13189,16 @@ public class UIComponent extends UIBase
>>      */
>>     private function removedHandler(event:flex.events.Event):void
>>     {
>> -        if (event.eventPhase != EventPhase.AT_TARGET)
>> -            return;
>> +               COMPILE::AS3
>> +               {
>> +               if (event.eventPhase != EventPhase.AT_TARGET)
>> +                   return;
>> +               }
>> +               COMPILE::JS
>> +               {
>> +                       if (event.target != event.currentTarget)
>> +                               return;
>> +               }
>> 
>>         try
>>         {
>> @@ -13077,10 +13208,15 @@ public class UIComponent extends UIBase
>>                 return;
>>             }
>>         }
>> -        catch (error:SecurityError)
>> -        {
>> -
>> -        }
>> +               catch (e:Error)
>> +               {
>> +                       // trace("UIComponent.get parent(): " + e);
>> +                       COMPILE::AS3
>> +                       {
>> +                               if (!(e is SecurityError))
>> +                                       throw e;
>> +                       }
>> +               }
>>     }
>> 
>>     /**
>> @@ -13350,11 +13486,17 @@ public class UIComponent extends UIBase
>>                     child = child.parent;
>>             }
>>         }
>> -        catch (e:SecurityError)
>> -        {
>> -            // You can't own what you don't have access to.
>> -            return false;
>> -        }
>> +               catch (e:Error)
>> +               {
>> +                       // trace("UIComponent.get parent(): " + e);
>> +                       COMPILE::AS3
>> +                       {
>> +                               if (!(e is SecurityError))
>> +                                       throw e;
>> +                       }
>> +                       // You can't own what you don't have access to.
>> +                       return false;
>> +               }
>> 
>>         return child == this;
>>     }
>> @@ -13784,6 +13926,8 @@ public class UIComponent extends UIBase
>>             else
>>                 current = current.parent;
>> 
>> +                       COMPILE::AS3
>> +                       {
>>             if (current && current.scrollRect)
>>             {
>>                 // clip the bounds by the scroll rect
>> @@ -13793,6 +13937,7 @@ public class UIComponent extends UIBase
>>                 currentRect.y = pt.y;
>>                 bounds =
>> Rectangle.convert(bounds.intersection(currentRect));
>>             }
>> +                       }
>>         } while (current && current != targetParent);
>> 
>>         return bounds;
>> @@ -13851,6 +13996,7 @@ public class UIComponent extends UIBase
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::AS3
>>     override public function get mouseX():Number
>>     {
>>         if (!root || root is TopOfDisplayList || root[fakeMouseX] ===
>> undefined)
>> @@ -13861,6 +14007,7 @@ public class UIComponent extends UIBase
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::AS3
>>     override public function get mouseY():Number
>>     {
>>         if (!root || root is TopOfDisplayList || root[fakeMouseY] ===
>> undefined)
>> @@ -14414,6 +14561,7 @@ public class UIComponent extends UIBase
>>      *  @playerversion AIR 1.5
>>      *  @productversion Flex 4
>>      */
>> +       COMPILE::LATER
>>     protected function applyComputedMatrix():void
>>     {
>>         _layoutFeatures.updatePending = false;
>> @@ -14759,6 +14907,38 @@ public class UIComponent extends UIBase
>>             return super.transform.matrix;
>>         }
>>     }
>> +
>> +
>> //--------------------------------------------------------------------------
>> +       //
>> +       //  Overridden methods
>> +       //
>> +
>> //--------------------------------------------------------------------------
>> +
>> +       /**
>> +        *  Returns a string indicating the location of this object
>> +        *  within the hierarchy of DisplayObjects in the Application.
>> +        *  This string, such as <code>"MyApp0.HBox5.Button17"</code>,
>> +        *  is built by the <code>displayObjectToString()</code> method
>> +        *  of the mx.utils.NameUtils class from the <code>name</code>
>> +        *  property of the object and its ancestors.
>> +        *
>> +        *  @return A String indicating the location of this object
>> +        *  within the DisplayObject hierarchy.
>> +        *
>> +        *  @see flash.display.DisplayObject#name
>> +        *  @see mx.utils.NameUtil#displayObjectToString()
>> +        *
>> +        *  @langversion 3.0
>> +        *  @playerversion Flash 9
>> +        *  @playerversion AIR 1.1
>> +        *  @productversion Flex 3
>> +        */
>> +       COMPILE::JS
>> +       public function toString():String
>> +       {
>> +               return NameUtil.displayObjectToString(this);
>> +       }
>> +
>> }
>> 
>> }
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
>> ----------------------------------------------------------------------
>> diff --git a/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
>> b/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
>> index 28d61ae..6f4242b 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
>> @@ -429,8 +429,11 @@ public class UITextField extends TextField
>>     {
>>         _x = value;
>>         super.x = value;
>> +               COMPILE::LATER
>> +               {
>>         if (mirror)
>>             validateTransformMatrix();
>> +               }
>>     }
>> 
>>     /**
>> @@ -455,8 +458,11 @@ public class UITextField extends TextField
>>         var changed:Boolean = super.width != value;
>> 
>>         super.width = value;
>> +               COMPILE::LATER
>> +               {
>>         if (mirror)
>>             validateTransformMatrix();
>> +               }
>> 
>>         // Since changing the width may reflow the text which can
>>         // change the textWidth and/or textHeight dispatch an event so
>> @@ -783,6 +789,7 @@ public class UITextField extends TextField
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::LATER
>>     public function get className():String
>>     {
>>         return NameUtil.getUnqualifiedClassName(this);
>> @@ -888,6 +895,7 @@ public class UITextField extends TextField
>>      *  @private
>>      *  Storage for the explicitHeight property.
>>      */
>> +       COMPILE::AS3
>>     private var _explicitHeight:Number;
>> 
>>     /**
>> @@ -898,6 +906,7 @@ public class UITextField extends TextField
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::AS3
>>     public function get explicitHeight():Number
>>     {
>>         return _explicitHeight;
>> @@ -906,6 +915,7 @@ public class UITextField extends TextField
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::AS3
>>     public function set explicitHeight(value:Number):void
>>     {
>>         _explicitHeight = value;
>> @@ -1003,6 +1013,7 @@ public class UITextField extends TextField
>>      *  @private
>>      *  Storage for the explicitWidth property.
>>      */
>> +       COMPILE::AS3
>>     private var _explicitWidth:Number;
>> 
>>     /**
>> @@ -1013,6 +1024,7 @@ public class UITextField extends TextField
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::AS3
>>     public function get explicitWidth():Number
>>     {
>>         return _explicitWidth;
>> @@ -1021,6 +1033,7 @@ public class UITextField extends TextField
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::AS3
>>     public function set explicitWidth(value:Number):void
>>     {
>>         _explicitWidth = value;
>> @@ -1583,6 +1596,7 @@ public class UITextField extends TextField
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::AS3
>>     public function get percentHeight():Number
>>     {
>>         return NaN;
>> @@ -1591,6 +1605,7 @@ public class UITextField extends TextField
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::AS3
>>      public function set percentHeight(value:Number):void
>>      {
>>      }
>> @@ -1607,6 +1622,7 @@ public class UITextField extends TextField
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +        COMPILE::AS3
>>     public function get percentWidth():Number
>>     {
>>         return NaN;
>> @@ -1615,6 +1631,7 @@ public class UITextField extends TextField
>>     /**
>>      *  @private
>>      */
>> +       COMPILE::AS3
>>      public function set percentWidth(value:Number):void
>>      {
>>      }
>> @@ -1717,6 +1734,10 @@ public class UITextField extends TextField
>>             styleChanged("styleName");
>>         }
>> 
>> +               COMPILE::JS
>> +               {
>> +                       element.className = styleName.toString();
>> +               }
>>         // If we don't have a parent pointer yet, then we'll wait
>>         // and initialize the proto chain when the parentChanged()
>>         // method is called.
>> @@ -1922,7 +1943,9 @@ public class UITextField extends TextField
>> 
>>     /**
>>      *  @private
>> +        *  TODO (aharui): I'm not seeing this in the doc
>>      */
>> +       COMPILE::LATER
>>     override public function insertXMLText(beginIndex:int, endIndex:int,
>>                                            richText:String,
>>                                            pasting:Boolean = false):void
>> @@ -2016,6 +2039,7 @@ public class UITextField extends TextField
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::AS3
>>     public function setFocus():void
>>     {
>>         systemManager.topOfDisplayList.focus = this;
>> @@ -2215,8 +2239,11 @@ public class UITextField extends TextField
>>         {
>>             const oldMirror:Boolean = mirror;
>>             mirror = getStyle("layoutDirection") == LayoutDirection.RTL;
>> +                       COMPILE::LATER
>> +                       {
>>             if (mirror || oldMirror)
>>                 validateTransformMatrix();
>> +                       }
>>         }
>> 
>>         // Set the text format.
>> @@ -2265,6 +2292,7 @@ public class UITextField extends TextField
>>      *  Update the transform.matrix based on the mirror flag.  This
>> method must be
>>      *  called when x, width, or layoutDirection changes.
>>      */
>> +       COMPILE::LATER
>>     private function validateTransformMatrix():void
>>     {
>>         if (mirror)
>> @@ -2375,6 +2403,7 @@ public class UITextField extends TextField
>>      *  @playerversion AIR 1.1
>>      *  @productversion Flex 3
>>      */
>> +       COMPILE::AS3
>>     public function setColor(color:uint):void
>>     {
>>         explicitColor = color;
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
>> ----------------------------------------------------------------------
>> diff --git a/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
>> b/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
>> index 08ba3aa..bcc7c48 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
>> @@ -20,8 +20,16 @@
>> package mx.core
>> {
>> 
>> -import flash.text.TextFormat;
>> -import flex.text.TextLineMetrics;
>> +COMPILE::AS3
>> +{
>> +       import flash.text.TextFormat;
>> +       import flash.text.TextLineMetrics;
>> +}
>> +COMPILE::JS
>> +{
>> +       import flex.text.TextFormat;
>> +       import flex.text.TextLineMetrics;
>> +}
>> 
>> import mx.managers.ISystemManager;
>> 
>> @@ -639,7 +647,10 @@ public class UITextFormat extends TextFormat
>>         letterSpacing = source.letterSpacing;
>>         blockIndent = source.blockIndent;
>>         bullet = source.bullet;
>> +               COMPILE::LATER
>> +               {
>>         display = source.display;
>> +               }
>>         indent = source.indent;
>>         kerning = source.kerning;
>>         tabStops = source.tabStops;
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
>> b/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
>> index e675265..f54f656 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
>> @@ -470,20 +470,36 @@ public class EffectManager extends EventDispatcher
>>                 if (info.vectorEffectsCount == 0 &&
>>                     target is IDeferredInstantiationUIComponent)
>>                 {
>> -
>> IDeferredInstantiationUIComponent(target).cacheHeuristic = true;
>> +                                       COMPILE::LATER
>> +                                       {
>> +
>> IDeferredInstantiationUIComponent(target).cacheHeuristic = true;
>> +                                       }
>>                 }
>>             }
>>             else
>>             {
>> -                // If a vector effect started playing, forcibly uncache
>> -                // the target regardless of anything else.
>> -                if (info.vectorEffectsCount++ == 0 &&
>> -                    target is IDeferredInstantiationUIComponent &&
>> -                    IDeferredInstantiationUIComponent(target).cachePolicy
>> == UIComponentCachePolicy.AUTO)
>> -                {
>> -                    target.cacheAsBitmap = false;
>> -                }
>> -            }
>> +                               COMPILE::LATER
>> +                               {
>> +                       // If a vector effect started playing, forcibly
>> uncache
>> +                       // the target regardless of anything else.
>> +                       if (info.vectorEffectsCount++ == 0 &&
>> +                           target is IDeferredInstantiationUIComponent &&
>> +
>> IDeferredInstantiationUIComponent(target).cachePolicy ==
>> UIComponentCachePolicy.AUTO)
>> +                       {
>> +                           target.cacheAsBitmap = false;
>> +                       }
>> +                   }
>> +                               // If a vector effect started playing,
>> forcibly uncache
>> +                               // the target regardless of anything else.
>> +                               if (info.vectorEffectsCount++ == 0 &&
>> +                                       target is
>> IDeferredInstantiationUIComponent)
>> +                               {
>> +                                       COMPILE::LATER
>> +                                       {
>> +                                       target.cacheAsBitmap = false;
>> +                                       }
>> +                               }
>> +                       }
>>         }
>>         else // effect end
>>         {
>> @@ -492,8 +508,11 @@ public class EffectManager extends EventDispatcher
>>                 if (info.bitmapEffectsCount != 0)
>>                     info.bitmapEffectsCount--;
>> 
>> +                               COMPILE::LATER
>> +                               {
>>                 if (target is IDeferredInstantiationUIComponent)
>> 
>> IDeferredInstantiationUIComponent(target).cacheHeuristic = false;
>> +                               }
>>             }
>>             else
>>             {
>> @@ -506,11 +525,14 @@ public class EffectManager extends EventDispatcher
>>                     {
>>                         // Crank up the counter.
>>                         n = info.bitmapEffectsCount;
>> +                                               COMPILE::LATER
>> +                                               {
>>                         for (i = 0; i < n; i++)
>>                         {
>>                             if (target is
>> IDeferredInstantiationUIComponent)
>> 
>> IDeferredInstantiationUIComponent(target).cacheHeuristic = true;
>>                         }
>> +                                               }
>>                     }
>>                 }
>>             }
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
>> b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
>> index c8a250d..6f31e27 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
>> @@ -54,6 +54,7 @@ COMPILE::JS
>>        import flex.display.MovieClip;
>>        import flex.display.Sprite;
>>        import flex.events.Event;
>> +       import org.apache.flex.events.MouseEvent;
>>        import flex.events.EventPhase;
>>        import flex.ui.Keyboard;
>> 
>> @@ -301,6 +302,7 @@ public class SystemManager extends MovieClip
>>                COMPILE::JS
>>                {
>>                        initHandler(null);
>> +                       super.addEventListener(MouseEvent.MOUSE_MOVE,
>> js_mouseMoveHandler);
>>                }
>> 
>>     }
>> @@ -841,18 +843,9 @@ public class SystemManager extends MovieClip
>> 
>>         if (!_cursorChildren)
>>         {
>> -                       COMPILE::AS3
>> -                       {
>>             _cursorChildren = new SystemChildrenList(this,
>>                 new QName(mx_internal, "toolTipIndex"),
>>                 new QName(mx_internal, "cursorIndex"));
>> -                       }
>> -                       COMPILE::JS
>> -                       {
>> -                               _cursorChildren = new
>> SystemChildrenList(this,
>> -                                       "toolTipIndex",
>> -                                       "cursorIndex");
>> -                       }
>>         }
>> 
>>         return _cursorChildren;
>> @@ -1409,18 +1402,9 @@ public class SystemManager extends MovieClip
>> 
>>         if (!_popUpChildren)
>>         {
>> -                       COMPILE::AS3
>> -                       {
>>             _popUpChildren = new SystemChildrenList(this,
>>                 new QName(mx_internal, "noTopMostIndex"),
>>                 new QName(mx_internal, "topMostIndex"));
>> -                       }
>> -                       COMPILE::JS
>> -                       {
>> -                               _popUpChildren = new
>> SystemChildrenList(this,
>> -                                       "noTopMostIndex",
>> -                                       "topMostIndex");
>> -                       }
>>         }
>> 
>>         return _popUpChildren;
>> @@ -1513,18 +1497,9 @@ public class SystemManager extends MovieClip
>> 
>>         if (!_toolTipChildren)
>>         {
>> -                       COMPILE::AS3
>> -                       {
>>             _toolTipChildren = new SystemChildrenList(this,
>>                 new QName(mx_internal, "topMostIndex"),
>>                 new QName(mx_internal, "toolTipIndex"));
>> -                       }
>> -                       COMPILE::JS
>> -                       {
>> -                               _toolTipChildren = new
>> SystemChildrenList(this,
>> -                                       "topMostIndex",
>> -                                       "toolTipIndex");
>> -                       }
>>         }
>> 
>>         return _toolTipChildren;
>> @@ -2206,16 +2181,8 @@ public class SystemManager extends MovieClip
>>         // we redirect public API to parent systemmanager
>>         if (!_popUpChildren)
>>         {
>> -                       COMPILE::AS3
>> -                       {
>>                                _popUpChildren = new SystemChildrenList(
>>                                        this, new QName(mx_internal,
>> "noTopMostIndex"), new QName(mx_internal, "topMostIndex"));
>> -                       }
>> -                       COMPILE::JS
>> -                       {
>> -                               _popUpChildren = new SystemChildrenList(
>> -                                       this, "noTopMostIndex",
>> "topMostIndex");
>> -                       }
>>         }
>>         _popUpChildren.addChild(preloader);
>> 
>> @@ -3971,6 +3938,16 @@ public class SystemManager extends MovieClip
>>                return _topOfDisplayList;
>>        }
>> 
>> +       /**
>> +        *  @private
>> +        *  Track mouse moves in order to determine idle
>> +        */
>> +       COMPILE::JS
>> +       private function js_mouseMoveHandler(event:MouseEvent):void
>> +       {
>> +               SystemManagerGlobals.lastMouseEvent = event;
>> +       }
>> +
>> 
>> }
>> 
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
>> b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
>> index 4b19eeb..c360df8 100644
>> ---
>> a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
>> +++
>> b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
>> @@ -19,6 +19,10 @@
>> 
>> package mx.managers
>> {
>> +COMPILE::JS
>> +{
>> +       import org.apache.flex.events.MouseEvent;
>> +}
>> 
>> [ExcludeClass]
>> 
>> @@ -50,6 +54,11 @@ public class SystemManagerGlobals
>>         *  in the application..
>>      */
>>        public static var parameters:Object;
>> +
>> +       COMPILE::JS
>> +       {
>> +               public static var lastMouseEvent:MouseEvent;
>> +       }
>> }
>> 
>> }
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
>> b/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
>> index a882de4..a1c6f2f 100644
>> ---
>> a/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
>> +++
>> b/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
>> @@ -1251,7 +1251,10 @@ public class ToolTipManagerImpl extends
>> EventDispatcher
>> 
>>             var pos:Point = new Point(x, y);
>>             pos = PointUtils.localToGlobal(pos, sm);
>> -            pos = PointUtils.globalToLocal(pos, sm.getSandboxRoot());
>> +                       COMPILE::LATER
>> +                       {
>> +                   pos = PointUtils.globalToLocal(pos,
>> sm.getSandboxRoot());
>> +                       }
>>             x = pos.x;
>>             y = pos.y;
>>         }
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
>> ----------------------------------------------------------------------
>> diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
>> b/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
>> index b1f31f2..a6f1591 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
>> @@ -33,6 +33,7 @@ import flash.utils.flash_proxy;
>> COMPILE::JS
>> {
>>        import org.apache.flex.events.Event;
>> +       import flex.utils.IExternalizable;
>> }
>> import org.apache.flex.utils.Proxy;
>> import mx.core.IPropertyChangeNotifier;
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
>> ----------------------------------------------------------------------
>> diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
>> b/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
>> index 6a19b2e..b9de66c 100644
>> --- a/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
>> +++ b/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
>> @@ -21,7 +21,7 @@ package mx.utils
>> {
>> 
>> import flash.system.Capabilities;
>> -import flash.utils.getDefinitionByName;
>> +import org.apache.flex.reflection.getDefinitionByName;
>> 
>> /**
>>  *  The Platform utility class contains several static methods to check
>> what
>> 
>> 
>> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
>> ----------------------------------------------------------------------
>> diff --git
>> a/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
>> b/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
>> index 57a36d3..63e54ff 100644
>> --- a/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
>> +++ b/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
>> @@ -30,7 +30,7 @@
>> 
>> <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
>> 
>> <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
>> 
>> <binding-value-change-event-type>valueChange</binding-value-change-event-type>
>> -
>> +        <allow-subclass-overrides>true</allow-subclass-overrides>
>>         <keep-as3-metadata>
>>           <name>Bindable</name>
>>           <name>Managed</name>
>> @@ -49,6 +49,8 @@
>>             <path-element>../../../../../externs/Core.swc</path-element>
>> 
>> <path-element>../../../../../externs/Graphics.swc</path-element>
>> 
>> <path-element>../../../../../externs/Collections.swc</path-element>
>> +
>> <path-element>../../../../../externs/Reflection.swc</path-element>
>> +            <path-element>../../../../../externs/HTML.swc</path-element>
>>         </library-path>
>> 
>>         <namespaces>
>> 
>> 


Re: [37/37] git commit: [flex-asjs] [refs/heads/spark] - under 100 errors

Posted by OmPrakash Muppirala <bi...@gmail.com>.
On Thu, Mar 24, 2016 at 12:59 PM, <ah...@apache.org> wrote:

> under 100 errors
>

woohoo!


>
>
> Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
> Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/a23bd593
> Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/a23bd593
> Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/a23bd593
>
> Branch: refs/heads/spark
> Commit: a23bd593f77438cf52898e8b72c988563f2ca9d8
> Parents: 93ca6b8
> Author: Alex Harui <ah...@apache.org>
> Authored: Thu Mar 24 12:59:08 2016 -0700
> Committer: Alex Harui <ah...@apache.org>
> Committed: Thu Mar 24 12:59:08 2016 -0700
>
> ----------------------------------------------------------------------
>  .../main/flex/org/apache/flex/core/IChild.as    |  22 +-
>  .../src/main/flex/flex/display/DisplayObject.as |   7 +-
>  .../MX/src/main/flex/flex/display/Graphics.as   |   2 +-
>  .../MX/src/main/flex/flex/display/MovieClip.as  | 190 +++++++++
>  .../MX/src/main/flex/flex/display/Sprite.as     |  28 ++
>  .../main/flex/flex/display/TopOfDisplayList.as  |  21 +-
>  .../MX/src/main/flex/flex/system/I18NManager.as |   7 +
>  .../MX/src/main/flex/flex/text/TextField.as     | 394 ++-----------------
>  .../src/main/flex/flex/utils/IExternalizable.as |  26 ++
>  .../MX/src/main/flex/mx/binding/Watcher.as      |   3 +
>  .../MX/src/main/flex/mx/controls/ToolTip.as     |  42 +-
>  .../core/IDeferredInstantiationUIComponent.as   |   4 +
>  .../mx/core/IDisplayObjectContainerInterface.as |  47 ++-
>  .../flex/mx/core/IDisplayObjectInterface.as     |  30 +-
>  .../src/main/flex/mx/core/IFlexDisplayObject.as |   1 -
>  .../MX/src/main/flex/mx/core/IVisualElement.as  |   2 +
>  .../MX/src/main/flex/mx/core/UIComponent.as     | 238 +++++++++--
>  .../MX/src/main/flex/mx/core/UITextField.as     |  29 ++
>  .../MX/src/main/flex/mx/core/UITextFormat.as    |  15 +-
>  .../src/main/flex/mx/effects/EffectManager.as   |  42 +-
>  .../src/main/flex/mx/managers/SystemManager.as  |  47 +--
>  .../flex/mx/managers/SystemManagerGlobals.as    |   9 +
>  .../main/flex/mx/managers/ToolTipManagerImpl.as |   5 +-
>  .../MX/src/main/flex/mx/utils/ObjectProxy.as    |   1 +
>  .../MX/src/main/flex/mx/utils/Platform.as       |   2 +-
>  .../src/main/resources/compile-asjs-config.xml  |   4 +-
>  26 files changed, 720 insertions(+), 498 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
> b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
> index 6052094..f273f2e 100755
> --- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
> +++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
> @@ -42,18 +42,18 @@ package org.apache.flex.core
>           *  @playerversion AIR 2.6
>           *  @productversion FlexJS 0.0
>           */
> -        COMPILE::AS3
> +               COMPILE::AS3
>          function get parent():DisplayObjectContainer;
>
> -        /**
> -         *  The parent.
> -         *
> -         *  @langversion 3.0
> -         *  @playerversion Flash 10.2
> -         *  @playerversion AIR 2.6
> -         *  @productversion FlexJS 0.0
> -         */
> -        COMPILE::JS
> -        function get parent():IUIBase;
> +               /**
> +                *  The parent.
> +                *
> +                *  @langversion 3.0
> +                *  @playerversion Flash 10.2
> +                *  @playerversion AIR 2.6
> +                *  @productversion FlexJS 0.0
> +                */
> +               COMPILE::JS
> +               function get parent():IUIBase;
>         }
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
> b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
> index 2568582..bf0598b 100644
> --- a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
> +++ b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
> @@ -18,6 +18,11 @@
>
>  ////////////////////////////////////////////////////////////////////////////////
>  package flex.display
>  {
> +COMPILE::AS3
> +{
> +       import flash.display.DisplayObject;
> +       import flash.display.DisplayObjectContainer;
> +}
>  import flex.display.TopOfDisplayList;
>
>  import org.apache.flex.core.IUIBase;
> @@ -25,7 +30,7 @@ import org.apache.flex.events.IEventDispatcher;
>  import org.apache.flex.geom.Point;
>  import org.apache.flex.geom.Rectangle;
>
> -public interface DisplayObject extends IEventDispatcher
> +public interface DisplayObject extends IEventDispatcher, IUIBase
>  {
>         include "../../mx/core/IDisplayObjectInterface.as"
>
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
> ----------------------------------------------------------------------
> diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
> b/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
> index fe6f0ec..1a83c3c 100644
> --- a/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
> +++ b/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
> @@ -69,7 +69,7 @@ package flex.display
>                 public function curveTo(mx:Number, my:Number, x:Number,
> y:Number):void
>                 {
>                         var path:String = "M " + lastX.toString() + " " +
> lastY.toString();
> -                       path += "Q " + mx.toString() + " " + my.toString()
> + " " +
> +                       path += "Q " + mx.toString() + " " + my.toString()
> + " "
>                                                 + x.toString() + " " +
> y.toString();
>                         host.drawPath(path);
>                         lastX = x;
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
> b/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
> index 6f1fca9..8add311 100644
> --- a/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
> +++ b/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
> @@ -19,6 +19,195 @@
>
>  package flex.display
>  {
> +       import org.apache.flex.core.IBead;
> +       import org.apache.flex.core.IBeadModel;
> +       import org.apache.flex.core.IBeadView;
> +       import org.apache.flex.core.IFlexJSElement;
> +       import org.apache.flex.core.ValuesManager;
> +       import org.apache.flex.events.Event;
> +       import org.apache.flex.events.IEventDispatcher;
> +
> +       COMPILE::AS3
> +       {
> +               import flash.display.MovieClip;
> +       }
> +       COMPILE::JS
> +       {
> +               import flex.display.DisplayObjectContainer;
> +       }
> +
> +       COMPILE::AS3
> +       public class MovieClip extends flash.display.MovieClip
> +       {
> +               COMPILE::AS3
> +               private var _model:IBeadModel;
> +
> +               /**
> +                *  An IBeadModel that serves as the data model for the
> component.
> +                *
> +                *  @langversion 3.0
> +                *  @playerversion Flash 10.2
> +                *  @playerversion AIR 2.6
> +                *  @productversion FlexJS 0.0
> +                */
> +               COMPILE::AS3
> +               public function get model():Object
> +               {
> +                       if (_model == null)
> +                       {
> +                               // addbead will set _model
> +                               addBead(new
> (ValuesManager.valuesImpl.getValue(this, "iBeadModel")) as IBead);
> +                       }
> +                       return _model;
> +               }
> +
> +               /**
> +                *  @private
> +                */
> +               COMPILE::AS3
> +               public function set model(value:Object):void
> +               {
> +                       if (_model != value)
> +                       {
> +                               addBead(value as IBead);
> +                               dispatchEvent(new Event("modelChanged"));
> +                       }
> +               }
> +
> +               private var _view:IBeadView;
> +
> +               /**
> +                *  An IBeadView that serves as the view for the component.
> +                *
> +                *  @langversion 3.0
> +                *  @playerversion Flash 10.2
> +                *  @playerversion AIR 2.6
> +                *  @productversion FlexJS 0.0
> +                *  @flexjsignorecoercion Class
> +                */
> +               public function get view():IBeadView
> +               {
> +                       if (_view == null)
> +                       {
> +                               var c:Class =
> ValuesManager.valuesImpl.getValue(this, "iBeadView") as Class;
> +                               if (c)
> +                               {
> +                                       if (c)
> +                                       {
> +                                               _view = (new c()) as
> IBeadView;
> +                                               addBead(_view);
> +                                       }
> +                               }
> +                       }
> +                       return _view;
> +               }
> +
> +               /**
> +                *  @private
> +                */
> +               public function set view(value:IBeadView):void
> +               {
> +                       if (_view != value)
> +                       {
> +                               addBead(value as IBead);
> +                               dispatchEvent(new Event("viewChanged"));
> +                       }
> +               }
> +
> +               /**
> +                *  @copy org.apache.flex.core.IUIBase#element
> +                *
> +                *  @langversion 3.0
> +                *  @playerversion Flash 10.2
> +                *  @playerversion AIR 2.6
> +                *  @productversion FlexJS 0.0
> +                */
> +               public function get element():IFlexJSElement
> +               {
> +                       return this;
> +               }
> +
> +               /**
> +                *  @copy org.apache.flex.core.Application#beads
> +                *
> +                *  @langversion 3.0
> +                *  @playerversion Flash 10.2
> +                *  @playerversion AIR 2.6
> +                *  @productversion FlexJS 0.0
> +                */
> +               public var beads:Array;
> +
> +               private var _beads:Vector.<IBead>;
> +
> +               /**
> +                *  @copy org.apache.flex.core.IStrand#addBead()
> +                *
> +                *  @langversion 3.0
> +                *  @playerversion Flash 10.2
> +                *  @playerversion AIR 2.6
> +                *  @productversion FlexJS 0.0
> +                */
> +               override public function addBead(bead:IBead):void
> +               {
> +                       if (!_beads)
> +                               _beads = new Vector.<IBead>;
> +                       _beads.push(bead);
> +                       if (bead is IBeadModel)
> +                               _model = bead as IBeadModel;
> +                       else if (bead is IBeadView)
> +                               _view = bead as IBeadView;
> +                       bead.strand = this;
> +
> +                       if (bead is IBeadView) {
> +                               IEventDispatcher(this).dispatchEvent(new
> Event("viewChanged"));
> +                       }
> +               }
> +
> +               /**
> +                *  @copy org.apache.flex.core.IStrand#getBeadByType()
> +                *
> +                *  @langversion 3.0
> +                *  @playerversion Flash 10.2
> +                *  @playerversion AIR 2.6
> +                *  @productversion FlexJS 0.0
> +                */
> +               public function getBeadByType(classOrInterface:Class):IBead
> +               {
> +                       for each (var bead:IBead in _beads)
> +                       {
> +                               if (bead is classOrInterface)
> +                                       return bead;
> +                       }
> +                       return null;
> +               }
> +
> +               /**
> +                *  @copy org.apache.flex.core.IStrand#removeBead()
> +                *
> +                *  @langversion 3.0
> +                *  @playerversion Flash 10.2
> +                *  @playerversion AIR 2.6
> +                *  @productversion FlexJS 0.0
> +                */
> +               public function removeBead(value:IBead):IBead
> +               {
> +                       var n:int = _beads.length;
> +                       for (var i:int = 0; i < n; i++)
> +                       {
> +                               var bead:IBead = _beads[i];
> +                               if (bead == value)
> +                               {
> +                                       _beads.splice(i, 1);
> +                                       return bead;
> +                               }
> +                       }
> +                       return null;
> +               }
> +
> +
> +       }
> +
> +       COMPILE::JS
>         public class MovieClip extends Sprite
>         {
>                 public function get totalFrames():int
> @@ -29,5 +218,6 @@ package flex.display
>                 {
>                         return 1;
>                 }
> +
>         }
>  }
> \ No newline at end of file
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
> ----------------------------------------------------------------------
> diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
> b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
> index 99dd7c4..bd29b87 100644
> --- a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
> +++ b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
> @@ -20,6 +20,9 @@
>  package flex.display
>  {
>         import org.apache.flex.core.graphics.GraphicsContainer;
> +       import org.apache.flex.geom.Point;
> +       import org.apache.flex.utils.PointUtils;
> +       import mx.managers.SystemManagerGlobals;
>
>         public class Sprite extends GraphicsContainer implements
> DisplayObjectContainer
>         {
> @@ -147,5 +150,30 @@ package flex.display
>                         return _graphics
>                 }
>
> +               COMPILE::JS
> +               public function get mouseX():Number
> +               {
> +                       var pt:Point = new
> Point(SystemManagerGlobals.lastMouseEvent.screenX,
> +
> SystemManagerGlobals.lastMouseEvent.screenY);
> +                       pt = PointUtils.globalToLocal(pt, this);
> +                       return pt.x;
> +               }
> +
> +               COMPILE::JS
> +               public function get mouseY():Number
> +               {
> +                       var pt:Point = new
> Point(SystemManagerGlobals.lastMouseEvent.screenX,
> +
>  SystemManagerGlobals.lastMouseEvent.screenY);
> +                       pt = PointUtils.globalToLocal(pt, this);
> +                       return pt.x;
> +               }
> +
> +               COMPILE::JS
> +               override public function get
> parent():DisplayObjectContainer
> +               {
> +                       return super.parent as DisplayObjectContainer;
> +               }
> +
>         }
> +
>  }
> \ No newline at end of file
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
> b/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
> index 94dbf47..e5ef3e4 100644
> --- a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
> +++ b/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
> @@ -26,6 +26,8 @@ COMPILE::AS3
>  COMPILE::JS
>  {
>         import org.apache.flex.core.UIBase;
> +       import org.apache.flex.core.HTMLElementWrapper;
> +       import org.apache.flex.core.WrappedHTMLElement;
>  }
>
>  COMPILE::AS3
> @@ -52,12 +54,29 @@ public class TopOfDisplayList extends Stage
>  }
>
>  COMPILE::JS
> -public class TopOfDisplayList extends UIBase
> +public class TopOfDisplayList extends Sprite
>  {
>         public function TopOfDisplayList()
>         {
>                 super();
>         }
> +
> +       /**
> +        * @flexjsignorecoercion flex.display.InteractiveObject
> +        * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
> +        */
> +       public function get focus():InteractiveObject
> +       {
> +               return (document.activeElement as
> WrappedHTMLElement).flexjs_wrapper as InteractiveObject;
> +       }
> +
> +       /**
> +        * @flexjsignorecoercion org.apache.flex.core.HTMLElementWrapper
> +        */
> +       public function set focus(value:InteractiveObject):void
> +       {
> +               document.activeElement = (value as
> HTMLElementWrapper).element;
> +       }
>  }
>
>  }
> \ No newline at end of file
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
> b/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
> index c838d89..68e6cf4 100644
> --- a/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
> +++ b/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
> @@ -1,6 +1,9 @@
>  package flex.system
>  {
> +       COMPILE::AS3
> +       {
>         import flash.system.Capabilities;
> +       }
>
>         public class I18NManager
>         {
> @@ -19,6 +22,10 @@ package flex.system
>                                 else
>                                         return [ Capabilities.language ];
>                         }
> +                       COMPILE::JS
> +                       {
> +                               return [ navigator.language ];
> +                       }
>                 }
>         }
>  }
> \ No newline at end of file
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
> ----------------------------------------------------------------------
> diff --git a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
> b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
> index d8bde5f..116c7e3 100644
> --- a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
> +++ b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
> @@ -1,5 +1,6 @@
>  package flex.text
>  {
> +
>  COMPILE::AS3
>  {
>         import flash.text.TextField;
> @@ -30,7 +31,7 @@ public class TextField extends flash.text.TextField
>  }
>
>  COMPILE::JS
> -public class TextField extends Label implements IUITextField
> +public class TextField extends Label
>  {
>
>         private var _alwaysShowSelection:Boolean;
> @@ -94,12 +95,6 @@ public class TextField extends Label implements
> IUITextField
>                         element.style.backgroundColor = "#" +
> _backgroundColor.toString(16);
>         }
>
> -       public function get baselinePosition():Number
> -       {
> -               trace("TextField.baselinePosition not implemented");
> -               return 0;
> -       }
> -
>         private var _border:Boolean;
>         public function get border():Boolean
>         {
> @@ -179,16 +174,6 @@ public class TextField extends Label implements
> IUITextField
>                         (element as HTMLInputElement).type = "input";
>         }
>
> -       private var _document:Object;
> -       public function get document():Object
> -       {
> -               return _document;
> -       }
> -       public function set document(value:Object):void
> -       {
> -               _document = value;
> -       }
> -
>         private var _doubleClickEnabled:Boolean;
>         public function get doubleClickEnabled():Boolean
>         {
> @@ -213,58 +198,6 @@ public class TextField extends Label implements
> IUITextField
>                 trace("TextField.embedFonts not implemented");
>         }
>
> -       private var _enabled:Boolean;
> -       public function get enabled():Boolean
> -       {
> -               return _enabled;
> -       }
> -       public function set enabled(value:Boolean):void
> -       {
> -               _enabled = value;
> -       }
> -
> -       public function get enableIME():Boolean
> -       {
> -               trace("TextField.enableIME not implemented");
> -               return false;
> -       }
> -
> -       public function get explicitMaxWidth():Number
> -       {
> -               trace("TextField.explicitMaxWidth not implemented");
> -               return 0;
> -       }
> -
> -       public function get explicitMaxHeight():Number
> -       {
> -               trace("TextField.explicitMaxHeight not implemented");
> -               return 0;
> -       }
> -
> -       public function get explicitMinHeight():Number
> -       {
> -               trace("TextField.explicitMinHeight not implemented");
> -               return 0;
> -       }
> -
> -       public function get explicitMinWidth():Number
> -       {
> -               trace("TextField.explicitMinWidth not implemented");
> -               return 0;
> -       }
> -
> -       private var _focusPane:Sprite;
> -       public function get focusPane():Sprite
> -       {
> -               trace("TextField.focusPane not implemented");
> -               return _focusPane;
> -       }
> -       public function set focusPane(value:Sprite):void
> -       {
> -               _focusPane = value;
> -               trace("TextField.focusPane not implemented");
> -       }
> -
>         private var _focusRect:Object;
>         public function get focusRect():Object
>         {
> @@ -299,64 +232,6 @@ public class TextField extends Label implements
> IUITextField
>                 element.innerHTML = _htmlText = value;
>         }
>
> -       private var _ignorePadding:Boolean;
> -       public function get ignorePadding():Boolean
> -       {
> -               trace("TextField.ignorePadding not implemented");
> -               return _ignorePadding;
> -       }
> -       public function set ignorePadding(value:Boolean):void
> -       {
> -               _ignorePadding = value;
> -               trace("TextField.ignorePadding not implemented");
> -       }
> -
> -       private var _imeMode:String;
> -       public function get imeMode():String
> -       {
> -               return _imeMode;
> -       }
> -       public function set imeMode(value:String):void
> -       {
> -               _imeMode = value;
> -       }
> -
> -       private var _includeInLayout:Boolean;
> -       public function get includeInLayout():Boolean
> -       {
> -               trace("TextField.includeInLayout not implemented");
> -               return _includeInLayout;
> -       }
> -       public function set includeInLayout(value:Boolean):void
> -       {
> -               _includeInLayout = value;
> -               trace("TextField.includeInLayout not implemented");
> -       }
> -
> -       private var _inheritingStyles:Object;
> -       public function get inheritingStyles():Object
> -       {
> -               trace("TextField.inheritingStyles not implemented");
> -               return _inheritingStyles;
> -       }
> -       public function set inheritingStyles(value:Object):void
> -       {
> -               _inheritingStyles = value;
> -               trace("TextField.inheritingStyles not implemented");
> -       }
> -
> -       private var _isPopUp:Boolean;
> -       public function get isPopUp():Boolean
> -       {
> -               trace("TextField.isPopUp not implemented");
> -               return _isPopUp;
> -       }
> -       public function set isPopUp(value:Boolean):void
> -       {
> -               _isPopUp = value;
> -               trace("TextField.isPopUp not implemented");
> -       }
> -
>         public function get length():int
>         {
>                 return element.innerText.length;
> @@ -373,12 +248,6 @@ public class TextField extends Label implements
> IUITextField
>                 (element as HTMLInputElement).maxLength = value;
>         }
>
> -       public function get maxHeight():Number
> -       {
> -               trace("TextField.maxHeight not implemented");
> -               return 0;
> -       }
> -
>         public function get maxScrollH():int
>         {
>                 trace("TextField.maxScrollH not implemented");
> @@ -391,72 +260,6 @@ public class TextField extends Label implements
> IUITextField
>                 return 0;
>         }
>
> -       public function get maxWidth():Number
> -       {
> -               trace("TextField.maxWidth not implemented");
> -               return 0;
> -       }
> -
> -       public function get measuredHeight():Number
> -       {
> -               trace("TextField.measuredHeight not implemented");
> -               return 0;
> -       }
> -
> -       private var _measuredMinHeight:Number;
> -       public function get measuredMinHeight():Number
> -       {
> -               trace("TextField.measuredMinHeight not implemented");
> -               return _measuredMinHeight;
> -       }
> -       public function set measuredMinHeight(value:Number):void
> -       {
> -               _measuredMinHeight = value;
> -               trace("TextField.measuredMinHeight not implemented");
> -       }
> -
> -       public function get measuredWidth():Number
> -       {
> -               trace("TextField.measuredWidth not implemented");
> -               return 0;
> -       }
> -
> -       private var _measuredMinWidth:Number;
> -       public function get measuredMinWidth():Number
> -       {
> -               trace("TextField.measuredMinWidth not implemented");
> -               return _measuredMinWidth;
> -       }
> -       public function set measuredMinWidth(value:Number):void
> -       {
> -               _measuredMinWidth = value;
> -               trace("TextField.measuredMinWidth not implemented");
> -       }
> -
> -       public function get minHeight():Number
> -       {
> -               trace("TextField.minHeight not implemented");
> -               return 0;
> -       }
> -
> -       public function get minWidth():Number
> -       {
> -               trace("TextField.minWidth not implemented");
> -               return 0;
> -       }
> -
> -       private var _moduleFactory:IFlexModuleFactory;
> -       public function get moduleFactory():IFlexModuleFactory
> -       {
> -               trace("TextField.moduleFactory not implemented");
> -               return _moduleFactory;
> -       }
> -       public function set moduleFactory(value:IFlexModuleFactory):void
> -       {
> -               _moduleFactory = value;
> -               trace("TextField.moduleFactory not implemented");
> -       }
> -
>         private var _mouseEnabled:Boolean;
>         public function get mouseEnabled():Boolean
>         {
> @@ -481,6 +284,18 @@ public class TextField extends Label implements
> IUITextField
>                 trace("TextField.mouseWheelEnabled not implemented");
>         }
>
> +       public function get mouseX():Number
> +       {
> +               trace("TextField.mouseX not implemented");
> +               return 0;
> +       }
> +
> +       public function get mouseY():Number
> +       {
> +               trace("TextField.mouseY not implemented");
> +               return 0;
> +       }
> +
>         private var _multiline:Boolean;
>         public function get multiline():Boolean
>         {
> @@ -504,50 +319,12 @@ public class TextField extends Label implements
> IUITextField
>                 element.id = name;
>         }
>
> -       private var _owner:DisplayObjectContainer;
> -       public function get owner():DisplayObjectContainer
> -       {
> -               return _owner;
> -       }
> -       public function set owner(value:DisplayObjectContainer):void
> -       {
> -               _owner = value;
> -       }
> -
> -       private var _nestLevel:int;
> -       public function get nestLevel():int
> -       {
> -               return _nestLevel;
> -       }
> -       public function set nestLevel(value:int):void
> -       {
> -               _nestLevel = value;
> -       }
> -
> -       private var _nonInheritingStyles:Object;
> -       public function get nonInheritingStyles():Object
> -       {
> -               trace("TextField.nonInheritingStyles not implemented");
> -               return _nonInheritingStyles;
> -       }
> -       public function set nonInheritingStyles(value:Object):void
> -       {
> -               _nonInheritingStyles = value;
> -               trace("TextField.nonInheritingStyles not implemented");
> -       }
> -
> -       public function get nonZeroTextHeight():Number
> -       {
> -               trace("TextField.nonZeroTextHeight not implemented");
> -               return 0;
> -       }
> -
>         public function get numLines():int
>         {
>                 trace("TextField.numLines not implemented");
> -               return 0;
> +               return -1;
>         }
> -
> +
>         private var _restrict:String;
>         public function get restrict():String
>         {
> @@ -626,17 +403,6 @@ public class TextField extends Label implements
> IUITextField
>                 trace("TextField.sharpness not implemented");
>         }
>
> -       private var _styleName:Object;
> -       public function get styleName():Object
> -       {
> -               return _styleName;
> -       }
> -       public function set styleName(value:Object):void
> -       {
> -               _styleName = value;
> -               element.className = styleName.toString();
> -       }
> -
>         private var _styleSheet:StyleSheet;
>         public function get styleSheet():StyleSheet
>         {
> @@ -648,19 +414,7 @@ public class TextField extends Label implements
> IUITextField
>                 _styleSheet = value;
>                 trace("TextField.styleSheet not implemented");
>         }
> -
> -       private var _systemManager:ISystemManager;
> -       public function get systemManager():ISystemManager
> -       {
> -               trace("TextField.systemManager not implemented");
> -               return _systemManager;
> -       }
> -       public function set systemManager(value:ISystemManager):void
> -       {
> -               _systemManager = value;
> -               trace("TextField.systemManager not implemented");
> -       }
> -
> +
>         private var _tabEnabled:Boolean;
>         public function get tabEnabled():Boolean
>         {
> @@ -718,30 +472,6 @@ public class TextField extends Label implements
> IUITextField
>                 trace("TextField.thickness not implemented");
>         }
>
> -       private var _toolTip:String;
> -       public function get toolTip():String
> -       {
> -               trace("TextField.toolTip not implemented");
> -               return _toolTip;
> -       }
> -       public function set toolTip(value:String):void
> -       {
> -               _toolTip = value;
> -               trace("TextField.toolTip not implemented");
> -       }
> -
> -       private var _tweeningProperties:Array;
> -       public function get tweeningProperties():Array
> -       {
> -               trace("TextField.tweeningProperties not implemented");
> -               return _tweeningProperties;
> -       }
> -       public function set tweeningProperties(value:Array):void
> -       {
> -               _tweeningProperties = value;
> -               trace("TextField.tweeningProperties not implemented");
> -       }
> -
>         public function get topOfDisplayList():TopOfDisplayList
>         {
>                 trace("TextField.topOfDisplayList not implemented");
> @@ -801,18 +531,6 @@ public class TextField extends Label implements
> IUITextField
>                 return 0;
>         }
>
> -       public function getExplicitOrMeasuredHeight():Number
> -       {
> -               trace("TextField.getExplicitOrMeasuredHeight not
> implemented");
> -               return 0;
> -       }
> -
> -       public function getExplicitOrMeasuredWidth():Number
> -       {
> -               trace("TextField.getExplicitOrMeasuredWidth not
> implemented");
> -               return 0;
> -       }
> -
>         public function getFirstCharInParagraph(index:int):int
>         {
>                 trace("TextField.getFirstCharInParagraph not implemented");
> @@ -867,59 +585,12 @@ public class TextField extends Label implements
> IUITextField
>                 return 0;
>         }
>
> -       public function getStyle(styleName:String):*
> -       {
> -               trace("TextField.getStyle not implemented");
> -               return undefined;
> -       }
> -
>         public function getTextFormat(beginIndex:int = -1, endIndex:int =
> -1):TextFormat
>         {
>                 trace("TextField.getTextFormat not implemented");
>                 return null;
>         }
>
> -       public function getUITextFormat():UITextFormat
> -       {
> -               trace("TextField.getUITextFormat not implemented");
> -               return null;
> -       }
> -
> -       public function initialize():void
> -       {
> -               trace("TextField.initialize not implemented");
> -       }
> -
> -       public function invalidateDisplayList():void
> -       {
> -               trace("TextField.invalidateDisplayList not implemented");
> -       }
> -
> -       public function invalidateProperties():void
> -       {
> -               trace("TextField.invalidateProperties not implemented");
> -       }
> -
> -       public function invalidateSize():void
> -       {
> -               trace("TextField.invalidateSize not implemented");
> -       }
> -
> -       public function move(x:Number, y:Number):void
> -       {
> -               this.x = x;
> -               this.y = y;
> -       }
> -
> -       public function owns(child:DisplayObject):Boolean
> -       {
> -               return false;
> -       }
> -
> -       public function parentChanged(parent:DisplayObjectContainer):void
> -       {
> -       }
> -
>         public function replaceSelectedText(text:String):void
>         {
>                 trace("TextField.replaceSelectedText not implemented");
> @@ -930,11 +601,6 @@ public class TextField extends Label implements
> IUITextField
>                 trace("TextField.replaceText not implemented");
>         }
>
> -       public function setActualSize(x:Number, y:Number):void
> -       {
> -               setWidthAndHeight(x, y, true);
> -       }
> -
>         public function setColor(color:uint):void
>         {
>                 element.style.color = "#" + color.toString(16);
> @@ -955,29 +621,13 @@ public class TextField extends Label implements
> IUITextField
>                 trace("TextField.setTextFormat not implemented");
>         }
>
> -       public function setVisible(value:Boolean, noEvent:Boolean =
> false):void
> -       {
> -               if (value)
> -                       element.style.display = "inline";
> -               else
> -                       element.style.display = "none";
> -       }
> -
> -       public function styleChanged(styleProp:String):void
> -       {
> -               trace("TextField.styleChanged not implemented");
> -       }
> -
> -       public function truncateToFit(truncationIndicator:String =
> null):Boolean
> -       {
> -               trace("TextField.truncateToFit not implemented");
> -               return false;
> -       }
> -
> -       public function validateNow():void
> +       /**
> +        * @flexjsignorecoercion flex.display.DisplayObjectContainer
> +        */
> +       override public function get parent():DisplayObjectContainer
>         {
> +               return super.parent as DisplayObjectContainer;
>         }
> -
>
>  }
>  }
> \ No newline at end of file
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
> b/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
> new file mode 100644
> index 0000000..a75a480
> --- /dev/null
> +++ b/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
> @@ -0,0 +1,26 @@
>
> +////////////////////////////////////////////////////////////////////////////////
> +//
> +//  Licensed to the Apache Software Foundation (ASF) under one or more
> +//  contributor license agreements.  See the NOTICE file distributed with
> +//  this work for additional information regarding copyright ownership.
> +//  The ASF licenses this file to You under the Apache License, Version
> 2.0
> +//  (the "License"); you may not use this file except in compliance with
> +//  the License.  You may obtain a copy of the License at
> +//
> +//      http://www.apache.org/licenses/LICENSE-2.0
> +//
> +//  Unless required by applicable law or agreed to in writing, software
> +//  distributed under the License is distributed on an "AS IS" BASIS,
> +//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> +//  See the License for the specific language governing permissions and
> +//  limitations under the License.
> +//
>
> +////////////////////////////////////////////////////////////////////////////////
> +
> +package flex.utils
> +{
> +       public interface IExternalizable
> +       {
> +
> +       }
> +}
> \ No newline at end of file
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
> ----------------------------------------------------------------------
> diff --git a/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
> b/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
> index fef6ee3..c5855e1 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
> @@ -218,6 +218,8 @@ public class Watcher
>                     //   Error #1069: Property - not found on - and there
> is no default value
>                     //   Error #1507: - invalid null argument.
>                     // We allow any other errors to be thrown.
> +                               COMPILE::AS3
> +                               {
>                     if ((error.errorID != 1006) &&
>                         (error.errorID != 1009) &&
>                         (error.errorID != 1010) &&
> @@ -227,6 +229,7 @@ public class Watcher
>                     {
>                         throw error;
>                     }
> +                               }
>                         }
>          }
>      }
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
> ----------------------------------------------------------------------
> diff --git a/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
> b/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
> index f6a4b9f..ab63cd4 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
> @@ -20,9 +20,17 @@
>  package mx.controls
>  {
>
> -import flash.display.DisplayObject;
> -import flash.text.TextFieldAutoSize;
> -import flash.text.TextFormat;
> +COMPILE::AS3
> +{
> +       import flash.display.DisplayObject;
> +       import flash.text.TextFieldAutoSize;
> +       import flash.text.TextFormat;
> +}
> +COMPILE::JS
> +{
> +       import flex.display.DisplayObject;
> +       import flex.text.TextFormat;
> +}
>  import mx.core.EdgeMetrics;
>  import mx.core.IFlexDisplayObject;
>  import mx.core.IFlexModuleFactory;
> @@ -167,10 +175,13 @@ public class ToolTip extends UIComponent implements
> IToolTip, IFontContextCompon
>      {
>          super();
>
> -        // InteractiveObject variables.
> -        // Make the ToolTip invisible to the mouse so that it doesn't
> -        // interfere with the ToolTipManager's mouse-tracking.
> -        mouseEnabled = false;
> +               COMPILE::AS3
> +               {
> +               // InteractiveObject variables.
> +               // Make the ToolTip invisible to the mouse so that it
> doesn't
> +               // interfere with the ToolTipManager's mouse-tracking.
> +               mouseEnabled = false;
> +               }
>      }
>
>
>  //--------------------------------------------------------------------------
> @@ -451,13 +462,16 @@ public class ToolTip extends UIComponent implements
> IToolTip, IFontContextCompon
>          {
>              textField = IUITextField(createInFontContext(UITextField));
>
> -            textField.autoSize = TextFieldAutoSize.LEFT;
> -            textField.mouseEnabled = false;
> -            textField.multiline = true;
> -            textField.selectable = false;
> -            textField.wordWrap = false;
> -            textField.styleName = this;
> -
> +                       COMPILE::AS3
> +                       {
> +                   textField.autoSize = TextFieldAutoSize.LEFT;
> +                   textField.mouseEnabled = false;
> +                   textField.multiline = true;
> +                   textField.selectable = false;
> +                   textField.wordWrap = false;
> +                   textField.styleName = this;
> +                       }
> +
>              if (childIndex == -1)
>                  addChild(DisplayObject(textField));
>              else
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
> b/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
> index 714e0bb..632309f 100644
> ---
> a/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
> +++
> b/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
> @@ -49,6 +49,7 @@ public interface IDeferredInstantiationUIComponent
> extends IUIComponent
>          *  @playerversion AIR 1.1
>          *  @productversion Flex 3
>          */
> +       COMPILE::LATER
>      function set cacheHeuristic(value:Boolean):void;
>
>         //----------------------------------
> @@ -63,6 +64,7 @@ public interface IDeferredInstantiationUIComponent
> extends IUIComponent
>          *  @playerversion AIR 1.1
>          *  @productversion Flex 3
>          */
> +       COMPILE::LATER
>      function get cachePolicy():String
>
>         //----------------------------------
> @@ -123,6 +125,7 @@ public interface IDeferredInstantiationUIComponent
> extends IUIComponent
>          *  @playerversion AIR 1.1
>          *  @productversion Flex 3
>          */
> +       COMPILE::LATER
>         function createReferenceOnParentDocument(
>
> parentDocument:IFlexDisplayObject):void;
>
> @@ -140,6 +143,7 @@ public interface IDeferredInstantiationUIComponent
> extends IUIComponent
>          *  @playerversion AIR 1.1
>          *  @productversion Flex 3
>          */
> +       COMPILE::LATER
>         function deleteReferenceOnParentDocument(
>
> parentDocument:IFlexDisplayObject):void;
>
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
> b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
> index e9d9652..894bd46 100644
> ---
> a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
> +++
> b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
> @@ -22,6 +22,10 @@
>   *  for web version of flash.display.DisplayObjectContainer
>   *
>   */
> +COMPILE::AS3
> +{
> +       import flash.display.DisplayObjectContainer;
> +}
>  import flash.text.TextSnapshot;
>  import flash.geom.Point;
>
> @@ -33,7 +37,10 @@ import flash.geom.Point;
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -    function addChild(child:DisplayObject):DisplayObject;
> +       COMPILE::AS3
> +    function
> addChild(child:flash.display.DisplayObject):flash.display.DisplayObject;
> +       COMPILE::JS
> +       function addChild(child:DisplayObject):DisplayObject;
>
>      /**
>       *  @copy flash.display.DisplayObjectContainer#addChildAt()
> @@ -43,6 +50,9 @@ import flash.geom.Point;
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::AS3
> +       function addChildAt(child:flash.display.DisplayObject,
> index:int):flash.display.DisplayObject;
> +       COMPILE::JS
>      function addChildAt(child:DisplayObject, index:int):DisplayObject;
>
>      /**
> @@ -53,7 +63,10 @@ import flash.geom.Point;
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -    function removeChild(child:DisplayObject):DisplayObject;
> +       COMPILE::AS3
> +    function
> removeChild(child:flash.display.DisplayObject):flash.display.DisplayObject;
> +       COMPILE::JS
> +       function removeChild(child:DisplayObject):DisplayObject;
>
>      /**
>       *  @copy flash.display.DisplayObjectContainer#removeChildAt()
> @@ -63,7 +76,10 @@ import flash.geom.Point;
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -    function removeChildAt(index:int):DisplayObject;
> +       COMPILE::AS3
> +    function removeChildAt(index:int):flash.display.DisplayObject;
> +       COMPILE::JS
> +       function removeChildAt(index:int):DisplayObject;
>
>      /**
>       *  @copy flash.display.DisplayObjectContainer#getChildIndex()
> @@ -73,7 +89,10 @@ import flash.geom.Point;
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -    function getChildIndex(child:DisplayObject):int;
> +       COMPILE::AS3
> +    function getChildIndex(child:flash.display.DisplayObject):int;
> +       COMPILE::JS
> +       function getChildIndex(child:DisplayObject):int;
>
>      /**
>       *  @copy flash.display.DisplayObjectContainer#setChildIndex()
> @@ -83,7 +102,10 @@ import flash.geom.Point;
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -    function setChildIndex(child:DisplayObject, index:int):void;
> +       COMPILE::AS3
> +    function setChildIndex(child:flash.display.DisplayObject,
> index:int):void;
> +       COMPILE::JS
> +       function setChildIndex(child:DisplayObject, index:int):void;
>
>      /**
>       *  @copy flash.display.DisplayObjectContainer#getChildAt()
> @@ -93,7 +115,10 @@ import flash.geom.Point;
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -    function getChildAt(index:int):DisplayObject;
> +       COMPILE::AS3
> +    function getChildAt(index:int):flash.display.DisplayObject;
> +       COMPILE::JS
> +       function getChildAt(index:int):DisplayObject;
>
>      /**
>       *  @copy flash.display.DisplayObjectContainer#getChildByName()
> @@ -103,7 +128,10 @@ import flash.geom.Point;
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -    function getChildByName(name:String):DisplayObject;
> +       COMPILE::AS3
> +    function getChildByName(name:String):flash.display.DisplayObject;
> +       COMPILE::JS
> +       function getChildByName(name:String):DisplayObject;
>
>      /**
>       *  @copy flash.display.DisplayObjectContainer#numChildren
> @@ -187,7 +215,10 @@ import flash.geom.Point;
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -    function contains(child:DisplayObject):Boolean;
> +       COMPILE::AS3
> +    function contains(child:flash.display.DisplayObject):Boolean;
> +       COMPILE::JS
> +       function contains(child:DisplayObject):Boolean;
>
>      /**
>       *  @copy flash.display.DisplayObjectContainer#swapChildrenAt()
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
> b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
> index 3d0dbc2..f84242d 100644
> ---
> a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
> +++
> b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
> @@ -32,7 +32,10 @@
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -    function get root():DisplayObject;
> +       COMPILE::AS3
> +    function get root():flash.display.DisplayObject;
> +       COMPILE::JS
> +       function get root():DisplayObject;
>
>
>      /**
> @@ -67,7 +70,10 @@
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -    function get parent():DisplayObjectContainer;
> +       COMPILE::AS3
> +    function get parent():flash.display.DisplayObjectContainer;
> +       COMPILE::JS
> +       function get parent():DisplayObjectContainer;
>
>
>      /**
> @@ -91,9 +97,10 @@
>       *  @playerversion Flash 9
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
> -     */
>      function get visible():Boolean;
>      function set visible(value:Boolean):void;
> +        * already in IUIBase
> +     */
>
>
>      /**
> @@ -103,9 +110,10 @@
>       *  @playerversion Flash 9
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
> -     */
>      function get x():Number;
>      function set x(value:Number):void;
> +       * already in IUIBase
> +       */
>
>
>      /**
> @@ -115,9 +123,10 @@
>       *  @playerversion Flash 9
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
> -     */
>      function get y():Number;
>      function set y(value:Number):void;
> +        * already in IUIBase
> +     */
>
>
>      /**
> @@ -156,7 +165,6 @@
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -       COMPILE::LATER
>      function get mouseX():Number; // note: no setter
>
>
> @@ -168,7 +176,6 @@
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> -       COMPILE::LATER
>      function get mouseY():Number; // note: no setter
>
>
> @@ -193,9 +200,10 @@
>       *  @playerversion Flash 9
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
> -     */
>      function get alpha():Number;
>      function set alpha(value:Number):void;
> +        * already in IUIBase
> +     */
>
>
>      /**
> @@ -205,9 +213,10 @@
>       *  @playerversion Flash 9
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
> -     */
>      function get width():Number;
>      function set width(value:Number):void;
> +        * already in IUIBase
> +     */
>
>      /**
>       *  @copy flash.display.DisplayObject#height
> @@ -216,9 +225,10 @@
>       *  @playerversion Flash 9
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
> -     */
>      function get height():Number;
>      function set height(value:Number):void;
> +        * already in IUIBase
> +     */
>
>
>      /**
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
> b/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
> index f622766..ecb8dd5 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
> @@ -35,7 +35,6 @@ COMPILE::JS
>  }
>  import org.apache.flex.events.IEventDispatcher;
>  import flex.display.TopOfDisplayList;
> -import flex.display.DisplayObject;
>
>  /**
>   *  The IFlexDisplayObject interface defines the interface for skin
> elements.
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
> b/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
> index 3f1464a..4691a12 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
> @@ -241,11 +241,13 @@ public interface IVisualElement extends
> ILayoutElement, ILayoutDirectionElement
>       *  @playerversion AIR 1.5
>       *  @productversion Flex 4
>       */
> +       COMPILE::LATER
>      function get designLayer():DesignLayer;
>
>      /**
>       *  @private
>       */
> +       COMPILE::LATER
>      function set designLayer(value:DesignLayer):void;
>
>      /**
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
> ----------------------------------------------------------------------
> diff --git a/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
> b/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
> index 427550e..9b2a960 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
> @@ -35,7 +35,7 @@ COMPILE::AS3
>         import flash.display.DisplayObject;
>         import flash.display.DisplayObjectContainer;
>         import flash.display.InteractiveObject;
> -       import flash.display.Sprite;
> +//     import flash.display.Sprite;
>         import flash.display.GradientType;
>         import flash.display.Graphics;
>         import flash.display.Loader;
> @@ -48,9 +48,10 @@ COMPILE::JS
>         import flex.display.DisplayObject;
>         import flex.display.DisplayObjectContainer;
>         import flex.display.InteractiveObject;
> +       import flex.display.Graphics;
>         import flex.display.Loader;
> -       import flex.display.Sprite;
>  }
> +import flex.display.Sprite;
>  /*
>  import flash.display.Shader;
>  */
> @@ -158,7 +159,6 @@ import mx.validators.ValidationResult;
>
>  use namespace mx_internal;
>
> -import org.apache.flex.core.UIBase;
>  import flex.system.DefinitionManager;
>  import org.apache.flex.events.EventDispatcher;
>  import org.apache.flex.events.IEventDispatcher;
> @@ -1475,7 +1475,7 @@ include "../styles/metadata/AnchorStyles.as";
>   *  @playerversion AIR 1.1
>   *  @productversion Flex 3
>   */
> -public class UIComponent extends UIBase
> +public class UIComponent extends Sprite
>      implements IAutomationObject, IChildList, IConstraintClient,
>      IDeferredInstantiationUIComponent, IFlexDisplayObject, IFlexModule,
>      IInvalidating, ILayoutManagerClient, IPropertyChangeNotifier,
> @@ -1706,8 +1706,11 @@ public class UIComponent extends UIBase
>              if (UIComponentGlobals.callLaterSuspendCount == 0)
>              {
>                  var sm:ISystemManager =
> SystemManagerGlobals.topLevelSystemManagers[0];
> +                               COMPILE::AS3
> +                               {
>                  if (sm && sm.topOfDisplayList)
>                      sm.topOfDisplayList.invalidate();
> +                               }
>              }
>          }
>      }
> @@ -1731,9 +1734,12 @@ public class UIComponent extends UIBase
>          super();
>
>          // Override  variables in superclasses.
> +               COMPILE::AS3
> +               {
>          focusRect = false; // We do our own focus drawing.
>          // We are tab enabled by default if IFocusManagerComponent
>          tabEnabled = (this is IFocusManagerComponent);
> +               }
>          tabFocusEnabled = (this is IFocusManagerComponent);
>
>          // Whether the component can accept user interaction.
> @@ -2088,6 +2094,7 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::LATER
>      public function get accessibilityName():String
>      {
>          return accessibilityProperties ? accessibilityProperties.name :
> "";
> @@ -2472,9 +2479,14 @@ public class UIComponent extends UIBase
>          {
>              return _parent ? _parent : super.parent;
>          }
> -        catch (e:SecurityError)
> +        catch (e:Error)
>          {
>              // trace("UIComponent.get parent(): " + e);
> +                       COMPILE::AS3
> +                       {
> +                               if (!(e is SecurityError))
> +                                       throw e;
> +                       }
>          }
>
>          return null;
> @@ -2781,6 +2793,7 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::LATER
>      override public function get rotationZ():Number
>      {
>          return rotation;
> @@ -2788,6 +2801,7 @@ public class UIComponent extends UIBase
>      /**
>       *  @private
>       */
> +       COMPILE::LATER
>      override public function set rotationZ(value:Number):void
>      {
>          rotation = value;
> @@ -3107,6 +3121,7 @@ public class UIComponent extends UIBase
>       *  @productversion Flex 3
>       */
>
> +       COMPILE::LATER
>      override public function get scaleX():Number
>      {
>          if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
> @@ -3119,8 +3134,10 @@ public class UIComponent extends UIBase
>       *  @private
>       *  Storage for the scaleX property.
>       */
> +       COMPILE::LATER
>      private var _scaleX:Number = 1.0;
>
> +       COMPILE::LATER
>      override public function set scaleX(value:Number):void
>      {
>          if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
> @@ -3187,6 +3204,7 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::LATER
>      override public function get scaleY():Number
>      {
>          if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
> @@ -3201,9 +3219,11 @@ public class UIComponent extends UIBase
>       *  @private
>       *  Storage for the scaleY property.
>       */
> +       COMPILE::LATER
>      private var _scaleY:Number = 1.0;
>
>
> +       COMPILE::LATER
>      override public function set scaleY(value:Number):void
>      {
>          if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
> @@ -3310,11 +3330,13 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::LATER
>      mx_internal final function get $scaleX():Number
>      {
>          return super.scaleX;
>      }
>
> +       COMPILE::LATER
>      mx_internal final function set $scaleX(value:Number):void
>      {
>          super.scaleX = value;
> @@ -3332,11 +3354,13 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::LATER
>      mx_internal final function get $scaleY():Number
>      {
>          return super.scaleY;
>      }
>
> +       COMPILE::LATER
>      mx_internal final function set $scaleY(value:Number):void
>      {
>          super.scaleY = value;
> @@ -3414,9 +3438,12 @@ public class UIComponent extends UIBase
>          if (!initialized)
>              return;
>
> +               COMPILE::LATER
> +               {
>          if (designLayer && !designLayer.effectiveVisibility)
>              value = false;
> -
> +               }
> +
>          if ($visible == value)
>              return;
>
> @@ -3463,8 +3490,11 @@ public class UIComponent extends UIBase
>          {
>              _alpha = value;
>
> +                       COMPILE::LATER
> +                       {
>              if (designLayer)
>                  value = value * designLayer.effectiveAlpha;
> +                       }
>
>              $alpha = value;
>
> @@ -3545,6 +3575,7 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::LATER
>      override public function get doubleClickEnabled():Boolean
>      {
>          return super.doubleClickEnabled;
> @@ -3554,6 +3585,7 @@ public class UIComponent extends UIBase
>       *  @private
>       *  Propagate to children.
>       */
> +       COMPILE::LATER
>      override public function set doubleClickEnabled(value:Boolean):void
>      {
>          super.doubleClickEnabled = value;
> @@ -3621,6 +3653,7 @@ public class UIComponent extends UIBase
>      /**
>       *  @private
>       */
> +       COMPILE::LATER
>      override public function set cacheAsBitmap(value:Boolean):void
>      {
>          super.cacheAsBitmap = value;
> @@ -3704,6 +3737,7 @@ public class UIComponent extends UIBase
>       *  @private
>       *  Storage for the layer property.
>       */
> +       COMPILE::LATER
>      private var _designLayer:DesignLayer;
>
>      [Inspectable (environment='none')]
> @@ -3716,6 +3750,7 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.5
>       *  @productversion Flex 4
>       */
> +       COMPILE::LATER
>      public function get designLayer():DesignLayer
>      {
>          return _designLayer;
> @@ -3724,6 +3759,7 @@ public class UIComponent extends UIBase
>      /**
>       *  @private
>       */
> +       COMPILE::LATER
>      public function set designLayer(value:DesignLayer):void
>      {
>          if (_designLayer)
> @@ -3781,6 +3817,7 @@ public class UIComponent extends UIBase
>       *  Note that this "base property" is final and cannot be overridden,
>       *  so you can count on it to reflect what is happening at the player
> level.
>       */
> +       COMPILE::LATER
>      mx_internal final function get $blendMode():String
>      {
>          return super.blendMode;
> @@ -3789,6 +3826,7 @@ public class UIComponent extends UIBase
>      /**
>       *  @private
>       */
> +       COMPILE::LATER
>      mx_internal final function set $blendMode(value:String):void
>      {
>          super.blendMode = value;
> @@ -4998,6 +5036,7 @@ public class UIComponent extends UIBase
>      /**
>       *  @private
>       */
> +       COMPILE::LATER
>      public function set cachePolicy(value:String):void
>      {
>          if (_cachePolicy != value)
> @@ -5036,6 +5075,7 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::LATER
>      public function set cacheHeuristic(value:Boolean):void
>      {
>          if (_cachePolicy == UIComponentCachePolicy.AUTO)
> @@ -5092,7 +5132,10 @@ public class UIComponent extends UIBase
>
>              value.x = 0;
>              value.y = 0;
> +                       COMPILE::AS3
> +                       {
>              value.scrollRect = null;
> +                       }
>
>              _focusPane = value;
>          }
> @@ -5100,7 +5143,10 @@ public class UIComponent extends UIBase
>          {
>              removeChild(_focusPane);
>
> +                       COMPILE::AS3
> +                       {
>              _focusPane.mask = null;
> +                       }
>              _focusPane = null;
>          }
>      }
> @@ -7429,6 +7475,7 @@ public class UIComponent extends UIBase
>      /**
>       *  @private
>       */
> +       COMPILE::AS3
>      override public function stopDrag():void
>      {
>          super.stopDrag();
> @@ -7544,8 +7591,11 @@ public class UIComponent extends UIBase
>                  listeningForRender = true;
>              }
>
> +                       COMPILE::AS3
> +                       {
>              if (_systemManager.topOfDisplayList)
>                  _systemManager.topOfDisplayList.invalidate();
> +                       }
>          }
>      }
>
> @@ -7634,10 +7684,13 @@ public class UIComponent extends UIBase
>          else if (child is IUITextField)
>              IUITextField(child).nestLevel = nestLevel + 1;
>
> +               COMPILE::LATER
> +               {
>          if (child is InteractiveObject)
>              if (doubleClickEnabled)
>                  InteractiveObject(child).doubleClickEnabled = true;
> -
> +               }
> +
>          // Sets up the inheritingStyles and nonInheritingStyles objects
>          // and their proto chains so that getStyle() works.
>          // If this object already has some children,
> @@ -8378,6 +8431,8 @@ public class UIComponent extends UIBase
>                                 }
>                                 case 3:
>                                 {
> +                                       COMPILE::LATER
> +                                       {
>                                         propertyName =
> bindingData[index++];
>                                         value = bindingData[index++];
>                                         if (value is Array)
> @@ -8389,6 +8444,7 @@ public class UIComponent extends UIBase
>
> theBindings.push(bindings[bindingIndex]);
>                                         w = new XMLWatcher(propertyName,
> theBindings);
>                                         break;
> +                                       }
>                                 }
>                         }
>                         watchers.push(w);
> @@ -8795,6 +8851,7 @@ public class UIComponent extends UIBase
>      public function callLater(method:Function,
>                                args:Array /* of Object */ = null):void
>      {
> +
>          // trace(">>calllater " + this)
>          // Push the method and the arguments onto the method queue.
>          methodQueue.push(new MethodQueueElement(method, args));
> @@ -8815,9 +8872,12 @@ public class UIComponent extends UIBase
>                  listeningForRender = true;
>              }
>
> +                       COMPILE::AS3
> +                       {
>              // Force a "render" event to happen soon
>              if (sm.topOfDisplayList)
>                  sm.topOfDisplayList.invalidate();
> +                       }
>          }
>
>          // trace("<<calllater " + this)
> @@ -8903,6 +8963,8 @@ public class UIComponent extends UIBase
>      {
>          if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
>          {
> +                       COMPILE::LATER
> +                       {
>              if (_scaleX != oldScaleX)
>              {
>                  var scalingFactorX:Number = Math.abs(_scaleX / oldScaleX);
> @@ -8932,6 +8994,7 @@ public class UIComponent extends UIBase
>
>                  super.scaleY = oldScaleY = _scaleY;
>              }
> +                       }
>          }
>          else
>          {
> @@ -8943,8 +9006,11 @@ public class UIComponent extends UIBase
>                  currentState = newState;
>              }
>
> +                       COMPILE::LATER
> +                       {
>              oldScaleX = scaleX;
>              oldScaleY = scaleY;
> +                       }
>          }
>
>          // Typically state changes occur immediately, but during
> @@ -9139,6 +9205,8 @@ public class UIComponent extends UIBase
>          }
>          else
>          {
> +                       COMPILE::LATER
> +                       {
>              var xScale:Number = Math.abs(scaleX);
>              var yScale:Number = Math.abs(scaleY);
>
> @@ -9156,7 +9224,7 @@ public class UIComponent extends UIBase
>                      _measuredHeight /= yScale;
>                  }
>              }
> -
> +                       }
>              measure();
>
>              invalidateSizeFlag = false;
> @@ -9173,6 +9241,8 @@ public class UIComponent extends UIBase
>              if (!isNaN(explicitMaxHeight) && measuredHeight >
> explicitMaxHeight)
>                  measuredHeight = explicitMaxHeight;
>
> +                       COMPILE::LATER
> +                       {
>              if (FlexVersion.compatibilityVersion <
> FlexVersion.VERSION_4_0)
>              {
>                  if (xScale != 1.0)
> @@ -9187,9 +9257,13 @@ public class UIComponent extends UIBase
>                      _measuredHeight *= yScale;
>                  }
>              }
> +                       }
>          }
>
> +               COMPILE::LATER
> +               {
>          adjustSizesForScaleChanges();
> +               }
>
>          if (isNaN(oldMinWidth))
>          {
> @@ -9326,6 +9400,7 @@ public class UIComponent extends UIBase
>      /**
>       *  @private
>       */
> +       COMPILE::LATER
>      mx_internal function adjustSizesForScaleChanges():void
>      {
>          var xScale:Number = scaleX;
> @@ -9422,10 +9497,14 @@ public class UIComponent extends UIBase
>       */
>      protected function get unscaledWidth():Number
>      {
> +               COMPILE::LATER
> +               {
>          if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
>              return width / Math.abs(scaleX);
>          else
>              return width;
> +               }
> +               return width;
>      }
>
>      /**
> @@ -9482,10 +9561,14 @@ public class UIComponent extends UIBase
>       */
>      protected function get unscaledHeight():Number
>      {
> +               COMPILE::LATER
> +               {
>          if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
>              return height / Math.abs(scaleY);
>          else
>              return height;
> +               }
> +               return height;
>      }
>
>      /**
> @@ -9642,6 +9725,8 @@ public class UIComponent extends UIBase
>
>              var unscaledWidth:Number = width;
>              var unscaledHeight:Number = height;
> +                       COMPILE::LATER
> +                       {
>              if (FlexVersion.compatibilityVersion <
> FlexVersion.VERSION_4_0)
>              {
>                  unscaledWidth = scaleX == 0 ? 0 : width / scaleX;
> @@ -9655,6 +9740,7 @@ public class UIComponent extends UIBase
>                  if (Math.abs(unscaledHeight - lastUnscaledHeight) <
> .00001)
>                      unscaledHeight = lastUnscaledHeight;
>              }
> +                       }
>              updateDisplayList(unscaledWidth,unscaledHeight);
>              lastUnscaledWidth = unscaledWidth;
>              lastUnscaledHeight = unscaledHeight;
> @@ -10725,8 +10811,13 @@ public class UIComponent extends UIBase
>          var height:Number;
>          if (obj is UIComponent)
>          {
> +                       COMPILE::LATER
> +                       {
>              width = UIComponent(obj).unscaledWidth * Math.abs(obj.scaleX);
>              height = UIComponent(obj).unscaledHeight *
> Math.abs(obj.scaleY);
> +                       }
> +                       width = UIComponent(obj).unscaledWidth;
> +                       height = UIComponent(obj).unscaledHeight;
>          }
>          else
>          {
> @@ -10768,6 +10859,8 @@ public class UIComponent extends UIBase
>
>              var pt:Point;
>
> +                       COMPILE::LATER
> +                       {
>              if (rotation)
>              {
>                  var rotRad:Number = rotation * Math.PI / 180;
> @@ -10780,7 +10873,8 @@ public class UIComponent extends UIBase
>                  pt = new Point(obj.x - thickness, obj.y - thickness);
>                  DisplayObject(focusObj).rotation = 0;
>              }
> -
> +                       }
> +
>              if (obj.parent == this)
>              {
>                  // This adjustment only works if obj is a direct child of
> this.
> @@ -11273,7 +11367,14 @@ public class UIComponent extends UIBase
>          {
>              var message:String = resourceManager.getString(
>                  "core", "stateUndefined", [ stateName ]);
> -            throw new ArgumentError(message);
> +                       COMPILE::AS3
> +                       {
> +                               throw new ArgumentError(message);
> +                       }
> +                       COMPILE::JS
> +                       {
> +                               throw new Error(message);
> +                       }
>          }
>          return null;
>      }
> @@ -11935,7 +12036,14 @@ public class UIComponent extends UIBase
>          {
>              var message:String = resourceManager.getString(
>                  "core", "badParameter", [ styleClient ]);
> -            throw new ArgumentError(message);
> +                       COMPILE::AS3
> +                       {
> +                   throw new ArgumentError(message);
> +                       }
> +                       COMPILE::JS
> +                       {
> +                               throw new Error(message);
> +                       }
>          }
>      }
>
> @@ -12363,7 +12471,7 @@ public class UIComponent extends UIBase
>          g.clear();
>          g.beginFill(color);
>
> -        g.drawRoundRect(targetArea.x, targetArea.y,
> +        g.drawRoundRect(targetArea.left, targetArea.top,
>                          targetArea.width, targetArea.height,
>                          targetArea.cornerRadius * 2,
>                          targetArea.cornerRadius * 2);
> @@ -12592,6 +12700,7 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::LATER
>      public function createReferenceOnParentDocument(
>                          parentDocument:IFlexDisplayObject):void
>      {
> @@ -12645,6 +12754,7 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::LATER
>      public function deleteReferenceOnParentDocument(
>                                  parentDocument:IFlexDisplayObject):void
>      {
> @@ -13043,8 +13153,16 @@ public class UIComponent extends UIBase
>      {
>          //reset systemManager in case we've been reparented to a new
> Window.
>          //systemManager will be set on get systemManager()
> -        if (event.eventPhase != EventPhase.AT_TARGET)
> -            return;
> +               COMPILE::AS3
> +               {
> +               if (event.eventPhase != EventPhase.AT_TARGET)
> +                   return;
> +               }
> +               COMPILE::JS
> +               {
> +                       if (event.target != event.currentTarget)
> +                               return;
> +               }
>
>          try
>          {
> @@ -13054,10 +13172,15 @@ public class UIComponent extends UIBase
>                  return;
>              }
>          }
> -        catch (error:SecurityError)
> -        {
> -
> -        }
> +               catch (e:Error)
> +               {
> +                       // trace("UIComponent.get parent(): " + e);
> +                       COMPILE::AS3
> +                       {
> +                               if (!(e is SecurityError))
> +                                       throw e;
> +                       }
> +               }
>      }
>
>      /**
> @@ -13066,8 +13189,16 @@ public class UIComponent extends UIBase
>       */
>      private function removedHandler(event:flex.events.Event):void
>      {
> -        if (event.eventPhase != EventPhase.AT_TARGET)
> -            return;
> +               COMPILE::AS3
> +               {
> +               if (event.eventPhase != EventPhase.AT_TARGET)
> +                   return;
> +               }
> +               COMPILE::JS
> +               {
> +                       if (event.target != event.currentTarget)
> +                               return;
> +               }
>
>          try
>          {
> @@ -13077,10 +13208,15 @@ public class UIComponent extends UIBase
>                  return;
>              }
>          }
> -        catch (error:SecurityError)
> -        {
> -
> -        }
> +               catch (e:Error)
> +               {
> +                       // trace("UIComponent.get parent(): " + e);
> +                       COMPILE::AS3
> +                       {
> +                               if (!(e is SecurityError))
> +                                       throw e;
> +                       }
> +               }
>      }
>
>      /**
> @@ -13350,11 +13486,17 @@ public class UIComponent extends UIBase
>                      child = child.parent;
>              }
>          }
> -        catch (e:SecurityError)
> -        {
> -            // You can't own what you don't have access to.
> -            return false;
> -        }
> +               catch (e:Error)
> +               {
> +                       // trace("UIComponent.get parent(): " + e);
> +                       COMPILE::AS3
> +                       {
> +                               if (!(e is SecurityError))
> +                                       throw e;
> +                       }
> +                       // You can't own what you don't have access to.
> +                       return false;
> +               }
>
>          return child == this;
>      }
> @@ -13784,6 +13926,8 @@ public class UIComponent extends UIBase
>              else
>                  current = current.parent;
>
> +                       COMPILE::AS3
> +                       {
>              if (current && current.scrollRect)
>              {
>                  // clip the bounds by the scroll rect
> @@ -13793,6 +13937,7 @@ public class UIComponent extends UIBase
>                  currentRect.y = pt.y;
>                  bounds =
> Rectangle.convert(bounds.intersection(currentRect));
>              }
> +                       }
>          } while (current && current != targetParent);
>
>          return bounds;
> @@ -13851,6 +13996,7 @@ public class UIComponent extends UIBase
>      /**
>       *  @private
>       */
> +       COMPILE::AS3
>      override public function get mouseX():Number
>      {
>          if (!root || root is TopOfDisplayList || root[fakeMouseX] ===
> undefined)
> @@ -13861,6 +14007,7 @@ public class UIComponent extends UIBase
>      /**
>       *  @private
>       */
> +       COMPILE::AS3
>      override public function get mouseY():Number
>      {
>          if (!root || root is TopOfDisplayList || root[fakeMouseY] ===
> undefined)
> @@ -14414,6 +14561,7 @@ public class UIComponent extends UIBase
>       *  @playerversion AIR 1.5
>       *  @productversion Flex 4
>       */
> +       COMPILE::LATER
>      protected function applyComputedMatrix():void
>      {
>          _layoutFeatures.updatePending = false;
> @@ -14759,6 +14907,38 @@ public class UIComponent extends UIBase
>              return super.transform.matrix;
>          }
>      }
> +
> +
>  //--------------------------------------------------------------------------
> +       //
> +       //  Overridden methods
> +       //
> +
>  //--------------------------------------------------------------------------
> +
> +       /**
> +        *  Returns a string indicating the location of this object
> +        *  within the hierarchy of DisplayObjects in the Application.
> +        *  This string, such as <code>"MyApp0.HBox5.Button17"</code>,
> +        *  is built by the <code>displayObjectToString()</code> method
> +        *  of the mx.utils.NameUtils class from the <code>name</code>
> +        *  property of the object and its ancestors.
> +        *
> +        *  @return A String indicating the location of this object
> +        *  within the DisplayObject hierarchy.
> +        *
> +        *  @see flash.display.DisplayObject#name
> +        *  @see mx.utils.NameUtil#displayObjectToString()
> +        *
> +        *  @langversion 3.0
> +        *  @playerversion Flash 9
> +        *  @playerversion AIR 1.1
> +        *  @productversion Flex 3
> +        */
> +       COMPILE::JS
> +       public function toString():String
> +       {
> +               return NameUtil.displayObjectToString(this);
> +       }
> +
>  }
>
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
> ----------------------------------------------------------------------
> diff --git a/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
> b/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
> index 28d61ae..6f4242b 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
> @@ -429,8 +429,11 @@ public class UITextField extends TextField
>      {
>          _x = value;
>          super.x = value;
> +               COMPILE::LATER
> +               {
>          if (mirror)
>              validateTransformMatrix();
> +               }
>      }
>
>      /**
> @@ -455,8 +458,11 @@ public class UITextField extends TextField
>          var changed:Boolean = super.width != value;
>
>          super.width = value;
> +               COMPILE::LATER
> +               {
>          if (mirror)
>              validateTransformMatrix();
> +               }
>
>          // Since changing the width may reflow the text which can
>          // change the textWidth and/or textHeight dispatch an event so
> @@ -783,6 +789,7 @@ public class UITextField extends TextField
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::LATER
>      public function get className():String
>      {
>          return NameUtil.getUnqualifiedClassName(this);
> @@ -888,6 +895,7 @@ public class UITextField extends TextField
>       *  @private
>       *  Storage for the explicitHeight property.
>       */
> +       COMPILE::AS3
>      private var _explicitHeight:Number;
>
>      /**
> @@ -898,6 +906,7 @@ public class UITextField extends TextField
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::AS3
>      public function get explicitHeight():Number
>      {
>          return _explicitHeight;
> @@ -906,6 +915,7 @@ public class UITextField extends TextField
>      /**
>       *  @private
>       */
> +       COMPILE::AS3
>      public function set explicitHeight(value:Number):void
>      {
>          _explicitHeight = value;
> @@ -1003,6 +1013,7 @@ public class UITextField extends TextField
>       *  @private
>       *  Storage for the explicitWidth property.
>       */
> +       COMPILE::AS3
>      private var _explicitWidth:Number;
>
>      /**
> @@ -1013,6 +1024,7 @@ public class UITextField extends TextField
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::AS3
>      public function get explicitWidth():Number
>      {
>          return _explicitWidth;
> @@ -1021,6 +1033,7 @@ public class UITextField extends TextField
>      /**
>       *  @private
>       */
> +       COMPILE::AS3
>      public function set explicitWidth(value:Number):void
>      {
>          _explicitWidth = value;
> @@ -1583,6 +1596,7 @@ public class UITextField extends TextField
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::AS3
>      public function get percentHeight():Number
>      {
>          return NaN;
> @@ -1591,6 +1605,7 @@ public class UITextField extends TextField
>      /**
>       *  @private
>       */
> +       COMPILE::AS3
>       public function set percentHeight(value:Number):void
>       {
>       }
> @@ -1607,6 +1622,7 @@ public class UITextField extends TextField
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +        COMPILE::AS3
>      public function get percentWidth():Number
>      {
>          return NaN;
> @@ -1615,6 +1631,7 @@ public class UITextField extends TextField
>      /**
>       *  @private
>       */
> +       COMPILE::AS3
>       public function set percentWidth(value:Number):void
>       {
>       }
> @@ -1717,6 +1734,10 @@ public class UITextField extends TextField
>              styleChanged("styleName");
>          }
>
> +               COMPILE::JS
> +               {
> +                       element.className = styleName.toString();
> +               }
>          // If we don't have a parent pointer yet, then we'll wait
>          // and initialize the proto chain when the parentChanged()
>          // method is called.
> @@ -1922,7 +1943,9 @@ public class UITextField extends TextField
>
>      /**
>       *  @private
> +        *  TODO (aharui): I'm not seeing this in the doc
>       */
> +       COMPILE::LATER
>      override public function insertXMLText(beginIndex:int, endIndex:int,
>                                             richText:String,
>                                             pasting:Boolean = false):void
> @@ -2016,6 +2039,7 @@ public class UITextField extends TextField
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::AS3
>      public function setFocus():void
>      {
>          systemManager.topOfDisplayList.focus = this;
> @@ -2215,8 +2239,11 @@ public class UITextField extends TextField
>          {
>              const oldMirror:Boolean = mirror;
>              mirror = getStyle("layoutDirection") == LayoutDirection.RTL;
> +                       COMPILE::LATER
> +                       {
>              if (mirror || oldMirror)
>                  validateTransformMatrix();
> +                       }
>          }
>
>          // Set the text format.
> @@ -2265,6 +2292,7 @@ public class UITextField extends TextField
>       *  Update the transform.matrix based on the mirror flag.  This
> method must be
>       *  called when x, width, or layoutDirection changes.
>       */
> +       COMPILE::LATER
>      private function validateTransformMatrix():void
>      {
>          if (mirror)
> @@ -2375,6 +2403,7 @@ public class UITextField extends TextField
>       *  @playerversion AIR 1.1
>       *  @productversion Flex 3
>       */
> +       COMPILE::AS3
>      public function setColor(color:uint):void
>      {
>          explicitColor = color;
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
> ----------------------------------------------------------------------
> diff --git a/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
> b/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
> index 08ba3aa..bcc7c48 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
> @@ -20,8 +20,16 @@
>  package mx.core
>  {
>
> -import flash.text.TextFormat;
> -import flex.text.TextLineMetrics;
> +COMPILE::AS3
> +{
> +       import flash.text.TextFormat;
> +       import flash.text.TextLineMetrics;
> +}
> +COMPILE::JS
> +{
> +       import flex.text.TextFormat;
> +       import flex.text.TextLineMetrics;
> +}
>
>  import mx.managers.ISystemManager;
>
> @@ -639,7 +647,10 @@ public class UITextFormat extends TextFormat
>          letterSpacing = source.letterSpacing;
>          blockIndent = source.blockIndent;
>          bullet = source.bullet;
> +               COMPILE::LATER
> +               {
>          display = source.display;
> +               }
>          indent = source.indent;
>          kerning = source.kerning;
>          tabStops = source.tabStops;
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
> b/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
> index e675265..f54f656 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
> @@ -470,20 +470,36 @@ public class EffectManager extends EventDispatcher
>                  if (info.vectorEffectsCount == 0 &&
>                      target is IDeferredInstantiationUIComponent)
>                  {
> -
> IDeferredInstantiationUIComponent(target).cacheHeuristic = true;
> +                                       COMPILE::LATER
> +                                       {
> +
>  IDeferredInstantiationUIComponent(target).cacheHeuristic = true;
> +                                       }
>                  }
>              }
>              else
>              {
> -                // If a vector effect started playing, forcibly uncache
> -                // the target regardless of anything else.
> -                if (info.vectorEffectsCount++ == 0 &&
> -                    target is IDeferredInstantiationUIComponent &&
> -                    IDeferredInstantiationUIComponent(target).cachePolicy
> == UIComponentCachePolicy.AUTO)
> -                {
> -                    target.cacheAsBitmap = false;
> -                }
> -            }
> +                               COMPILE::LATER
> +                               {
> +                       // If a vector effect started playing, forcibly
> uncache
> +                       // the target regardless of anything else.
> +                       if (info.vectorEffectsCount++ == 0 &&
> +                           target is IDeferredInstantiationUIComponent &&
> +
>  IDeferredInstantiationUIComponent(target).cachePolicy ==
> UIComponentCachePolicy.AUTO)
> +                       {
> +                           target.cacheAsBitmap = false;
> +                       }
> +                   }
> +                               // If a vector effect started playing,
> forcibly uncache
> +                               // the target regardless of anything else.
> +                               if (info.vectorEffectsCount++ == 0 &&
> +                                       target is
> IDeferredInstantiationUIComponent)
> +                               {
> +                                       COMPILE::LATER
> +                                       {
> +                                       target.cacheAsBitmap = false;
> +                                       }
> +                               }
> +                       }
>          }
>          else // effect end
>          {
> @@ -492,8 +508,11 @@ public class EffectManager extends EventDispatcher
>                  if (info.bitmapEffectsCount != 0)
>                      info.bitmapEffectsCount--;
>
> +                               COMPILE::LATER
> +                               {
>                  if (target is IDeferredInstantiationUIComponent)
>
>  IDeferredInstantiationUIComponent(target).cacheHeuristic = false;
> +                               }
>              }
>              else
>              {
> @@ -506,11 +525,14 @@ public class EffectManager extends EventDispatcher
>                      {
>                          // Crank up the counter.
>                          n = info.bitmapEffectsCount;
> +                                               COMPILE::LATER
> +                                               {
>                          for (i = 0; i < n; i++)
>                          {
>                              if (target is
> IDeferredInstantiationUIComponent)
>
>  IDeferredInstantiationUIComponent(target).cacheHeuristic = true;
>                          }
> +                                               }
>                      }
>                  }
>              }
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
> b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
> index c8a250d..6f31e27 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
> @@ -54,6 +54,7 @@ COMPILE::JS
>         import flex.display.MovieClip;
>         import flex.display.Sprite;
>         import flex.events.Event;
> +       import org.apache.flex.events.MouseEvent;
>         import flex.events.EventPhase;
>         import flex.ui.Keyboard;
>
> @@ -301,6 +302,7 @@ public class SystemManager extends MovieClip
>                 COMPILE::JS
>                 {
>                         initHandler(null);
> +                       super.addEventListener(MouseEvent.MOUSE_MOVE,
> js_mouseMoveHandler);
>                 }
>
>      }
> @@ -841,18 +843,9 @@ public class SystemManager extends MovieClip
>
>          if (!_cursorChildren)
>          {
> -                       COMPILE::AS3
> -                       {
>              _cursorChildren = new SystemChildrenList(this,
>                  new QName(mx_internal, "toolTipIndex"),
>                  new QName(mx_internal, "cursorIndex"));
> -                       }
> -                       COMPILE::JS
> -                       {
> -                               _cursorChildren = new
> SystemChildrenList(this,
> -                                       "toolTipIndex",
> -                                       "cursorIndex");
> -                       }
>          }
>
>          return _cursorChildren;
> @@ -1409,18 +1402,9 @@ public class SystemManager extends MovieClip
>
>          if (!_popUpChildren)
>          {
> -                       COMPILE::AS3
> -                       {
>              _popUpChildren = new SystemChildrenList(this,
>                  new QName(mx_internal, "noTopMostIndex"),
>                  new QName(mx_internal, "topMostIndex"));
> -                       }
> -                       COMPILE::JS
> -                       {
> -                               _popUpChildren = new
> SystemChildrenList(this,
> -                                       "noTopMostIndex",
> -                                       "topMostIndex");
> -                       }
>          }
>
>          return _popUpChildren;
> @@ -1513,18 +1497,9 @@ public class SystemManager extends MovieClip
>
>          if (!_toolTipChildren)
>          {
> -                       COMPILE::AS3
> -                       {
>              _toolTipChildren = new SystemChildrenList(this,
>                  new QName(mx_internal, "topMostIndex"),
>                  new QName(mx_internal, "toolTipIndex"));
> -                       }
> -                       COMPILE::JS
> -                       {
> -                               _toolTipChildren = new
> SystemChildrenList(this,
> -                                       "topMostIndex",
> -                                       "toolTipIndex");
> -                       }
>          }
>
>          return _toolTipChildren;
> @@ -2206,16 +2181,8 @@ public class SystemManager extends MovieClip
>          // we redirect public API to parent systemmanager
>          if (!_popUpChildren)
>          {
> -                       COMPILE::AS3
> -                       {
>                                 _popUpChildren = new SystemChildrenList(
>                                         this, new QName(mx_internal,
> "noTopMostIndex"), new QName(mx_internal, "topMostIndex"));
> -                       }
> -                       COMPILE::JS
> -                       {
> -                               _popUpChildren = new SystemChildrenList(
> -                                       this, "noTopMostIndex",
> "topMostIndex");
> -                       }
>          }
>          _popUpChildren.addChild(preloader);
>
> @@ -3971,6 +3938,16 @@ public class SystemManager extends MovieClip
>                 return _topOfDisplayList;
>         }
>
> +       /**
> +        *  @private
> +        *  Track mouse moves in order to determine idle
> +        */
> +       COMPILE::JS
> +       private function js_mouseMoveHandler(event:MouseEvent):void
> +       {
> +               SystemManagerGlobals.lastMouseEvent = event;
> +       }
> +
>
>  }
>
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
> b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
> index 4b19eeb..c360df8 100644
> ---
> a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
> +++
> b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
> @@ -19,6 +19,10 @@
>
>  package mx.managers
>  {
> +COMPILE::JS
> +{
> +       import org.apache.flex.events.MouseEvent;
> +}
>
>  [ExcludeClass]
>
> @@ -50,6 +54,11 @@ public class SystemManagerGlobals
>          *  in the application..
>       */
>         public static var parameters:Object;
> +
> +       COMPILE::JS
> +       {
> +               public static var lastMouseEvent:MouseEvent;
> +       }
>  }
>
>  }
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
> b/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
> index a882de4..a1c6f2f 100644
> ---
> a/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
> +++
> b/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
> @@ -1251,7 +1251,10 @@ public class ToolTipManagerImpl extends
> EventDispatcher
>
>              var pos:Point = new Point(x, y);
>              pos = PointUtils.localToGlobal(pos, sm);
> -            pos = PointUtils.globalToLocal(pos, sm.getSandboxRoot());
> +                       COMPILE::LATER
> +                       {
> +                   pos = PointUtils.globalToLocal(pos,
> sm.getSandboxRoot());
> +                       }
>              x = pos.x;
>              y = pos.y;
>          }
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
> ----------------------------------------------------------------------
> diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
> b/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
> index b1f31f2..a6f1591 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
> @@ -33,6 +33,7 @@ import flash.utils.flash_proxy;
>  COMPILE::JS
>  {
>         import org.apache.flex.events.Event;
> +       import flex.utils.IExternalizable;
>  }
>  import org.apache.flex.utils.Proxy;
>  import mx.core.IPropertyChangeNotifier;
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
> ----------------------------------------------------------------------
> diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
> b/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
> index 6a19b2e..b9de66c 100644
> --- a/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
> +++ b/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
> @@ -21,7 +21,7 @@ package mx.utils
>  {
>
>  import flash.system.Capabilities;
> -import flash.utils.getDefinitionByName;
> +import org.apache.flex.reflection.getDefinitionByName;
>
>  /**
>   *  The Platform utility class contains several static methods to check
> what
>
>
> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
> ----------------------------------------------------------------------
> diff --git
> a/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
> b/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
> index 57a36d3..63e54ff 100644
> --- a/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
> +++ b/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
> @@ -30,7 +30,7 @@
>
> <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
>
> <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
>
> <binding-value-change-event-type>valueChange</binding-value-change-event-type>
> -
> +        <allow-subclass-overrides>true</allow-subclass-overrides>
>          <keep-as3-metadata>
>            <name>Bindable</name>
>            <name>Managed</name>
> @@ -49,6 +49,8 @@
>              <path-element>../../../../../externs/Core.swc</path-element>
>
>  <path-element>../../../../../externs/Graphics.swc</path-element>
>
>  <path-element>../../../../../externs/Collections.swc</path-element>
> +
> <path-element>../../../../../externs/Reflection.swc</path-element>
> +            <path-element>../../../../../externs/HTML.swc</path-element>
>          </library-path>
>
>          <namespaces>
>
>

[37/37] git commit: [flex-asjs] [refs/heads/spark] - under 100 errors

Posted by ah...@apache.org.
under 100 errors


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/a23bd593
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/a23bd593
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/a23bd593

Branch: refs/heads/spark
Commit: a23bd593f77438cf52898e8b72c988563f2ca9d8
Parents: 93ca6b8
Author: Alex Harui <ah...@apache.org>
Authored: Thu Mar 24 12:59:08 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Mar 24 12:59:08 2016 -0700

----------------------------------------------------------------------
 .../main/flex/org/apache/flex/core/IChild.as    |  22 +-
 .../src/main/flex/flex/display/DisplayObject.as |   7 +-
 .../MX/src/main/flex/flex/display/Graphics.as   |   2 +-
 .../MX/src/main/flex/flex/display/MovieClip.as  | 190 +++++++++
 .../MX/src/main/flex/flex/display/Sprite.as     |  28 ++
 .../main/flex/flex/display/TopOfDisplayList.as  |  21 +-
 .../MX/src/main/flex/flex/system/I18NManager.as |   7 +
 .../MX/src/main/flex/flex/text/TextField.as     | 394 ++-----------------
 .../src/main/flex/flex/utils/IExternalizable.as |  26 ++
 .../MX/src/main/flex/mx/binding/Watcher.as      |   3 +
 .../MX/src/main/flex/mx/controls/ToolTip.as     |  42 +-
 .../core/IDeferredInstantiationUIComponent.as   |   4 +
 .../mx/core/IDisplayObjectContainerInterface.as |  47 ++-
 .../flex/mx/core/IDisplayObjectInterface.as     |  30 +-
 .../src/main/flex/mx/core/IFlexDisplayObject.as |   1 -
 .../MX/src/main/flex/mx/core/IVisualElement.as  |   2 +
 .../MX/src/main/flex/mx/core/UIComponent.as     | 238 +++++++++--
 .../MX/src/main/flex/mx/core/UITextField.as     |  29 ++
 .../MX/src/main/flex/mx/core/UITextFormat.as    |  15 +-
 .../src/main/flex/mx/effects/EffectManager.as   |  42 +-
 .../src/main/flex/mx/managers/SystemManager.as  |  47 +--
 .../flex/mx/managers/SystemManagerGlobals.as    |   9 +
 .../main/flex/mx/managers/ToolTipManagerImpl.as |   5 +-
 .../MX/src/main/flex/mx/utils/ObjectProxy.as    |   1 +
 .../MX/src/main/flex/mx/utils/Platform.as       |   2 +-
 .../src/main/resources/compile-asjs-config.xml  |   4 +-
 26 files changed, 720 insertions(+), 498 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
index 6052094..f273f2e 100755
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/core/IChild.as
@@ -42,18 +42,18 @@ package org.apache.flex.core
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
-        COMPILE::AS3
+		COMPILE::AS3
         function get parent():DisplayObjectContainer;
         
-        /**
-         *  The parent.
-         * 
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion FlexJS 0.0
-         */
-        COMPILE::JS
-        function get parent():IUIBase;
+		/**
+		 *  The parent.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		COMPILE::JS
+		function get parent():IUIBase;
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
index 2568582..bf0598b 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObject.as
@@ -18,6 +18,11 @@
 ////////////////////////////////////////////////////////////////////////////////
 package flex.display
 {
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;		
+	import flash.display.DisplayObjectContainer;		
+}
 import flex.display.TopOfDisplayList;
 
 import org.apache.flex.core.IUIBase;
@@ -25,7 +30,7 @@ import org.apache.flex.events.IEventDispatcher;
 import org.apache.flex.geom.Point;
 import org.apache.flex.geom.Rectangle;
 
-public interface DisplayObject extends IEventDispatcher
+public interface DisplayObject extends IEventDispatcher, IUIBase
 {
 	include "../../mx/core/IDisplayObjectInterface.as"    
 	

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as b/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
index fe6f0ec..1a83c3c 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
@@ -69,7 +69,7 @@ package flex.display
 		public function curveTo(mx:Number, my:Number, x:Number, y:Number):void
 		{
 			var path:String = "M " + lastX.toString() + " " + lastY.toString();
-			path += "Q " + mx.toString() + " " + my.toString() + " " +
+			path += "Q " + mx.toString() + " " + my.toString() + " "
 						+ x.toString() + " " + y.toString();
 			host.drawPath(path);
 			lastX = x;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as b/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
index 6f1fca9..8add311 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
@@ -19,6 +19,195 @@
 
 package flex.display
 {
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IBeadModel;
+	import org.apache.flex.core.IBeadView;
+	import org.apache.flex.core.IFlexJSElement;
+	import org.apache.flex.core.ValuesManager;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
+
+	COMPILE::AS3
+	{
+		import flash.display.MovieClip;
+	}
+	COMPILE::JS
+	{
+		import flex.display.DisplayObjectContainer;
+	}
+	
+	COMPILE::AS3
+	public class MovieClip extends flash.display.MovieClip
+	{
+		COMPILE::AS3
+		private var _model:IBeadModel;
+		
+		/**
+		 *  An IBeadModel that serves as the data model for the component.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		COMPILE::AS3
+		public function get model():Object
+		{
+			if (_model == null)
+			{
+				// addbead will set _model
+				addBead(new (ValuesManager.valuesImpl.getValue(this, "iBeadModel")) as IBead);
+			}
+			return _model;
+		}
+		
+		/**
+		 *  @private
+		 */
+		COMPILE::AS3
+		public function set model(value:Object):void
+		{
+			if (_model != value)
+			{
+				addBead(value as IBead);
+				dispatchEvent(new Event("modelChanged"));
+			}
+		}
+		
+		private var _view:IBeadView;
+		
+		/**
+		 *  An IBeadView that serves as the view for the component.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 *  @flexjsignorecoercion Class
+		 */
+		public function get view():IBeadView
+		{
+			if (_view == null)
+			{
+				var c:Class = ValuesManager.valuesImpl.getValue(this, "iBeadView") as Class;
+				if (c)
+				{
+					if (c)
+					{
+						_view = (new c()) as IBeadView;
+						addBead(_view);
+					}
+				}
+			}
+			return _view;
+		}
+		
+		/**
+		 *  @private
+		 */
+		public function set view(value:IBeadView):void
+		{
+			if (_view != value)
+			{
+				addBead(value as IBead);
+				dispatchEvent(new Event("viewChanged"));
+			}
+		}
+		
+		/**
+		 *  @copy org.apache.flex.core.IUIBase#element
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function get element():IFlexJSElement
+		{
+			return this;
+		}
+		
+		/**
+		 *  @copy org.apache.flex.core.Application#beads
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public var beads:Array;
+		
+		private var _beads:Vector.<IBead>;
+		
+		/**
+		 *  @copy org.apache.flex.core.IStrand#addBead()
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */        
+		override public function addBead(bead:IBead):void
+		{
+			if (!_beads)
+				_beads = new Vector.<IBead>;
+			_beads.push(bead);
+			if (bead is IBeadModel)
+				_model = bead as IBeadModel;
+			else if (bead is IBeadView)
+				_view = bead as IBeadView;
+			bead.strand = this;
+			
+			if (bead is IBeadView) {
+				IEventDispatcher(this).dispatchEvent(new Event("viewChanged"));
+			}
+		}
+		
+		/**
+		 *  @copy org.apache.flex.core.IStrand#getBeadByType()
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function getBeadByType(classOrInterface:Class):IBead
+		{
+			for each (var bead:IBead in _beads)
+			{
+				if (bead is classOrInterface)
+					return bead;
+			}
+			return null;
+		}
+		
+		/**
+		 *  @copy org.apache.flex.core.IStrand#removeBead()
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function removeBead(value:IBead):IBead	
+		{
+			var n:int = _beads.length;
+			for (var i:int = 0; i < n; i++)
+			{
+				var bead:IBead = _beads[i];
+				if (bead == value)
+				{
+					_beads.splice(i, 1);
+					return bead;
+				}
+			}
+			return null;
+		}
+		
+		
+	}
+	
+	COMPILE::JS
 	public class MovieClip extends Sprite
 	{
 		public function get totalFrames():int
@@ -29,5 +218,6 @@ package flex.display
 		{
 			return 1;
 		}
+		
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
index 99dd7c4..bd29b87 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
@@ -20,6 +20,9 @@
 package flex.display
 {	
 	import org.apache.flex.core.graphics.GraphicsContainer;
+	import org.apache.flex.geom.Point;
+	import org.apache.flex.utils.PointUtils;
+	import mx.managers.SystemManagerGlobals;
 	
 	public class Sprite extends GraphicsContainer implements DisplayObjectContainer
 	{
@@ -147,5 +150,30 @@ package flex.display
 			return _graphics
 		}
 
+		COMPILE::JS
+		public function get mouseX():Number
+		{
+			var pt:Point = new Point(SystemManagerGlobals.lastMouseEvent.screenX,
+									 SystemManagerGlobals.lastMouseEvent.screenY);
+			pt = PointUtils.globalToLocal(pt, this);
+			return pt.x;
+		}
+		
+		COMPILE::JS
+		public function get mouseY():Number
+		{
+			var pt:Point = new Point(SystemManagerGlobals.lastMouseEvent.screenX,
+				SystemManagerGlobals.lastMouseEvent.screenY);
+			pt = PointUtils.globalToLocal(pt, this);
+			return pt.x;
+		}
+		
+		COMPILE::JS
+		override public function get parent():DisplayObjectContainer
+		{
+			return super.parent as DisplayObjectContainer;
+		}
+
 	}
+	
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as b/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
index 94dbf47..e5ef3e4 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
@@ -26,6 +26,8 @@ COMPILE::AS3
 COMPILE::JS
 {
 	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.HTMLElementWrapper;
+	import org.apache.flex.core.WrappedHTMLElement;
 }
 
 COMPILE::AS3
@@ -52,12 +54,29 @@ public class TopOfDisplayList extends Stage
 }
 
 COMPILE::JS
-public class TopOfDisplayList extends UIBase
+public class TopOfDisplayList extends Sprite
 {
 	public function TopOfDisplayList()
 	{
 		super();
 	}
+	
+	/**
+	 * @flexjsignorecoercion flex.display.InteractiveObject
+	 * @flexjsignorecoercion org.apache.flex.core.WrappedHTMLElement
+	 */
+	public function get focus():InteractiveObject
+	{
+		return (document.activeElement as WrappedHTMLElement).flexjs_wrapper as InteractiveObject;
+	}
+	
+	/**
+	 * @flexjsignorecoercion org.apache.flex.core.HTMLElementWrapper
+	 */
+	public function set focus(value:InteractiveObject):void
+	{
+		document.activeElement = (value as HTMLElementWrapper).element;
+	}
 }
 
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as b/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
index c838d89..68e6cf4 100644
--- a/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
+++ b/frameworks/projects/MX/src/main/flex/flex/system/I18NManager.as
@@ -1,6 +1,9 @@
 package flex.system
 {
+	COMPILE::AS3
+	{
 	import flash.system.Capabilities;
+	}
 	
 	public class I18NManager
 	{
@@ -19,6 +22,10 @@ package flex.system
 				else
 					return [ Capabilities.language ];
 			}
+			COMPILE::JS
+			{
+				return [ navigator.language ];
+			}
 		}
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
index d8bde5f..116c7e3 100644
--- a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
+++ b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
@@ -1,5 +1,6 @@
 package flex.text
 {
+
 COMPILE::AS3
 {
 	import flash.text.TextField;		
@@ -30,7 +31,7 @@ public class TextField extends flash.text.TextField
 }
 
 COMPILE::JS
-public class TextField extends Label implements IUITextField
+public class TextField extends Label
 {
 
 	private var _alwaysShowSelection:Boolean;
@@ -94,12 +95,6 @@ public class TextField extends Label implements IUITextField
 			element.style.backgroundColor = "#" + _backgroundColor.toString(16);
 	}
 
-	public function get baselinePosition():Number
-	{
-		trace("TextField.baselinePosition not implemented");
-		return 0;
-	}
-	
 	private var _border:Boolean;
 	public function get border():Boolean
 	{
@@ -179,16 +174,6 @@ public class TextField extends Label implements IUITextField
 			(element as HTMLInputElement).type = "input";
 	}
 
-	private var _document:Object;
-	public function get document():Object
-	{
-		return _document;
-	}
-	public function set document(value:Object):void
-	{
-		_document = value;
-	}
-	
 	private var _doubleClickEnabled:Boolean;
 	public function get doubleClickEnabled():Boolean
 	{
@@ -213,58 +198,6 @@ public class TextField extends Label implements IUITextField
 		trace("TextField.embedFonts not implemented");
 	}
 	
-	private var _enabled:Boolean;
-	public function get enabled():Boolean
-	{
-		return _enabled;
-	}
-	public function set enabled(value:Boolean):void
-	{
-		_enabled = value;
-	}
-	
-	public function get enableIME():Boolean
-	{
-		trace("TextField.enableIME not implemented");
-		return false;
-	}
-	
-	public function get explicitMaxWidth():Number
-	{
-		trace("TextField.explicitMaxWidth not implemented");
-		return 0;
-	}
-	
-	public function get explicitMaxHeight():Number
-	{
-		trace("TextField.explicitMaxHeight not implemented");
-		return 0;
-	}
-	
-	public function get explicitMinHeight():Number
-	{
-		trace("TextField.explicitMinHeight not implemented");
-		return 0;
-	}
-	
-	public function get explicitMinWidth():Number
-	{
-		trace("TextField.explicitMinWidth not implemented");
-		return 0;
-	}
-	
-	private var _focusPane:Sprite;
-	public function get focusPane():Sprite
-	{
-		trace("TextField.focusPane not implemented");
-		return _focusPane;
-	}
-	public function set focusPane(value:Sprite):void
-	{
-		_focusPane = value;
-		trace("TextField.focusPane not implemented");
-	}
-	
 	private var _focusRect:Object;
 	public function get focusRect():Object
 	{
@@ -299,64 +232,6 @@ public class TextField extends Label implements IUITextField
 		element.innerHTML = _htmlText = value;
 	}
 	
-	private var _ignorePadding:Boolean;
-	public function get ignorePadding():Boolean
-	{
-		trace("TextField.ignorePadding not implemented");
-		return _ignorePadding;
-	}
-	public function set ignorePadding(value:Boolean):void
-	{
-		_ignorePadding = value;
-		trace("TextField.ignorePadding not implemented");
-	}
-	
-	private var _imeMode:String;
-	public function get imeMode():String
-	{
-		return _imeMode;
-	}
-	public function set imeMode(value:String):void
-	{
-		_imeMode = value;
-	}
-	
-	private var _includeInLayout:Boolean;
-	public function get includeInLayout():Boolean
-	{
-		trace("TextField.includeInLayout not implemented");
-		return _includeInLayout;
-	}
-	public function set includeInLayout(value:Boolean):void
-	{
-		_includeInLayout = value;
-		trace("TextField.includeInLayout not implemented");
-	}
-
-	private var _inheritingStyles:Object;
-	public function get inheritingStyles():Object
-	{
-		trace("TextField.inheritingStyles not implemented");
-		return _inheritingStyles;
-	}
-	public function set inheritingStyles(value:Object):void
-	{
-		_inheritingStyles = value;
-		trace("TextField.inheritingStyles not implemented");
-	}
-
-	private var _isPopUp:Boolean;
-	public function get isPopUp():Boolean
-	{
-		trace("TextField.isPopUp not implemented");
-		return _isPopUp;
-	}
-	public function set isPopUp(value:Boolean):void
-	{
-		_isPopUp = value;
-		trace("TextField.isPopUp not implemented");
-	}
-	
 	public function get length():int
 	{
 		return element.innerText.length;
@@ -373,12 +248,6 @@ public class TextField extends Label implements IUITextField
 		(element as HTMLInputElement).maxLength = value;
 	}
 	
-	public function get maxHeight():Number
-	{
-		trace("TextField.maxHeight not implemented");
-		return 0;
-	}
-	
 	public function get maxScrollH():int
 	{
 		trace("TextField.maxScrollH not implemented");
@@ -391,72 +260,6 @@ public class TextField extends Label implements IUITextField
 		return 0;
 	}
 	
-	public function get maxWidth():Number
-	{
-		trace("TextField.maxWidth not implemented");
-		return 0;
-	}
-	
-	public function get measuredHeight():Number
-	{
-		trace("TextField.measuredHeight not implemented");
-		return 0;
-	}
-		
-	private var _measuredMinHeight:Number;
-	public function get measuredMinHeight():Number
-	{
-		trace("TextField.measuredMinHeight not implemented");
-		return _measuredMinHeight;
-	}
-	public function set measuredMinHeight(value:Number):void
-	{
-		_measuredMinHeight = value;
-		trace("TextField.measuredMinHeight not implemented");
-	}
-	
-	public function get measuredWidth():Number
-	{
-		trace("TextField.measuredWidth not implemented");
-		return 0;
-	}
-	
-	private var _measuredMinWidth:Number;
-	public function get measuredMinWidth():Number
-	{
-		trace("TextField.measuredMinWidth not implemented");
-		return _measuredMinWidth;
-	}
-	public function set measuredMinWidth(value:Number):void
-	{
-		_measuredMinWidth = value;
-		trace("TextField.measuredMinWidth not implemented");
-	}
-	
-	public function get minHeight():Number
-	{
-		trace("TextField.minHeight not implemented");
-		return 0;
-	}
-	
-	public function get minWidth():Number
-	{
-		trace("TextField.minWidth not implemented");
-		return 0;
-	}
-
-	private var _moduleFactory:IFlexModuleFactory;
-	public function get moduleFactory():IFlexModuleFactory
-	{
-		trace("TextField.moduleFactory not implemented");
-		return _moduleFactory;
-	}
-	public function set moduleFactory(value:IFlexModuleFactory):void
-	{
-		_moduleFactory = value;
-		trace("TextField.moduleFactory not implemented");
-	}
-	
 	private var _mouseEnabled:Boolean;
 	public function get mouseEnabled():Boolean
 	{
@@ -481,6 +284,18 @@ public class TextField extends Label implements IUITextField
 		trace("TextField.mouseWheelEnabled not implemented");
 	}
 	
+	public function get mouseX():Number
+	{
+		trace("TextField.mouseX not implemented");
+		return 0;
+	}
+	
+	public function get mouseY():Number
+	{
+		trace("TextField.mouseY not implemented");
+		return 0;
+	}
+	
 	private var _multiline:Boolean;
 	public function get multiline():Boolean
 	{
@@ -504,50 +319,12 @@ public class TextField extends Label implements IUITextField
 		element.id = name;
 	}
 	
-	private var _owner:DisplayObjectContainer;
-	public function get owner():DisplayObjectContainer
-	{
-		return _owner;
-	}
-	public function set owner(value:DisplayObjectContainer):void
-	{
-		_owner = value;
-	}
-	
-	private var _nestLevel:int;
-	public function get nestLevel():int
-	{
-		return _nestLevel;
-	}
-	public function set nestLevel(value:int):void
-	{
-		_nestLevel = value;
-	}
-	
-	private var _nonInheritingStyles:Object;
-	public function get nonInheritingStyles():Object
-	{
-		trace("TextField.nonInheritingStyles not implemented");
-		return _nonInheritingStyles;
-	}
-	public function set nonInheritingStyles(value:Object):void
-	{
-		_nonInheritingStyles = value;
-		trace("TextField.nonInheritingStyles not implemented");
-	}
-	
-	public function get nonZeroTextHeight():Number
-	{
-		trace("TextField.nonZeroTextHeight not implemented");
-		return 0;
-	}
-	
 	public function get numLines():int
 	{
 		trace("TextField.numLines not implemented");
-		return 0;
+		return -1;
 	}
-
+	
 	private var _restrict:String;
 	public function get restrict():String
 	{
@@ -626,17 +403,6 @@ public class TextField extends Label implements IUITextField
 		trace("TextField.sharpness not implemented");
 	}
 	
-	private var _styleName:Object;
-	public function get styleName():Object
-	{
-		return _styleName;
-	}
-	public function set styleName(value:Object):void
-	{
-		_styleName = value;
-		element.className = styleName.toString();
-	}
-	
 	private var _styleSheet:StyleSheet;
 	public function get styleSheet():StyleSheet
 	{
@@ -648,19 +414,7 @@ public class TextField extends Label implements IUITextField
 		_styleSheet = value;
 		trace("TextField.styleSheet not implemented");
 	}
-	
-	private var _systemManager:ISystemManager;
-	public function get systemManager():ISystemManager
-	{
-		trace("TextField.systemManager not implemented");
-		return _systemManager;
-	}
-	public function set systemManager(value:ISystemManager):void
-	{
-		_systemManager = value;
-		trace("TextField.systemManager not implemented");
-	}
-	
+		
 	private var _tabEnabled:Boolean;
 	public function get tabEnabled():Boolean
 	{
@@ -718,30 +472,6 @@ public class TextField extends Label implements IUITextField
 		trace("TextField.thickness not implemented");
 	}
 	
-	private var _toolTip:String;
-	public function get toolTip():String
-	{
-		trace("TextField.toolTip not implemented");
-		return _toolTip;
-	}
-	public function set toolTip(value:String):void
-	{
-		_toolTip = value;
-		trace("TextField.toolTip not implemented");
-	}
-	
-	private var _tweeningProperties:Array;
-	public function get tweeningProperties():Array
-	{
-		trace("TextField.tweeningProperties not implemented");
-		return _tweeningProperties;
-	}
-	public function set tweeningProperties(value:Array):void
-	{
-		_tweeningProperties = value;
-		trace("TextField.tweeningProperties not implemented");
-	}
-	
 	public function get topOfDisplayList():TopOfDisplayList
 	{
 		trace("TextField.topOfDisplayList not implemented");
@@ -801,18 +531,6 @@ public class TextField extends Label implements IUITextField
 		return 0;
 	}
 	
-	public function getExplicitOrMeasuredHeight():Number
-	{
-		trace("TextField.getExplicitOrMeasuredHeight not implemented");
-		return 0;
-	}
-	
-	public function getExplicitOrMeasuredWidth():Number
-	{
-		trace("TextField.getExplicitOrMeasuredWidth not implemented");
-		return 0;
-	}
-	
 	public function getFirstCharInParagraph(index:int):int
 	{
 		trace("TextField.getFirstCharInParagraph not implemented");
@@ -867,59 +585,12 @@ public class TextField extends Label implements IUITextField
 		return 0;
 	}
 	
-	public function getStyle(styleName:String):*
-	{
-		trace("TextField.getStyle not implemented");
-		return undefined;
-	}
-	
 	public function getTextFormat(beginIndex:int = -1, endIndex:int = -1):TextFormat
 	{
 		trace("TextField.getTextFormat not implemented");
 		return null;
 	}
 	
-	public function getUITextFormat():UITextFormat
-	{
-		trace("TextField.getUITextFormat not implemented");
-		return null;
-	}
-	
-	public function initialize():void
-	{
-		trace("TextField.initialize not implemented");
-	}
-
-	public function invalidateDisplayList():void
-	{
-		trace("TextField.invalidateDisplayList not implemented");
-	}
-	
-	public function invalidateProperties():void
-	{
-		trace("TextField.invalidateProperties not implemented");
-	}
-	
-	public function invalidateSize():void
-	{
-		trace("TextField.invalidateSize not implemented");
-	}
-	
-	public function move(x:Number, y:Number):void
-	{
-		this.x = x;
-		this.y = y;
-	}
-	
-	public function owns(child:DisplayObject):Boolean
-	{
-		return false;
-	}
-	
-	public function parentChanged(parent:DisplayObjectContainer):void
-	{
-	}
-	
 	public function replaceSelectedText(text:String):void
 	{
 		trace("TextField.replaceSelectedText not implemented");
@@ -930,11 +601,6 @@ public class TextField extends Label implements IUITextField
 		trace("TextField.replaceText not implemented");
 	}
 	
-	public function setActualSize(x:Number, y:Number):void
-	{
-		setWidthAndHeight(x, y, true);
-	}
-	
 	public function setColor(color:uint):void
 	{
 		element.style.color = "#" + color.toString(16);
@@ -955,29 +621,13 @@ public class TextField extends Label implements IUITextField
 		trace("TextField.setTextFormat not implemented");
 	}
 	
-	public function setVisible(value:Boolean, noEvent:Boolean = false):void
-	{
-		if (value)
-			element.style.display = "inline";
-		else
-			element.style.display = "none";
-	}
-	
-	public function styleChanged(styleProp:String):void
-	{
-		trace("TextField.styleChanged not implemented");		
-	}
-		
-	public function truncateToFit(truncationIndicator:String = null):Boolean
-	{
-		trace("TextField.truncateToFit not implemented");
-		return false;
-	}
-	
-	public function validateNow():void
+	/**
+	 * @flexjsignorecoercion flex.display.DisplayObjectContainer
+	 */
+	override public function get parent():DisplayObjectContainer
 	{
+		return super.parent as DisplayObjectContainer;
 	}
-	
 
 }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as b/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
new file mode 100644
index 0000000..a75a480
--- /dev/null
+++ b/frameworks/projects/MX/src/main/flex/flex/utils/IExternalizable.as
@@ -0,0 +1,26 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package flex.utils
+{
+	public interface IExternalizable
+	{
+		
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as b/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
index fef6ee3..c5855e1 100644
--- a/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
+++ b/frameworks/projects/MX/src/main/flex/mx/binding/Watcher.as
@@ -218,6 +218,8 @@ public class Watcher
 	            //   Error #1069: Property - not found on - and there is no default value
 	            //   Error #1507: - invalid null argument.
 	            // We allow any other errors to be thrown.
+				COMPILE::AS3
+				{
 	            if ((error.errorID != 1006) &&
 	                (error.errorID != 1009) &&
 	                (error.errorID != 1010) &&
@@ -227,6 +229,7 @@ public class Watcher
 	            {
 	                throw error;
 	            }
+				}
 			}
         }
     }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as b/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
index f6a4b9f..ab63cd4 100644
--- a/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
+++ b/frameworks/projects/MX/src/main/flex/mx/controls/ToolTip.as
@@ -20,9 +20,17 @@
 package mx.controls
 {
 
-import flash.display.DisplayObject;
-import flash.text.TextFieldAutoSize;
-import flash.text.TextFormat;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;
+	import flash.text.TextFieldAutoSize;
+	import flash.text.TextFormat;		
+}
+COMPILE::JS
+{
+	import flex.display.DisplayObject;
+	import flex.text.TextFormat;			
+}
 import mx.core.EdgeMetrics;
 import mx.core.IFlexDisplayObject;
 import mx.core.IFlexModuleFactory;
@@ -167,10 +175,13 @@ public class ToolTip extends UIComponent implements IToolTip, IFontContextCompon
     {
         super();
 
-        // InteractiveObject variables.
-        // Make the ToolTip invisible to the mouse so that it doesn't
-        // interfere with the ToolTipManager's mouse-tracking.
-        mouseEnabled = false;
+		COMPILE::AS3
+		{
+	        // InteractiveObject variables.
+	        // Make the ToolTip invisible to the mouse so that it doesn't
+	        // interfere with the ToolTipManager's mouse-tracking.
+	        mouseEnabled = false;
+		}
     }
 
     //--------------------------------------------------------------------------
@@ -451,13 +462,16 @@ public class ToolTip extends UIComponent implements IToolTip, IFontContextCompon
         {
             textField = IUITextField(createInFontContext(UITextField));
 
-            textField.autoSize = TextFieldAutoSize.LEFT;
-            textField.mouseEnabled = false;
-            textField.multiline = true;
-            textField.selectable = false;
-            textField.wordWrap = false;
-            textField.styleName = this;
-            
+			COMPILE::AS3
+			{
+	            textField.autoSize = TextFieldAutoSize.LEFT;
+	            textField.mouseEnabled = false;
+	            textField.multiline = true;
+	            textField.selectable = false;
+	            textField.wordWrap = false;
+	            textField.styleName = this;
+			}
+			
             if (childIndex == -1)
                 addChild(DisplayObject(textField));
             else 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as b/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
index 714e0bb..632309f 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IDeferredInstantiationUIComponent.as
@@ -49,6 +49,7 @@ public interface IDeferredInstantiationUIComponent extends IUIComponent
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
 	 */
+	COMPILE::LATER
     function set cacheHeuristic(value:Boolean):void;
 
 	//----------------------------------
@@ -63,6 +64,7 @@ public interface IDeferredInstantiationUIComponent extends IUIComponent
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
 	 */
+	COMPILE::LATER
     function get cachePolicy():String
 
 	//----------------------------------
@@ -123,6 +125,7 @@ public interface IDeferredInstantiationUIComponent extends IUIComponent
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
 	 */
+	COMPILE::LATER
 	function createReferenceOnParentDocument(
 						parentDocument:IFlexDisplayObject):void;
 	
@@ -140,6 +143,7 @@ public interface IDeferredInstantiationUIComponent extends IUIComponent
 	 *  @playerversion AIR 1.1
 	 *  @productversion Flex 3
 	 */
+	COMPILE::LATER
 	function deleteReferenceOnParentDocument(
 						parentDocument:IFlexDisplayObject):void;
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
index e9d9652..894bd46 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
@@ -22,6 +22,10 @@
  *  for web version of flash.display.DisplayObjectContainer
  *  
  */
+COMPILE::AS3
+{
+	import flash.display.DisplayObjectContainer;		
+}
 import flash.text.TextSnapshot;
 import flash.geom.Point;
 
@@ -33,7 +37,10 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    function addChild(child:DisplayObject):DisplayObject;
+	COMPILE::AS3
+    function addChild(child:flash.display.DisplayObject):flash.display.DisplayObject;
+	COMPILE::JS
+	function addChild(child:DisplayObject):DisplayObject;
    
     /**
      *  @copy flash.display.DisplayObjectContainer#addChildAt()
@@ -43,6 +50,9 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
+	function addChildAt(child:flash.display.DisplayObject, index:int):flash.display.DisplayObject;
+	COMPILE::JS
     function addChildAt(child:DisplayObject, index:int):DisplayObject;
     
     /**
@@ -53,7 +63,10 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    function removeChild(child:DisplayObject):DisplayObject;
+	COMPILE::AS3
+    function removeChild(child:flash.display.DisplayObject):flash.display.DisplayObject;
+	COMPILE::JS
+	function removeChild(child:DisplayObject):DisplayObject;
     
     /**
      *  @copy flash.display.DisplayObjectContainer#removeChildAt()
@@ -63,7 +76,10 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    function removeChildAt(index:int):DisplayObject;
+	COMPILE::AS3
+    function removeChildAt(index:int):flash.display.DisplayObject;
+	COMPILE::JS
+	function removeChildAt(index:int):DisplayObject;
 
     /**
      *  @copy flash.display.DisplayObjectContainer#getChildIndex()
@@ -73,7 +89,10 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    function getChildIndex(child:DisplayObject):int;
+	COMPILE::AS3
+    function getChildIndex(child:flash.display.DisplayObject):int;
+	COMPILE::JS
+	function getChildIndex(child:DisplayObject):int;
     
     /**
      *  @copy flash.display.DisplayObjectContainer#setChildIndex()
@@ -83,7 +102,10 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    function setChildIndex(child:DisplayObject, index:int):void;
+	COMPILE::AS3
+    function setChildIndex(child:flash.display.DisplayObject, index:int):void;
+	COMPILE::JS
+	function setChildIndex(child:DisplayObject, index:int):void;
 
     /**
      *  @copy flash.display.DisplayObjectContainer#getChildAt()
@@ -93,7 +115,10 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    function getChildAt(index:int):DisplayObject;
+	COMPILE::AS3
+    function getChildAt(index:int):flash.display.DisplayObject;
+	COMPILE::JS
+	function getChildAt(index:int):DisplayObject;
     
     /**
      *  @copy flash.display.DisplayObjectContainer#getChildByName()
@@ -103,7 +128,10 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    function getChildByName(name:String):DisplayObject;
+	COMPILE::AS3
+    function getChildByName(name:String):flash.display.DisplayObject;
+	COMPILE::JS
+	function getChildByName(name:String):DisplayObject;
 
     /**
      *  @copy flash.display.DisplayObjectContainer#numChildren
@@ -187,7 +215,10 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    function contains(child:DisplayObject):Boolean;
+	COMPILE::AS3
+    function contains(child:flash.display.DisplayObject):Boolean;
+	COMPILE::JS
+	function contains(child:DisplayObject):Boolean;
 
     /**
      *  @copy flash.display.DisplayObjectContainer#swapChildrenAt()

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
index 3d0dbc2..f84242d 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
@@ -32,7 +32,10 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    function get root():DisplayObject;
+	COMPILE::AS3
+    function get root():flash.display.DisplayObject;
+	COMPILE::JS
+	function get root():DisplayObject;
 
 
     /**
@@ -67,7 +70,10 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-    function get parent():DisplayObjectContainer;
+	COMPILE::AS3
+    function get parent():flash.display.DisplayObjectContainer;
+	COMPILE::JS
+	function get parent():DisplayObjectContainer;
 
 
     /**
@@ -91,9 +97,10 @@
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
-     */
     function get visible():Boolean;
     function set visible(value:Boolean):void;
+	 * already in IUIBase
+     */
 
 
     /**
@@ -103,9 +110,10 @@
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
-     */
     function get x():Number;
     function set x(value:Number):void;
+	* already in IUIBase
+	*/
 
 
     /**
@@ -115,9 +123,10 @@
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
-     */
     function get y():Number;
     function set y(value:Number):void;
+	 * already in IUIBase
+     */
 
 
     /**
@@ -156,7 +165,6 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-	COMPILE::LATER
     function get mouseX():Number; // note: no setter
 
 
@@ -168,7 +176,6 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-	COMPILE::LATER
     function get mouseY():Number; // note: no setter
 
 
@@ -193,9 +200,10 @@
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
-     */
     function get alpha():Number;
     function set alpha(value:Number):void;
+	 * already in IUIBase
+     */
 
 
     /**
@@ -205,9 +213,10 @@
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
-     */
     function get width():Number;
     function set width(value:Number):void;
+	 * already in IUIBase
+     */
 
     /**
      *  @copy flash.display.DisplayObject#height
@@ -216,9 +225,10 @@
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
-     */
     function get height():Number;
     function set height(value:Number):void;
+	 * already in IUIBase
+     */
 
 
     /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as b/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
index f622766..ecb8dd5 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
@@ -35,7 +35,6 @@ COMPILE::JS
 }
 import org.apache.flex.events.IEventDispatcher;
 import flex.display.TopOfDisplayList;
-import flex.display.DisplayObject;
 
 /**
  *  The IFlexDisplayObject interface defines the interface for skin elements.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as b/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
index 3f1464a..4691a12 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IVisualElement.as
@@ -241,11 +241,13 @@ public interface IVisualElement extends ILayoutElement, ILayoutDirectionElement
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
+	COMPILE::LATER
     function get designLayer():DesignLayer;
     
     /**
      *  @private
      */
+	COMPILE::LATER
     function set designLayer(value:DesignLayer):void;
 
     /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as b/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
index 427550e..9b2a960 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/UIComponent.as
@@ -35,7 +35,7 @@ COMPILE::AS3
 	import flash.display.DisplayObject;
 	import flash.display.DisplayObjectContainer;		
 	import flash.display.InteractiveObject;		
-	import flash.display.Sprite;
+//	import flash.display.Sprite;
 	import flash.display.GradientType;
 	import flash.display.Graphics;
 	import flash.display.Loader;
@@ -48,9 +48,10 @@ COMPILE::JS
 	import flex.display.DisplayObject;	
 	import flex.display.DisplayObjectContainer;	
 	import flex.display.InteractiveObject;	
+	import flex.display.Graphics;
 	import flex.display.Loader;
-	import flex.display.Sprite;	
 }
+import flex.display.Sprite;	
 /*
 import flash.display.Shader;
 */
@@ -158,7 +159,6 @@ import mx.validators.ValidationResult;
 
 use namespace mx_internal;
 
-import org.apache.flex.core.UIBase;
 import flex.system.DefinitionManager;
 import org.apache.flex.events.EventDispatcher;
 import org.apache.flex.events.IEventDispatcher;
@@ -1475,7 +1475,7 @@ include "../styles/metadata/AnchorStyles.as";
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-public class UIComponent extends UIBase
+public class UIComponent extends Sprite
     implements IAutomationObject, IChildList, IConstraintClient,
     IDeferredInstantiationUIComponent, IFlexDisplayObject, IFlexModule,
     IInvalidating, ILayoutManagerClient, IPropertyChangeNotifier,
@@ -1706,8 +1706,11 @@ public class UIComponent extends UIBase
             if (UIComponentGlobals.callLaterSuspendCount == 0)
             {
                 var sm:ISystemManager = SystemManagerGlobals.topLevelSystemManagers[0];
+				COMPILE::AS3
+				{
                 if (sm && sm.topOfDisplayList)
                     sm.topOfDisplayList.invalidate();
+				}
             }
         }
     }
@@ -1731,9 +1734,12 @@ public class UIComponent extends UIBase
         super();
         
         // Override  variables in superclasses.
+		COMPILE::AS3
+		{
         focusRect = false; // We do our own focus drawing.
         // We are tab enabled by default if IFocusManagerComponent
         tabEnabled = (this is IFocusManagerComponent);
+		}
         tabFocusEnabled = (this is IFocusManagerComponent);
 
         // Whether the component can accept user interaction.
@@ -2088,6 +2094,7 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     public function get accessibilityName():String
     {
         return accessibilityProperties ? accessibilityProperties.name : "";
@@ -2472,9 +2479,14 @@ public class UIComponent extends UIBase
         {
             return _parent ? _parent : super.parent;
         }
-        catch (e:SecurityError)
+        catch (e:Error)
         {
             // trace("UIComponent.get parent(): " + e);
+			COMPILE::AS3
+			{
+				if (!(e is SecurityError))
+					throw e;
+			}
         }
 
         return null;
@@ -2781,6 +2793,7 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     override public function get rotationZ():Number
     {
         return rotation;
@@ -2788,6 +2801,7 @@ public class UIComponent extends UIBase
     /**
      *  @private
      */
+	COMPILE::LATER
     override public function set rotationZ(value:Number):void
     {
         rotation = value;
@@ -3107,6 +3121,7 @@ public class UIComponent extends UIBase
      *  @productversion Flex 3
      */
     
+	COMPILE::LATER
     override public function get scaleX():Number
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
@@ -3119,8 +3134,10 @@ public class UIComponent extends UIBase
      *  @private
      *  Storage for the scaleX property.
      */
+	COMPILE::LATER
     private var _scaleX:Number = 1.0;
     
+	COMPILE::LATER
     override public function set scaleX(value:Number):void
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
@@ -3187,6 +3204,7 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     override public function get scaleY():Number
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
@@ -3201,9 +3219,11 @@ public class UIComponent extends UIBase
      *  @private
      *  Storage for the scaleY property.
      */
+	COMPILE::LATER
     private var _scaleY:Number = 1.0;
 
 
+	COMPILE::LATER
     override public function set scaleY(value:Number):void
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
@@ -3310,11 +3330,13 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     mx_internal final function get $scaleX():Number
     {
         return super.scaleX;
     }
 
+	COMPILE::LATER
     mx_internal final function set $scaleX(value:Number):void
     {
         super.scaleX = value;
@@ -3332,11 +3354,13 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     mx_internal final function get $scaleY():Number
     {
         return super.scaleY;
     }
 
+	COMPILE::LATER
     mx_internal final function set $scaleY(value:Number):void
     {
         super.scaleY = value;
@@ -3414,9 +3438,12 @@ public class UIComponent extends UIBase
         if (!initialized)
             return;
 
+		COMPILE::LATER
+		{
         if (designLayer && !designLayer.effectiveVisibility) 
             value = false; 
-        
+		}
+		
         if ($visible == value)
             return;
 
@@ -3463,8 +3490,11 @@ public class UIComponent extends UIBase
         {
             _alpha = value;
         
+			COMPILE::LATER
+			{
             if (designLayer)
                 value = value * designLayer.effectiveAlpha; 
+			}
             
             $alpha = value;
 
@@ -3545,6 +3575,7 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     override public function get doubleClickEnabled():Boolean
     {
         return super.doubleClickEnabled;
@@ -3554,6 +3585,7 @@ public class UIComponent extends UIBase
      *  @private
      *  Propagate to children.
      */
+	COMPILE::LATER
     override public function set doubleClickEnabled(value:Boolean):void
     {
         super.doubleClickEnabled = value;
@@ -3621,6 +3653,7 @@ public class UIComponent extends UIBase
     /**
      *  @private
      */
+	COMPILE::LATER
     override public function set cacheAsBitmap(value:Boolean):void
     {
         super.cacheAsBitmap = value;
@@ -3704,6 +3737,7 @@ public class UIComponent extends UIBase
      *  @private
      *  Storage for the layer property.
      */
+	COMPILE::LATER
     private var _designLayer:DesignLayer;
     
     [Inspectable (environment='none')]
@@ -3716,6 +3750,7 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
+	COMPILE::LATER
     public function get designLayer():DesignLayer
     {
         return _designLayer;
@@ -3724,6 +3759,7 @@ public class UIComponent extends UIBase
     /**
      *  @private
      */
+	COMPILE::LATER
     public function set designLayer(value:DesignLayer):void
     {
         if (_designLayer)
@@ -3781,6 +3817,7 @@ public class UIComponent extends UIBase
      *  Note that this "base property" is final and cannot be overridden,
      *  so you can count on it to reflect what is happening at the player level.
      */
+	COMPILE::LATER
     mx_internal final function get $blendMode():String
     {
         return super.blendMode;
@@ -3789,6 +3826,7 @@ public class UIComponent extends UIBase
     /**
      *  @private
      */
+	COMPILE::LATER
     mx_internal final function set $blendMode(value:String):void
     {
         super.blendMode = value;
@@ -4998,6 +5036,7 @@ public class UIComponent extends UIBase
     /**
      *  @private
      */
+	COMPILE::LATER
     public function set cachePolicy(value:String):void
     {
         if (_cachePolicy != value)
@@ -5036,6 +5075,7 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     public function set cacheHeuristic(value:Boolean):void
     {
         if (_cachePolicy == UIComponentCachePolicy.AUTO)
@@ -5092,7 +5132,10 @@ public class UIComponent extends UIBase
 
             value.x = 0;
             value.y = 0;
+			COMPILE::AS3
+			{
             value.scrollRect = null;
+			}
 
             _focusPane = value;
         }
@@ -5100,7 +5143,10 @@ public class UIComponent extends UIBase
         {
             removeChild(_focusPane);
 
+			COMPILE::AS3
+			{
             _focusPane.mask = null;
+			}
             _focusPane = null;
         }
     }
@@ -7429,6 +7475,7 @@ public class UIComponent extends UIBase
     /**
      *  @private
      */
+	COMPILE::AS3
     override public function stopDrag():void
     {
         super.stopDrag();
@@ -7544,8 +7591,11 @@ public class UIComponent extends UIBase
                 listeningForRender = true;
             }
 
+			COMPILE::AS3
+			{
             if (_systemManager.topOfDisplayList)
                 _systemManager.topOfDisplayList.invalidate();
+			}
         }
     }
 
@@ -7634,10 +7684,13 @@ public class UIComponent extends UIBase
         else if (child is IUITextField)
             IUITextField(child).nestLevel = nestLevel + 1;
 
+		COMPILE::LATER
+		{
         if (child is InteractiveObject)
             if (doubleClickEnabled)
                 InteractiveObject(child).doubleClickEnabled = true;
-
+		}
+		
         // Sets up the inheritingStyles and nonInheritingStyles objects
         // and their proto chains so that getStyle() works.
         // If this object already has some children,
@@ -8378,6 +8431,8 @@ public class UIComponent extends UIBase
 				}
 				case 3:
 				{
+					COMPILE::LATER
+					{
 					propertyName = bindingData[index++];
 					value = bindingData[index++];
 					if (value is Array)
@@ -8389,6 +8444,7 @@ public class UIComponent extends UIBase
 						theBindings.push(bindings[bindingIndex]);
 					w = new XMLWatcher(propertyName, theBindings);
 					break;
+					}
 				}
 			}
 			watchers.push(w);
@@ -8795,6 +8851,7 @@ public class UIComponent extends UIBase
     public function callLater(method:Function,
                               args:Array /* of Object */ = null):void
     {
+		
         // trace(">>calllater " + this)
         // Push the method and the arguments onto the method queue.
         methodQueue.push(new MethodQueueElement(method, args));
@@ -8815,9 +8872,12 @@ public class UIComponent extends UIBase
                 listeningForRender = true;
             }
 
+			COMPILE::AS3
+			{
             // Force a "render" event to happen soon
             if (sm.topOfDisplayList)
                 sm.topOfDisplayList.invalidate();
+			}
         }
 
         // trace("<<calllater " + this)
@@ -8903,6 +8963,8 @@ public class UIComponent extends UIBase
     {
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
+			COMPILE::LATER
+			{
             if (_scaleX != oldScaleX)
             {
                 var scalingFactorX:Number = Math.abs(_scaleX / oldScaleX);
@@ -8932,6 +8994,7 @@ public class UIComponent extends UIBase
     
                 super.scaleY = oldScaleY = _scaleY;
             }
+			}
         }
         else
         {
@@ -8943,8 +9006,11 @@ public class UIComponent extends UIBase
                 currentState = newState;
             }
            
+			COMPILE::LATER
+			{
             oldScaleX = scaleX;
             oldScaleY = scaleY;
+			}
         }
         
         // Typically state changes occur immediately, but during
@@ -9139,6 +9205,8 @@ public class UIComponent extends UIBase
         }
         else
         {
+			COMPILE::LATER
+			{
             var xScale:Number = Math.abs(scaleX);
             var yScale:Number = Math.abs(scaleY);
 
@@ -9156,7 +9224,7 @@ public class UIComponent extends UIBase
                     _measuredHeight /= yScale;
                 }
             }
-
+			}
             measure();
 
             invalidateSizeFlag = false;
@@ -9173,6 +9241,8 @@ public class UIComponent extends UIBase
             if (!isNaN(explicitMaxHeight) && measuredHeight > explicitMaxHeight)
                 measuredHeight = explicitMaxHeight;
 
+			COMPILE::LATER
+			{
             if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
             {
                 if (xScale != 1.0)
@@ -9187,9 +9257,13 @@ public class UIComponent extends UIBase
                     _measuredHeight *= yScale;
                 }
             }
+			}
         }
 
+		COMPILE::LATER
+		{
         adjustSizesForScaleChanges();
+		}
 
         if (isNaN(oldMinWidth))
         {
@@ -9326,6 +9400,7 @@ public class UIComponent extends UIBase
     /**
      *  @private
      */
+	COMPILE::LATER
     mx_internal function adjustSizesForScaleChanges():void
     {
         var xScale:Number = scaleX;
@@ -9422,10 +9497,14 @@ public class UIComponent extends UIBase
      */
     protected function get unscaledWidth():Number
     {
+		COMPILE::LATER
+		{
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
             return width / Math.abs(scaleX);
         else
             return width;
+		}
+		return width;
     }
 
     /**
@@ -9482,10 +9561,14 @@ public class UIComponent extends UIBase
      */
     protected function get unscaledHeight():Number
     {
+		COMPILE::LATER
+		{
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
             return height / Math.abs(scaleY);
         else
             return height;
+		}
+		return height;
     }
 
     /**
@@ -9642,6 +9725,8 @@ public class UIComponent extends UIBase
 			
             var unscaledWidth:Number = width;
             var unscaledHeight:Number = height;
+			COMPILE::LATER
+			{
             if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
             {
                 unscaledWidth = scaleX == 0 ? 0 : width / scaleX;
@@ -9655,6 +9740,7 @@ public class UIComponent extends UIBase
                 if (Math.abs(unscaledHeight - lastUnscaledHeight) < .00001)
                     unscaledHeight = lastUnscaledHeight;
             }
+			}
             updateDisplayList(unscaledWidth,unscaledHeight);
             lastUnscaledWidth = unscaledWidth;
             lastUnscaledHeight = unscaledHeight;
@@ -10725,8 +10811,13 @@ public class UIComponent extends UIBase
         var height:Number;
         if (obj is UIComponent)
         {
+			COMPILE::LATER
+			{
             width = UIComponent(obj).unscaledWidth * Math.abs(obj.scaleX);
             height = UIComponent(obj).unscaledHeight * Math.abs(obj.scaleY);
+			}
+			width = UIComponent(obj).unscaledWidth;
+			height = UIComponent(obj).unscaledHeight;
         }
         else
         {
@@ -10768,6 +10859,8 @@ public class UIComponent extends UIBase
             
             var pt:Point;
             
+			COMPILE::LATER
+			{
             if (rotation)
             {
                 var rotRad:Number = rotation * Math.PI / 180;
@@ -10780,7 +10873,8 @@ public class UIComponent extends UIBase
                 pt = new Point(obj.x - thickness, obj.y - thickness);
                 DisplayObject(focusObj).rotation = 0;
             }
-            
+			}
+			
             if (obj.parent == this)
             {
                 // This adjustment only works if obj is a direct child of this.
@@ -11273,7 +11367,14 @@ public class UIComponent extends UIBase
         {
             var message:String = resourceManager.getString(
                 "core", "stateUndefined", [ stateName ]);
-            throw new ArgumentError(message);
+			COMPILE::AS3
+			{
+				throw new ArgumentError(message);
+			}
+			COMPILE::JS
+			{
+				throw new Error(message);
+			}
         }
         return null;
     }
@@ -11935,7 +12036,14 @@ public class UIComponent extends UIBase
         {
             var message:String = resourceManager.getString(
                 "core", "badParameter", [ styleClient ]);
-            throw new ArgumentError(message);
+			COMPILE::AS3
+			{
+	            throw new ArgumentError(message);
+			}
+			COMPILE::JS
+			{
+				throw new Error(message);
+			}
         }
     }
     
@@ -12363,7 +12471,7 @@ public class UIComponent extends UIBase
         g.clear();
         g.beginFill(color);
 
-        g.drawRoundRect(targetArea.x, targetArea.y,
+        g.drawRoundRect(targetArea.left, targetArea.top,
                         targetArea.width, targetArea.height,
                         targetArea.cornerRadius * 2,
                         targetArea.cornerRadius * 2);
@@ -12592,6 +12700,7 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     public function createReferenceOnParentDocument(
                         parentDocument:IFlexDisplayObject):void
     {
@@ -12645,6 +12754,7 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     public function deleteReferenceOnParentDocument(
                                 parentDocument:IFlexDisplayObject):void
     {
@@ -13043,8 +13153,16 @@ public class UIComponent extends UIBase
     {
         //reset systemManager in case we've been reparented to a new Window.
         //systemManager will be set on get systemManager()
-        if (event.eventPhase != EventPhase.AT_TARGET)
-            return;
+		COMPILE::AS3
+		{
+	        if (event.eventPhase != EventPhase.AT_TARGET)
+	            return;
+		}
+		COMPILE::JS
+		{
+			if (event.target != event.currentTarget)
+				return;			
+		}
 
         try
         {
@@ -13054,10 +13172,15 @@ public class UIComponent extends UIBase
                 return;
             }
         }
-        catch (error:SecurityError)
-        {
-
-        } 
+		catch (e:Error)
+		{
+			// trace("UIComponent.get parent(): " + e);
+			COMPILE::AS3
+			{
+				if (!(e is SecurityError))
+					throw e;
+			}
+		}
     }
     
     /**
@@ -13066,8 +13189,16 @@ public class UIComponent extends UIBase
      */
     private function removedHandler(event:flex.events.Event):void
     {
-        if (event.eventPhase != EventPhase.AT_TARGET)
-            return;
+		COMPILE::AS3
+		{
+	        if (event.eventPhase != EventPhase.AT_TARGET)
+	            return;
+		}
+		COMPILE::JS
+		{
+			if (event.target != event.currentTarget)
+				return;			
+		}
 
         try
         {
@@ -13077,10 +13208,15 @@ public class UIComponent extends UIBase
                 return;
             }
         }
-        catch (error:SecurityError)
-        {
-
-        }
+		catch (e:Error)
+		{
+			// trace("UIComponent.get parent(): " + e);
+			COMPILE::AS3
+			{
+				if (!(e is SecurityError))
+					throw e;
+			}
+		}
     }
     
     /**
@@ -13350,11 +13486,17 @@ public class UIComponent extends UIBase
                     child = child.parent;
             }
         }
-        catch (e:SecurityError)
-        {
-            // You can't own what you don't have access to.
-            return false;
-        }
+		catch (e:Error)
+		{
+			// trace("UIComponent.get parent(): " + e);
+			COMPILE::AS3
+			{
+				if (!(e is SecurityError))
+					throw e;
+			}
+			// You can't own what you don't have access to.
+			return false;
+		}
 
         return child == this;
     }
@@ -13784,6 +13926,8 @@ public class UIComponent extends UIBase
             else
                 current = current.parent;
 
+			COMPILE::AS3
+			{
             if (current && current.scrollRect)
             {
                 // clip the bounds by the scroll rect
@@ -13793,6 +13937,7 @@ public class UIComponent extends UIBase
                 currentRect.y = pt.y;
                 bounds = Rectangle.convert(bounds.intersection(currentRect));
             }
+			}
         } while (current && current != targetParent);
 
         return bounds;
@@ -13851,6 +13996,7 @@ public class UIComponent extends UIBase
     /**
      *  @private
      */
+	COMPILE::AS3
     override public function get mouseX():Number
     {
         if (!root || root is TopOfDisplayList || root[fakeMouseX] === undefined)
@@ -13861,6 +14007,7 @@ public class UIComponent extends UIBase
     /**
      *  @private
      */
+	COMPILE::AS3
     override public function get mouseY():Number
     {
         if (!root || root is TopOfDisplayList || root[fakeMouseY] === undefined)
@@ -14414,6 +14561,7 @@ public class UIComponent extends UIBase
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
+	COMPILE::LATER
     protected function applyComputedMatrix():void
     {
         _layoutFeatures.updatePending = false;
@@ -14759,6 +14907,38 @@ public class UIComponent extends UIBase
             return super.transform.matrix;
         }
     }
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods
+	//
+	//--------------------------------------------------------------------------
+	
+	/**
+	 *  Returns a string indicating the location of this object
+	 *  within the hierarchy of DisplayObjects in the Application.
+	 *  This string, such as <code>"MyApp0.HBox5.Button17"</code>,
+	 *  is built by the <code>displayObjectToString()</code> method
+	 *  of the mx.utils.NameUtils class from the <code>name</code>
+	 *  property of the object and its ancestors.
+	 *  
+	 *  @return A String indicating the location of this object
+	 *  within the DisplayObject hierarchy. 
+	 *
+	 *  @see flash.display.DisplayObject#name
+	 *  @see mx.utils.NameUtil#displayObjectToString()
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	COMPILE::JS
+	public function toString():String
+	{
+		return NameUtil.displayObjectToString(this);
+	}	
+
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as b/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
index 28d61ae..6f4242b 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/UITextField.as
@@ -429,8 +429,11 @@ public class UITextField extends TextField
     {
         _x = value;
         super.x = value;
+		COMPILE::LATER
+		{
         if (mirror)
             validateTransformMatrix();
+		}
     }
     
     /**
@@ -455,8 +458,11 @@ public class UITextField extends TextField
         var changed:Boolean = super.width != value;
         
         super.width = value;
+		COMPILE::LATER
+		{
         if (mirror)
             validateTransformMatrix();
+		}
         
         // Since changing the width may reflow the text which can
         // change the textWidth and/or textHeight dispatch an event so 
@@ -783,6 +789,7 @@ public class UITextField extends TextField
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     public function get className():String
     {
         return NameUtil.getUnqualifiedClassName(this);
@@ -888,6 +895,7 @@ public class UITextField extends TextField
      *  @private
      *  Storage for the explicitHeight property.
      */
+	COMPILE::AS3
     private var _explicitHeight:Number;
 
     /**
@@ -898,6 +906,7 @@ public class UITextField extends TextField
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function get explicitHeight():Number
     {
         return _explicitHeight;
@@ -906,6 +915,7 @@ public class UITextField extends TextField
     /**
      *  @private
      */
+	COMPILE::AS3
     public function set explicitHeight(value:Number):void
     {
         _explicitHeight = value;
@@ -1003,6 +1013,7 @@ public class UITextField extends TextField
      *  @private
      *  Storage for the explicitWidth property.
      */
+	COMPILE::AS3
     private var _explicitWidth:Number;
 
     /**
@@ -1013,6 +1024,7 @@ public class UITextField extends TextField
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function get explicitWidth():Number
     {
         return _explicitWidth;
@@ -1021,6 +1033,7 @@ public class UITextField extends TextField
     /**
      *  @private
      */
+	COMPILE::AS3
     public function set explicitWidth(value:Number):void
     {
         _explicitWidth = value;
@@ -1583,6 +1596,7 @@ public class UITextField extends TextField
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function get percentHeight():Number
     {
         return NaN;
@@ -1591,6 +1605,7 @@ public class UITextField extends TextField
     /**
      *  @private
      */
+	COMPILE::AS3
      public function set percentHeight(value:Number):void
      {
      }
@@ -1607,6 +1622,7 @@ public class UITextField extends TextField
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	 COMPILE::AS3
     public function get percentWidth():Number
     {
         return NaN;
@@ -1615,6 +1631,7 @@ public class UITextField extends TextField
     /**
      *  @private
      */
+	COMPILE::AS3
      public function set percentWidth(value:Number):void
      {
      }
@@ -1717,6 +1734,10 @@ public class UITextField extends TextField
             styleChanged("styleName");
         }
 
+		COMPILE::JS
+		{
+			element.className = styleName.toString();
+		}
         // If we don't have a parent pointer yet, then we'll wait
         // and initialize the proto chain when the parentChanged()
         // method is called.
@@ -1922,7 +1943,9 @@ public class UITextField extends TextField
     
     /**
      *  @private
+	 *  TODO (aharui): I'm not seeing this in the doc
      */
+	COMPILE::LATER
     override public function insertXMLText(beginIndex:int, endIndex:int, 
                                            richText:String, 
                                            pasting:Boolean = false):void
@@ -2016,6 +2039,7 @@ public class UITextField extends TextField
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function setFocus():void
     {
         systemManager.topOfDisplayList.focus = this;
@@ -2215,8 +2239,11 @@ public class UITextField extends TextField
         {
             const oldMirror:Boolean = mirror;
             mirror = getStyle("layoutDirection") == LayoutDirection.RTL;
+			COMPILE::LATER
+			{
             if (mirror || oldMirror)
                 validateTransformMatrix();
+			}
         }
 
         // Set the text format.
@@ -2265,6 +2292,7 @@ public class UITextField extends TextField
      *  Update the transform.matrix based on the mirror flag.  This method must be 
      *  called when x, width, or layoutDirection changes.
      */
+	COMPILE::LATER
     private function validateTransformMatrix():void
     {
         if (mirror)
@@ -2375,6 +2403,7 @@ public class UITextField extends TextField
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function setColor(color:uint):void
     {
         explicitColor = color;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as b/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
index 08ba3aa..bcc7c48 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/UITextFormat.as
@@ -20,8 +20,16 @@
 package mx.core
 {
 
-import flash.text.TextFormat;
-import flex.text.TextLineMetrics;
+COMPILE::AS3
+{
+	import flash.text.TextFormat;
+	import flash.text.TextLineMetrics;		
+}
+COMPILE::JS
+{
+	import flex.text.TextFormat;
+	import flex.text.TextLineMetrics;		
+}
 
 import mx.managers.ISystemManager;
 
@@ -639,7 +647,10 @@ public class UITextFormat extends TextFormat
         letterSpacing = source.letterSpacing;
         blockIndent = source.blockIndent;
         bullet = source.bullet;
+		COMPILE::LATER
+		{
         display = source.display;
+		}
         indent = source.indent;
         kerning = source.kerning;
         tabStops = source.tabStops;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as b/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
index e675265..f54f656 100644
--- a/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
@@ -470,20 +470,36 @@ public class EffectManager extends EventDispatcher
                 if (info.vectorEffectsCount == 0 &&
                     target is IDeferredInstantiationUIComponent)
                 {
-                    IDeferredInstantiationUIComponent(target).cacheHeuristic = true;
+					COMPILE::LATER
+					{
+	                    IDeferredInstantiationUIComponent(target).cacheHeuristic = true;
+					}
                 }
             }
             else
             {
-                // If a vector effect started playing, forcibly uncache
-                // the target regardless of anything else.
-                if (info.vectorEffectsCount++ == 0 &&
-                    target is IDeferredInstantiationUIComponent &&
-                    IDeferredInstantiationUIComponent(target).cachePolicy == UIComponentCachePolicy.AUTO)
-                {
-                    target.cacheAsBitmap = false;
-                }
-            }
+				COMPILE::LATER
+				{
+	                // If a vector effect started playing, forcibly uncache
+	                // the target regardless of anything else.
+	                if (info.vectorEffectsCount++ == 0 &&
+	                    target is IDeferredInstantiationUIComponent &&
+	                    IDeferredInstantiationUIComponent(target).cachePolicy == UIComponentCachePolicy.AUTO)
+	                {
+	                    target.cacheAsBitmap = false;
+	                }
+	            }
+				// If a vector effect started playing, forcibly uncache
+				// the target regardless of anything else.
+				if (info.vectorEffectsCount++ == 0 &&
+					target is IDeferredInstantiationUIComponent)
+				{
+					COMPILE::LATER
+					{
+					target.cacheAsBitmap = false;
+					}
+				}
+			}
         }
         else // effect end
         {
@@ -492,8 +508,11 @@ public class EffectManager extends EventDispatcher
                 if (info.bitmapEffectsCount != 0)
                     info.bitmapEffectsCount--;
 
+				COMPILE::LATER
+				{
                 if (target is IDeferredInstantiationUIComponent)
                     IDeferredInstantiationUIComponent(target).cacheHeuristic = false;
+				}
             }
             else
             {
@@ -506,11 +525,14 @@ public class EffectManager extends EventDispatcher
                     {
                         // Crank up the counter.
                         n = info.bitmapEffectsCount;
+						COMPILE::LATER
+						{
                         for (i = 0; i < n; i++)
                         {
                             if (target is IDeferredInstantiationUIComponent)
                             IDeferredInstantiationUIComponent(target).cacheHeuristic = true;
                         }
+						}
                     }
                 }
             }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
index c8a250d..6f31e27 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
@@ -54,6 +54,7 @@ COMPILE::JS
 	import flex.display.MovieClip;
 	import flex.display.Sprite;
 	import flex.events.Event;
+	import org.apache.flex.events.MouseEvent;
 	import flex.events.EventPhase;
 	import flex.ui.Keyboard;
 	
@@ -301,6 +302,7 @@ public class SystemManager extends MovieClip
 		COMPILE::JS
 		{
 			initHandler(null);
+			super.addEventListener(MouseEvent.MOUSE_MOVE, js_mouseMoveHandler);
 		}
             
     }
@@ -841,18 +843,9 @@ public class SystemManager extends MovieClip
 
         if (!_cursorChildren)
         {
-			COMPILE::AS3
-			{
             _cursorChildren = new SystemChildrenList(this,
                 new QName(mx_internal, "toolTipIndex"),
                 new QName(mx_internal, "cursorIndex"));
-			}
-			COMPILE::JS
-			{
-				_cursorChildren = new SystemChildrenList(this,
-					"toolTipIndex",
-					"cursorIndex");				
-			}
         }
 
         return _cursorChildren;
@@ -1409,18 +1402,9 @@ public class SystemManager extends MovieClip
 
         if (!_popUpChildren)
         {
-			COMPILE::AS3
-			{
             _popUpChildren = new SystemChildrenList(this,
                 new QName(mx_internal, "noTopMostIndex"),
                 new QName(mx_internal, "topMostIndex"));
-			}
-			COMPILE::JS
-			{
-				_popUpChildren = new SystemChildrenList(this,
-					"noTopMostIndex",
-					"topMostIndex");				
-			}
         }
 
         return _popUpChildren;
@@ -1513,18 +1497,9 @@ public class SystemManager extends MovieClip
 
         if (!_toolTipChildren)
         {
-			COMPILE::AS3
-			{
             _toolTipChildren = new SystemChildrenList(this,
                 new QName(mx_internal, "topMostIndex"),
                 new QName(mx_internal, "toolTipIndex"));
-			}
-			COMPILE::JS
-			{
-				_toolTipChildren = new SystemChildrenList(this,
-					"topMostIndex",
-					"toolTipIndex");
-			}
         }
 
         return _toolTipChildren;
@@ -2206,16 +2181,8 @@ public class SystemManager extends MovieClip
         // we redirect public API to parent systemmanager
         if (!_popUpChildren)
         {
-			COMPILE::AS3
-			{
 				_popUpChildren = new SystemChildrenList(
 					this, new QName(mx_internal, "noTopMostIndex"), new QName(mx_internal, "topMostIndex"));					
-			}
-			COMPILE::JS
-			{
-				_popUpChildren = new SystemChildrenList(
-					this, "noTopMostIndex", "topMostIndex");					
-			}
         }
         _popUpChildren.addChild(preloader);
 
@@ -3971,6 +3938,16 @@ public class SystemManager extends MovieClip
 		return _topOfDisplayList;
 	}
 	
+	/**
+	 *  @private
+	 *  Track mouse moves in order to determine idle
+	 */
+	COMPILE::JS
+	private function js_mouseMoveHandler(event:MouseEvent):void
+	{
+		SystemManagerGlobals.lastMouseEvent = event;
+	}
+	
 
 }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
index 4b19eeb..c360df8 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManagerGlobals.as
@@ -19,6 +19,10 @@
 
 package mx.managers
 {
+COMPILE::JS
+{
+	import org.apache.flex.events.MouseEvent;		
+}
 
 [ExcludeClass]
 
@@ -50,6 +54,11 @@ public class SystemManagerGlobals
 	 *  in the application..
      */
 	public static var parameters:Object;
+	
+	COMPILE::JS
+	{
+		public static var lastMouseEvent:MouseEvent;
+	}
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as b/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
index a882de4..a1c6f2f 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/ToolTipManagerImpl.as
@@ -1251,7 +1251,10 @@ public class ToolTipManagerImpl extends EventDispatcher
             
             var pos:Point = new Point(x, y);
             pos = PointUtils.localToGlobal(pos, sm);
-            pos = PointUtils.globalToLocal(pos, sm.getSandboxRoot());
+			COMPILE::LATER
+			{
+	            pos = PointUtils.globalToLocal(pos, sm.getSandboxRoot());
+			}
             x = pos.x;
             y = pos.y;
         }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as b/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
index b1f31f2..a6f1591 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/ObjectProxy.as
@@ -33,6 +33,7 @@ import flash.utils.flash_proxy;
 COMPILE::JS
 {
 	import org.apache.flex.events.Event;	
+	import flex.utils.IExternalizable;
 }
 import org.apache.flex.utils.Proxy;
 import mx.core.IPropertyChangeNotifier;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as b/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
index 6a19b2e..b9de66c 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/Platform.as
@@ -21,7 +21,7 @@ package mx.utils
 {
 
 import flash.system.Capabilities;
-import flash.utils.getDefinitionByName;
+import org.apache.flex.reflection.getDefinitionByName;
 
 /**
  *  The Platform utility class contains several static methods to check what

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a23bd593/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml b/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
index 57a36d3..63e54ff 100644
--- a/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
+++ b/frameworks/projects/MX/src/main/resources/compile-asjs-config.xml
@@ -30,7 +30,7 @@
 		<binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
 		<binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
 		<binding-value-change-event-type>valueChange</binding-value-change-event-type>
-
+        <allow-subclass-overrides>true</allow-subclass-overrides>
         <keep-as3-metadata>
           <name>Bindable</name>
           <name>Managed</name>
@@ -49,6 +49,8 @@
             <path-element>../../../../../externs/Core.swc</path-element>
             <path-element>../../../../../externs/Graphics.swc</path-element>
             <path-element>../../../../../externs/Collections.swc</path-element>
+            <path-element>../../../../../externs/Reflection.swc</path-element>
+            <path-element>../../../../../externs/HTML.swc</path-element>
         </library-path>
         
         <namespaces>


[07/37] git commit: [flex-asjs] [refs/heads/spark] - Added IArrayList interface and updated associated classes.

Posted by ah...@apache.org.
Added IArrayList interface and updated associated classes.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/60670e86
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/60670e86
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/60670e86

Branch: refs/heads/spark
Commit: 60670e866344799df480021d87d38a0a842c2c87
Parents: 59b8e43
Author: Peter Ent <pe...@apache.org>
Authored: Thu Feb 18 13:24:06 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Feb 18 13:24:06 2016 -0500

----------------------------------------------------------------------
 .../org/apache/flex/collections/ArrayList.as    | 114 ++++++------
 .../org/apache/flex/collections/IArrayList.as   | 178 +++++++++++++++++++
 .../DataItemRendererFactoryForArrayList.as      |  27 ++-
 .../beads/models/ArrayListSelectionModel.as     |  64 +++----
 4 files changed, 286 insertions(+), 97 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60670e86/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/ArrayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/ArrayList.as b/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/ArrayList.as
index 58d44e8..6f26e25 100644
--- a/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/ArrayList.as
+++ b/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/ArrayList.as
@@ -17,7 +17,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.collections
-{	
+{
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.events.Event;
@@ -25,67 +25,67 @@ package org.apache.flex.collections
 	import org.apache.flex.events.IEventDispatcher;
     import org.apache.flex.collections.parsers.IInputParser;
     import org.apache.flex.collections.converters.IItemConverter;
-    
+
     //--------------------------------------
     //  Events
     //--------------------------------------
-	
+
 	/**
 	 *  Dispatched when the collection's underlying source array
 	 *  is changed.
-	 *  
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
 	[Event(name="collectionChanged", type="org.apache.flex.events.Event")]
-	
+
 	/**
 	 *  Dispatched when the collection has added an item.
-	 *  
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
 	[Event(name="itemAdded", type="org.apache.flex.events.Event")]
-	
+
 	/**
 	 *  Dispatched when the collection has removed an item.
-	 *  
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
 	[Event(name="itemRemoved", type="org.apache.flex.events.Event")]
-	
+
 	/**
 	 *  Dispatched when the collection has updated an item.
-	 *  
+	 *
 	 *  @langversion 3.0
 	 *  @playerversion Flash 10.2
 	 *  @playerversion AIR 2.6
 	 *  @productversion FlexJS 0.0
 	 */
 	[Event(name="itemUpdated", type="org.apache.flex.events.Event")]
-    
+
     /**
      *  The ArrayList class provides an event-driven wrapper for the
 	 *  standard Array. Events are dispatched when items are added, removed,
 	 *  or changed.
-     * 
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
      *  @productversion FlexJS 0.0
      */
-	public class ArrayList extends EventDispatcher implements IBead, ICollection
+	public class ArrayList extends EventDispatcher implements IBead, ICollection, IArrayList
 	{
         /**
          *  Constructor.
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -99,10 +99,10 @@ package org.apache.flex.collections
 		}
 
         private var _id:String;
-        
+
         /**
          *  @copy org.apache.flex.core.UIBase#id
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -124,12 +124,12 @@ package org.apache.flex.collections
 				dispatchEvent(new Event("idChanged"));
 			}
 		}
-		
+
         private var _strand:IStrand;
-        
+
         /**
          *  @copy org.apache.flex.core.UIBase#strand
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -140,12 +140,12 @@ package org.apache.flex.collections
             _strand = value;
 			_source = new Array();
         }
-		
+
 		private var _source:Array;
-        
+
         /**
          *  The array of raw data needing conversion.
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -155,7 +155,7 @@ package org.apache.flex.collections
 		{
 			return _source;
 		}
-		
+
 		public function set source(value:Array):void
 		{
 			if (_source != value) {
@@ -164,10 +164,10 @@ package org.apache.flex.collections
 				dispatchEvent(new Event("collectionChanged"));
 			}
 		}
-		
+
 		/**
 		 * Returns a copy of the source array.
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -177,10 +177,10 @@ package org.apache.flex.collections
 		{
 			return _source.concat();
 		}
-        
+
         /**
          *  Fetches an item from the collection
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -189,11 +189,11 @@ package org.apache.flex.collections
         public function getItemAt(index:int):Object
         {
             return _source[index];
-        } 
-		
+        }
+
 		/**
 		 *  Fetches an item from the collection given an index.
-		 *  
+		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
@@ -208,10 +208,10 @@ package org.apache.flex.collections
 			}
 			return -1;
 		}
-		
+
 		/**
 		 *  Adds an item to the end of the array.
-		 *  
+		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
@@ -221,10 +221,10 @@ package org.apache.flex.collections
 		{
 			addItemAt(item, length);
 		}
-		
+
 		/**
 		 *  Inserts an item to a specific location within the array.
-		 *  
+		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
@@ -233,7 +233,7 @@ package org.apache.flex.collections
 		public function addItemAt(item:Object, index:int):void
 		{
 			const spliceUpperBound:int = length;
-			
+
 			if (index < spliceUpperBound && index > 0)
 			{
 				source.splice(index, 0, item);
@@ -246,19 +246,19 @@ package org.apache.flex.collections
 			{
 				source.unshift(item);
 			}
-			else 
+			else
 			{
 				// error
 				return;
 			}
-			
+
 			dispatchEvent(new Event("itemAdded"));
 		}
-		
+
 		/**
 		 *  Replaces the item at the given index with a new item and
 		 *  returns the old item.
-		 *  
+		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
@@ -268,7 +268,7 @@ package org.apache.flex.collections
 		{
 			const spliceUpperBound:int = length;
 			var oldItem:Object;
-			
+
 			if (index >= 0 && index < spliceUpperBound) {
 				oldItem = source[index];
 				source[index] = item;
@@ -277,13 +277,13 @@ package org.apache.flex.collections
 			else {
 				// error
 			}
-			
+
 			return oldItem;
 		}
-		
+
 		/**
 		 *  Removed an item from the array and returns it.
-		 *  
+		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
@@ -298,11 +298,11 @@ package org.apache.flex.collections
 			}
 			return result;
 		}
-		
+
 		/**
 		 *  Removes an item from a specific location within the array and
 		 *  returns it.
-		 *  
+		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
@@ -312,7 +312,7 @@ package org.apache.flex.collections
 		{
 			const spliceUpperBound:int = length - 1;
 			var removed:Object;
-			
+
 			if (index > 0 && index < spliceUpperBound)
 			{
 				removed = source.splice(index, 1)[0];
@@ -329,14 +329,14 @@ package org.apache.flex.collections
 				// error
 				return null;
 			}
-			
+
 			dispatchEvent(new Event("itemRemoved"));
 			return removed;
 		}
-		
+
 		/**
 		 *  Removes all of the items from the array.
-		 *  
+		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
@@ -349,10 +349,10 @@ package org.apache.flex.collections
 				dispatchEvent(new Event("itemRemoved"));
 			}
 		}
-		
+
 		/**
 		 *  Signals that an item in the array has been updated.
-		 *  
+		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
@@ -365,10 +365,10 @@ package org.apache.flex.collections
 				dispatchEvent(new Event("itemUpdated"));
 			}
 		}
-		
+
 		/**
 		 *  Signals that an item in the array has been updated.
-		 *  
+		 *
 		 *  @langversion 3.0
 		 *  @playerversion Flash 10.2
 		 *  @playerversion AIR 2.6
@@ -378,10 +378,10 @@ package org.apache.flex.collections
 		{
 			dispatchEvent(new Event("itemUpdated"));
 		}
-        
+
         /**
          *  The number of items.
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -389,8 +389,8 @@ package org.apache.flex.collections
          */
         public function get length():int
         {
-            return _source ? _source.length : 0;   
+            return _source ? _source.length : 0;
         }
 
 	}
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60670e86/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/IArrayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/IArrayList.as b/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/IArrayList.as
new file mode 100644
index 0000000..fbe8ed5
--- /dev/null
+++ b/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/IArrayList.as
@@ -0,0 +1,178 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.collections
+{
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.EventDispatcher;
+	import org.apache.flex.events.IEventDispatcher;
+    import org.apache.flex.collections.parsers.IInputParser;
+    import org.apache.flex.collections.converters.IItemConverter;
+
+    //--------------------------------------
+
+
+    /**
+     *  The ArrayList class provides an event-driven wrapper for the
+	 *  standard Array. Events are dispatched when items are added, removed,
+	 *  or changed.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+	public interface IArrayList
+	{
+        /**
+         *  The array of raw data needing conversion.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+		function get source():Array;
+		function set source(value:Array):void;
+
+		/**
+		 * Returns a copy of the source array.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		function toArray():Array;
+
+        /**
+         *  Fetches an item from the collection
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+        function getItemAt(index:int):Object;
+
+		/**
+		 *  Fetches an item from the collection given an index.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function getItemIndex(item:Object):int;
+
+		/**
+		 *  Adds an item to the end of the array.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function addItem(item:Object):void;
+
+		/**
+		 *  Inserts an item to a specific location within the array.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function addItemAt(item:Object, index:int):void;
+
+		/**
+		 *  Replaces the item at the given index with a new item and
+		 *  returns the old item.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function setItemAt(item:Object, index:int):Object;
+
+		/**
+		 *  Removed an item from the array and returns it.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function removeItem(item:Object):Boolean;
+
+		/**
+		 *  Removes an item from a specific location within the array and
+		 *  returns it.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function removeItemAt(index:int):Object;
+
+		/**
+		 *  Removes all of the items from the array.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function removeAll():void;
+
+		/**
+		 *  Signals that an item in the array has been updated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function itemUpdated(item:Object):void;
+
+		/**
+		 *  Signals that an item in the array has been updated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		function itemUpdatedAt(index:int):void;
+
+        /**
+         *  The number of items.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+        function get length():int;
+
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60670e86/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayList.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayList.as
index 9895394..901b5f3 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayList.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForArrayList.as
@@ -18,7 +18,7 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.html.beads
 {
-	import org.apache.flex.collections.ArrayList;
+	import org.apache.flex.collections.IArrayList;
 	import org.apache.flex.core.IBead;
 	import org.apache.flex.core.IDataProviderItemRendererMapper;
 	import org.apache.flex.core.IItemRendererClassFactory;
@@ -61,9 +61,9 @@ package org.apache.flex.html.beads
 		{
 		}
 		
-		private var selectionModel:ISelectionModel;
+		protected var selectionModel:ISelectionModel;
 		
-		private var labelField:String;
+		protected var labelField:String;
 		
 		private var _strand:IStrand;
 		
@@ -138,9 +138,22 @@ package org.apache.flex.html.beads
          */
 		protected var dataGroup:IItemRendererParent;
 		
-		private function dataProviderChangeHandler(event:Event):void
+		/**
+		 * @private
+		 */
+		protected function setData(ir:ISelectableItemRenderer, data:Object, index:int):void
 		{
-			var dp:ArrayList = selectionModel.dataProvider as ArrayList;
+			ir.index = index;
+			ir.labelField = labelField;
+			ir.data = data;
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function dataProviderChangeHandler(event:Event):void
+		{
+			var dp:IArrayList = selectionModel.dataProvider as IArrayList;
 			if (!dp)
 				return;
 			
@@ -153,8 +166,6 @@ package org.apache.flex.html.beads
 			for (var i:int = 0; i < n; i++)
 			{				
 				var ir:ISelectableItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as ISelectableItemRenderer;
-				ir.index = i;
-				ir.labelField = labelField;
 				if (presentationModel) {
 					UIBase(ir).height = presentationModel.rowHeight;
 					
@@ -165,7 +176,7 @@ package org.apache.flex.html.beads
 					UIBase(ir).style = style;
 				}
 				dataGroup.addElement(ir);
-				ir.data = dp.getItemAt(i);
+				setData(ir, dp.getItemAt(i), i);
 			}
 			
 			IEventDispatcher(_strand).dispatchEvent(new Event("itemsCreated"));

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/60670e86/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/ArrayListSelectionModel.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/ArrayListSelectionModel.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/ArrayListSelectionModel.as
index 7366677..5c8a188 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/ArrayListSelectionModel.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/ArrayListSelectionModel.as
@@ -18,18 +18,18 @@
 ////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.html.beads.models
 {
-	import org.apache.flex.collections.ArrayList;
+	import org.apache.flex.collections.IArrayList;
 	import org.apache.flex.core.IRollOverModel;
 	import org.apache.flex.core.ISelectionModel;
 	import org.apache.flex.core.IStrand;
 	import org.apache.flex.events.Event;
 	import org.apache.flex.events.EventDispatcher;
-			
+
     /**
      *  The ArrayListSelectionModel class is a selection model for
      *  a dataProvider that is an ArrayList. It assumes that items
      *  can be fetched from the dataProvider using dataProvider.getItemAt(index).
-     *  
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
@@ -39,7 +39,7 @@ package org.apache.flex.html.beads.models
 	{
         /**
          *  Constructor.
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -50,10 +50,10 @@ package org.apache.flex.html.beads.models
 		}
 
 		private var _strand:IStrand;
-		
+
         /**
          *  @copy org.apache.flex.core.IBead#strand
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -63,12 +63,12 @@ package org.apache.flex.html.beads.models
 		{
 			_strand = value;
 		}
-		
-		private var _dataProvider:ArrayList;
-        
+
+		private var _dataProvider:IArrayList;
+
         /**
          *  @copy org.apache.flex.core.ISelectionModel#dataProvider
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -85,10 +85,10 @@ package org.apache.flex.html.beads.models
 		public function set dataProvider(value:Object):void
 		{
             if (value === _dataProvider) return;
-            
-            _dataProvider = value as ArrayList;
+
+            _dataProvider = value as IArrayList;
             if (_selectedIndex != -1)
-                _selectedItem = (_dataProvider == null || _selectedIndex >= _dataProvider.length) ? null : 
+                _selectedItem = (_dataProvider == null || _selectedIndex >= _dataProvider.length) ? null :
                     _dataProvider.getItemAt(_selectedIndex);
 			dispatchEvent(new Event("dataProviderChanged"));
 		}
@@ -96,10 +96,10 @@ package org.apache.flex.html.beads.models
 		private var _selectedIndex:int = -1;
 		private var _rollOverIndex:int = -1;
 		private var _labelField:String = null;
-		
+
         /**
          *  @copy org.apache.flex.core.ISelectionModel#labelField
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -120,10 +120,10 @@ package org.apache.flex.html.beads.models
 				dispatchEvent(new Event("labelFieldChanged"));
 			}
 		}
-		
+
         /**
          *  @copy org.apache.flex.core.ISelectionModel#selectedIndex
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -140,15 +140,15 @@ package org.apache.flex.html.beads.models
 		public function set selectedIndex(value:int):void
 		{
             if (value === _selectedIndex) return;
-            
+
 			_selectedIndex = value;
 			_selectedItem = (value == -1 || _dataProvider == null) ? null : (value < _dataProvider.length) ? _dataProvider.getItemAt(value) : null;
-			dispatchEvent(new Event("selectedIndexChanged"));			
+			dispatchEvent(new Event("selectedIndexChanged"));
 		}
-		
+
         /**
          *  @copy org.apache.flex.core.IRollOverModel#rollOverIndex
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -169,12 +169,12 @@ package org.apache.flex.html.beads.models
 				dispatchEvent(new Event("rollOverIndexChanged"));
 			}
 		}
-		
+
 		private var _selectedItem:Object;
-		
+
         /**
          *  @copy org.apache.flex.core.ISelectionModel#selectedItem
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -191,8 +191,8 @@ package org.apache.flex.html.beads.models
 		public function set selectedItem(value:Object):void
 		{
             if (value === _selectedItem) return;
-            
-			_selectedItem = value;	
+
+			_selectedItem = value;
 			var n:int = _dataProvider.length;
 			for (var i:int = 0; i < n; i++)
 			{
@@ -202,16 +202,16 @@ package org.apache.flex.html.beads.models
 					break;
 				}
 			}
-			dispatchEvent(new Event("selectedItemChanged"));			
+			dispatchEvent(new Event("selectedItemChanged"));
 			dispatchEvent(new Event("selectedIndexChanged"));
 		}
-		
+
 		private var _selectedString:String;
-		
+
         /**
          *  An alternative to selectedItem for strongly typing the
          *  the selectedItem if the Array is an Array of Strings.
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -237,8 +237,8 @@ package org.apache.flex.html.beads.models
 					break;
 				}
 			}
-			dispatchEvent(new Event("selectedItemChanged"));			
-			dispatchEvent(new Event("selectedIndexChanged"));			
+			dispatchEvent(new Event("selectedItemChanged"));
+			dispatchEvent(new Event("selectedIndexChanged"));
 		}
 	}
 }


[12/37] git commit: [flex-asjs] [refs/heads/spark] - Added LocalStorage class via new Storage project.

Posted by ah...@apache.org.
Added LocalStorage class via new Storage project.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/54794500
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/54794500
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/54794500

Branch: refs/heads/spark
Commit: 54794500106b4023156cdfda39a363f947d26ad5
Parents: d5ee78a
Author: Peter Ent <pe...@apache.org>
Authored: Mon Feb 22 14:34:28 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Mon Feb 22 14:34:28 2016 -0500

----------------------------------------------------------------------
 frameworks/build.xml                            |   6 +
 frameworks/projects/Storage/build.xml           | 172 ++++++++++++++++
 .../Storage/src/main/flex/StorageClasses.as     |  34 ++++
 .../org/apache/flex/storage/LocalStorage.as     | 197 +++++++++++++++++++
 .../src/main/resources/basic-manifest.xml       |  24 +++
 .../src/main/resources/compile-asjs-config.xml  |  78 ++++++++
 .../src/main/resources/compile-config.xml       |  77 ++++++++
 7 files changed, 588 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/54794500/frameworks/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/build.xml b/frameworks/build.xml
index eebb204..8ba8f75 100644
--- a/frameworks/build.xml
+++ b/frameworks/build.xml
@@ -93,6 +93,7 @@
         <antcall target="Mobile"/>
         <antcall target="Network"/>
         <antcall target="Reflection"/>
+        <antcall target="Storage"/>
     </target>
     
     <target name="fonts">
@@ -136,6 +137,7 @@
         <ant dir="${basedir}/projects/Mobile" target="clean"/>
         <ant dir="${basedir}/projects/Network" target="clean"/>
         <ant dir="${basedir}/projects/Reflection" target="clean"/>
+        <ant dir="${basedir}/projects/Storage" target="clean"/>
         <ant dir="${basedir}/fontsrc" target="clean"/>
 
         <!-- delete the FlashBuilder executable directories -->
@@ -224,6 +226,10 @@
         <ant dir="${basedir}/projects/Reflection"/>
     </target>
 
+    <target name="Storage" description="Clean build of Storage.swc">
+        <ant dir="${basedir}/projects/Storage"/>
+    </target>
+
 	<target name="flex-config" depends="playerglobal-setswfversion" description="Copy the flex config template to flex-config.xml and inject version numbers">
 		<copy file="${basedir}/flex-config-template.xml" tofile="${basedir}/flex-config.xml" overwrite="true">
 			<filterset>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/54794500/frameworks/projects/Storage/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/build.xml b/frameworks/projects/Storage/build.xml
new file mode 100644
index 0000000..0d5fd9a
--- /dev/null
+++ b/frameworks/projects/Storage/build.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<project name="Storage" default="main" basedir=".">
+    <property name="FLEXJS_HOME" location="../../.."/>
+
+    <property file="${FLEXJS_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${FLEXJS_HOME}/build.properties"/>
+    <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
+    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
+    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/out/bin/js.swc" />
+    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/out/bin/GCL.swc" />
+    <property name="target.name" value="Storage-${release.version}.swc" />
+    <property name="target.name.no.version" value="Storage.swc" />
+
+    <target name="main" depends="clean,compile-asjs,compile-extern-swc,copy-js,compile,test" description="Full build of Storage.swc">
+    </target>
+
+    <target name="test" unless="is.jenkins">
+        <!-- no tests yet
+         <ant dir="as/tests"/>
+        -->
+    </target>
+
+    <target name="test-js" unless="is.jenkins">
+        <!-- no tests yet
+         <ant dir="js/tests" />
+         -->
+    </target>
+
+    <target name="clean">
+        <delete failonerror="false">
+            <fileset dir="${FLEXJS_HOME}/frameworks/libs">
+                <include name="${target.name.no.version}"/>
+            </fileset>
+        </delete>
+        <delete failonerror="false">
+            <fileset dir="${basedir}/target">
+                <include name="**/**"/>
+            </fileset>
+        </delete>
+    </target>
+
+    <path id="lib.path">
+        <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+    </path>
+
+    <target name="compile" description="Compiles .as files into .swc">
+        <echo message="Compiling target/${target.name}"/>
+        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+        <echo message="FALCON_HOME: ${FALCON_HOME}"/>
+        <!-- make JS output folder now so include-file doesn't error -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
+
+        <!-- Load the <compc> task. We can't do this at the <project> level -->
+        <!-- because targets that run before flexTasks.jar gets built would fail. -->
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+        <!--
+            Link in the classes (and their dependencies) for the MXML tags
+            listed in this project's manifest.xml.
+            Also link the additional classes (and their dependencies)
+            listed in StorageClasses.as,
+            because these aren't referenced by the manifest classes.
+            Keep the standard metadata when compiling.
+            Include the appropriate CSS files and assets in the SWC.
+            Don't include any resources in the SWC.
+            Write a bundle list of referenced resource bundles
+            into the file bundles.properties in this directory.
+        -->
+        <compc fork="true"
+            output="${basedir}/target/${target.name}">
+            <jvmarg line="${compc.jvm.args}"/>
+            <load-config filename="${basedir}/src/main/resources/compile-config.xml" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-define=COMPILE::AS3,true" />
+            <arg value="-define=COMPILE::JS,false" />
+        </compc>
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+    </target>
+
+    <target name="compile-asjs">
+        <echo message="Cross-compiling ${target.name}"/>
+        <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
+        <java jar="${FALCONJX_HOME}/lib/compc.jar" fork="true" >
+            <jvmarg value="-Xmx384m" />
+            <jvmarg value="-Dsun.io.useCanonCaches=false" />
+            <jvmarg value="-Dflexcompiler=${FALCONJX_HOME}/../compiler" />
+            <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
+            <arg value="+flexlib=${FLEX_HOME}/frameworks" />
+            <arg value="-js-output-type=FLEXJS" />
+            <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
+            <arg value="-output=${basedir}/target/generated-sources/flexjs" />
+            <arg value="-load-config=${basedir}/src/main/resources/compile-asjs-config.xml" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-external-library-path+=${JS.SWC}" />
+            <!-- this is not on external-library path otherwise goog.requires are not generated -->
+            <arg value="-library-path+=${GCL.SWC}" />
+            <arg value="-define=COMPILE::AS3,false" />
+            <arg value="-define=COMPILE::JS,true" />
+        </java>
+    </target>
+
+    <target name="compile-extern-swc" description="Compiles .as files into .swc used for cross-compiling other projects">
+        <echo message="Compiling target/externs/${target.name}"/>
+        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+        <echo message="FALCON_HOME: ${FALCON_HOME}"/>
+        <!-- make JS output folder now so include-file doesn't error -->
+        <mkdir dir="${FLEXJS_HOME}/frameworks/externs"/>
+        <mkdir dir="${basedir}/target/externs"/>
+        
+        <!-- Load the <compc> task. We can't do this at the <project> level -->
+        <!-- because targets that run before flexTasks.jar gets built would fail. -->
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+        <!--
+         Link in the classes (and their dependencies) for the MXML tags
+         listed in this project's manifest.xml.
+         Also link the additional classes (and their dependencies)
+         listed in CoreClasses.as,
+         because these aren't referenced by the manifest classes.
+         Keep the standard metadata when compiling.
+         Include the appropriate CSS files and assets in the SWC.
+         Don't include any resources in the SWC.
+         Write a bundle list of referenced resource bundles
+         into the file bundles.properties in this directory.
+         -->
+        <compc fork="true"
+            output="${basedir}/target/externs/${target.name}">
+            <jvmarg line="${compc.jvm.args}"/>
+            <load-config filename="src/main/resources/compile-asjs-config.xml" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-external-library-path+=${JS.SWC}" />
+            <!-- this is not on external-library path otherwise goog.requires are not generated -->
+            <arg value="-library-path+=${GCL.SWC}" />
+            <arg value="-define=COMPILE::AS3,false" />
+            <arg value="-define=COMPILE::JS,true" />
+        </compc>
+        <copy file="${basedir}/target/externs/${target.name}" tofile="${FLEXJS_HOME}/frameworks/externs/${target.name.no.version}" />
+    </target>
+
+    <target name="copy-js">
+        <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
+            <fileset dir="${basedir}/target/generated-sources/flexjs">
+                <include name="**/**"/>
+            </fileset>
+        </copy>
+    </target>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/54794500/frameworks/projects/Storage/src/main/flex/StorageClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/StorageClasses.as b/frameworks/projects/Storage/src/main/flex/StorageClasses.as
new file mode 100644
index 0000000..1f6b80a
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/StorageClasses.as
@@ -0,0 +1,34 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package 
+{
+
+/**
+ *  @private
+ *  This class is used to link additional classes into rpc.swc
+ *  beyond those that are found by dependency analysis starting
+ *  from the classes specified in manifest.xml.
+ */
+internal class StorageClasses
+{	
+    import org.apache.flex.storage.LocalStorage; LocalStorage;
+}
+
+}
+

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/54794500/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
new file mode 100644
index 0000000..a3a2b87
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/flex/org/apache/flex/storage/LocalStorage.as
@@ -0,0 +1,197 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.storage
+{
+COMPILE::AS3 {
+	import flash.net.SharedObject;
+}
+
+/**
+ *  The LocalStorage class allows apps to store small amounts of data
+ *  locally, in the browser's permitted storage area. This data will persist
+ *  between browser invocations. The data is stored in key=value pairs.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 10.2
+ *  @playerversion AIR 2.6
+ *  @productversion FlexJS 0.0
+ *  @flexjsignoreimport window
+ */
+public class LocalStorage
+{
+	
+	/**
+	 * Constructor.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function LocalStorage() 
+	{
+		COMPILE::AS3 {
+			try {
+				sharedObject = SharedObject.getLocal("flexjs","/",false);
+			} catch(e) {
+				sharedObject = null;
+			}
+		}
+	}
+	
+	COMPILE::AS3
+	private var sharedObject:SharedObject;
+	
+	/**
+	 * Returns true if the platform provides local storage.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function storageAvailable():Boolean
+	{
+		var result:Boolean = false;
+		
+		COMPILE::AS3 {
+			result = (sharedObject != null);
+		}
+		
+		COMPILE::JS {
+			try {
+				result = 'localStorage' in window && window['localStorage'] !== null;
+			} catch(e) {
+				result = false;
+			}
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Stores a value with a key. The value may be converted to a String, depending
+	 * on the platform.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function setValue(key:String, value:Object) : Boolean
+	{
+		if (!storageAvailable()) return false;
+				
+		COMPILE::AS3 {
+			sharedObject.data[key] = value;
+			sharedObject.flush();
+		}
+		
+		COMPILE::JS {
+			window.localStorage[key] = value;
+		}
+		
+		return true;
+	}
+	
+	/**
+	 * Returns the value associated with the key, or undefined if there is
+	 * no value stored. Note that a String version of the value may have been
+	 * stored, depending on the platform.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function getValue(key:String) : Object
+	{
+		if (!storageAvailable()) return null;
+		
+		var result:Object = null;
+		
+		COMPILE::AS3 {
+			result = sharedObject.data[key];
+		}
+		
+		COMPILE::JS {
+			result = window.localStorage[key];
+		}
+		
+		return result;
+	}
+	
+	/**
+	 * Removed the value and, possibly, the key from local storage. On some
+	 * platforms, retriving the value after removing it will be an error, on
+	 * others it may return undefined or null.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function removeValue(key:String) : Boolean
+	{
+		if (!storageAvailable()) return null;
+				
+		COMPILE::AS3 {
+			delete sharedObject.data[key];
+			sharedObject.flush();
+		}
+		
+		COMPILE::JS {
+			window.localStorage[key] = null;
+		}
+		
+		return true;
+	}
+	
+	/**
+	 * Returns true if there is a value stored for the key.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport window
+	 */
+	public function hasValue(key:String) : Boolean
+	{
+		if (!storageAvailable()) return false;
+		
+		var result:Boolean = false;
+		
+		COMPILE::AS3 {
+			result = sharedObject.data.hasOwnProperty(key);
+		}
+		
+		COMPILE::JS {
+			result = (window.localStorage[key] !== null);
+		}
+		
+		return result;
+	}
+}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/54794500/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/resources/basic-manifest.xml b/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
new file mode 100644
index 0000000..cd0f5b4
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/resources/basic-manifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<componentPackage>
+
+</componentPackage>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/54794500/frameworks/projects/Storage/src/main/resources/compile-asjs-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/resources/compile-asjs-config.xml b/frameworks/projects/Storage/src/main/resources/compile-asjs-config.xml
new file mode 100644
index 0000000..0d410aa
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/resources/compile-asjs-config.xml
@@ -0,0 +1,78 @@
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<flex-config>
+
+    <compiler>
+        <accessible>false</accessible>
+        
+        <external-library-path>
+        </external-library-path>
+        
+		<mxml>
+			<children-as-data>true</children-as-data>
+		</mxml>
+		<binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+		<binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+		<binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <keep-as3-metadata>
+          <name>Bindable</name>
+          <name>Managed</name>
+          <name>ChangeEvent</name>
+          <name>NonCommittingChangeEvent</name>
+          <name>Transient</name>
+        </keep-as3-metadata>
+	  
+        <locale/>
+        
+        <library-path>
+        </library-path>
+        
+        <namespaces>
+            <namespace>
+                <uri>library://ns.apache.org/flexjs/basic</uri>
+                <manifest>basic-manifest.xml</manifest>
+            </namespace>
+        </namespaces>
+        
+        <source-path>
+            <path-element>../flex</path-element>
+        </source-path>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <include-file>
+    </include-file>
+
+    <include-sources>
+    </include-sources>
+    
+    <include-classes>
+        <class>StorageClasses</class>
+    </include-classes>
+    
+    <include-namespaces>
+        <uri>library://ns.apache.org/flexjs/basic</uri>
+    </include-namespaces>
+    
+    <target-player>${playerglobal.version}</target-player>
+	
+
+</flex-config>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/54794500/frameworks/projects/Storage/src/main/resources/compile-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Storage/src/main/resources/compile-config.xml b/frameworks/projects/Storage/src/main/resources/compile-config.xml
new file mode 100644
index 0000000..bdd4048
--- /dev/null
+++ b/frameworks/projects/Storage/src/main/resources/compile-config.xml
@@ -0,0 +1,77 @@
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<flex-config>
+
+    <compiler>
+        <accessible>false</accessible>
+        
+        <external-library-path>
+            <path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
+        </external-library-path>
+        
+		<mxml>
+			<children-as-data>true</children-as-data>
+		</mxml>
+		<binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+		<binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+		<binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <keep-as3-metadata>
+          <name>Bindable</name>
+          <name>Managed</name>
+          <name>ChangeEvent</name>
+          <name>NonCommittingChangeEvent</name>
+          <name>Transient</name>
+        </keep-as3-metadata>
+	  
+        <locale/>
+        
+        <library-path/>
+
+        <namespaces>
+            <namespace>
+                <uri>library://ns.apache.org/flexjs/basic</uri>
+                <manifest>basic-manifest.xml</manifest>
+            </namespace>
+        </namespaces>
+        
+        <source-path>
+            <path-element>../flex</path-element>
+        </source-path>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <include-file>
+        <name>js/out/*</name>
+        <path>../../../target/generated-sources/flexjs/*</path>
+    </include-file>
+
+    <include-classes>
+        <class>StorageClasses</class>
+    </include-classes>
+    
+    <include-namespaces>
+        <uri>library://ns.apache.org/flexjs/basic</uri>
+    </include-namespaces>  
+        
+    <target-player>${playerglobal.version}</target-player>
+	
+
+</flex-config>


[32/37] git commit: [flex-asjs] [refs/heads/spark] - mention google maps in LICENSE

Posted by ah...@apache.org.
mention google maps in LICENSE


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/9dfef271
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/9dfef271
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/9dfef271

Branch: refs/heads/spark
Commit: 9dfef2719f3f3ca304bebd1e1aa3f8cb77841b7d
Parents: 26a2662
Author: Alex Harui <ah...@apache.org>
Authored: Fri Mar 11 14:42:15 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Mar 11 14:42:15 2016 -0800

----------------------------------------------------------------------
 LICENSE | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9dfef271/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
index cc866fb..a3c1df1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -222,3 +222,6 @@ The map coordinates in examples/native/USStatesMap/src/MapCoords.js
 were placed into the Public Domain by its author.  See:
 https://en.wikipedia.org/wiki/File:USA_CIA_Map.svg#file
 
+Most of the .as files in frameworks/projects/GoogleMaps/src/main/flex/google 
+are derived from the google_maps_api_v3_11.js externs file in the 
+Google Closure Library which are available under Apache License 2.0.


[09/37] git commit: [flex-asjs] [refs/heads/spark] - Added Tree component to FlexJS. Includes HierarchicalData collection.

Posted by ah...@apache.org.
Added Tree component to FlexJS. Includes HierarchicalData collection.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/d0dddc1f
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/d0dddc1f
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/d0dddc1f

Branch: refs/heads/spark
Commit: d0dddc1f7184ed840873a6fb094312fc42f2f9bc
Parents: d75af20
Author: Peter Ent <pe...@apache.org>
Authored: Thu Feb 18 13:53:40 2016 -0500
Committer: Peter Ent <pe...@apache.org>
Committed: Thu Feb 18 13:53:40 2016 -0500

----------------------------------------------------------------------
 examples/build.xml                              |   2 +
 .../src/productsView/ProductListItem.mxml       |  10 +
 examples/flexjs/TreeExample/build.xml           |  44 +++
 examples/flexjs/TreeExample/pom.xml             |  50 ++++
 .../flexjs/TreeExample/src/MyInitialView.mxml   |  37 +++
 .../flexjs/TreeExample/src/TreeExample.mxml     |  36 +++
 .../flexjs/TreeExample/src/models/MyModel.as    |  72 +++++
 .../src/main/flex/CollectionsClasses.as         |   2 +
 .../apache/flex/collections/FlattenedList.as    | 203 ++++++++++++++
 .../apache/flex/collections/HierarchicalData.as | 269 +++++++++++++++++++
 .../flex/collections/IHierarchicalData.as       | 119 ++++++++
 .../src/main/resources/basic-manifest.xml       |   1 +
 .../projects/HTML/src/main/flex/HTMLClasses.as  |   6 +-
 .../src/main/flex/org/apache/flex/html/Tree.as  |  73 +++++
 ...ataItemRendererFactoryForHierarchicalData.as | 109 ++++++++
 .../ListSingleSelectionMouseController.as       |  10 +-
 .../TreeSingleSelectionMouseController.as       |  82 ++++++
 .../html/supportClasses/StringItemRenderer.as   |   3 -
 .../html/supportClasses/TreeItemRenderer.as     |  59 ++++
 .../flex/html/supportClasses/TreeListData.as    |  76 ++++++
 .../HTML/src/main/resources/basic-manifest.xml  |   2 +
 .../HTML/src/main/resources/defaults.css        |  22 ++
 22 files changed, 1277 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/examples/build.xml
----------------------------------------------------------------------
diff --git a/examples/build.xml b/examples/build.xml
index 894573e..7efccfc 100644
--- a/examples/build.xml
+++ b/examples/build.xml
@@ -86,6 +86,7 @@
         <ant dir="${basedir}/flexjs/MobileTrader"/>
         <ant dir="${basedir}/flexjs/ChartExample"/>
         <ant dir="${basedir}/flexjs/TodoListSampleApp"/>
+        <ant dir="${basedir}/flexjs/TreeExample"/>
         <ant dir="${basedir}/native/ButtonExample"/>
         <ant dir="${basedir}/native/USStatesMap"/>
     </target>
@@ -113,6 +114,7 @@
         <ant dir="${basedir}/flexjs/MobileTrader" target="clean"/>
         <ant dir="${basedir}/flexjs/ChartExample" target="clean"/>
         <ant dir="${basedir}/flexjs/TodoListSampleApp" target="clean"/>
+        <ant dir="${basedir}/flexjs/TreeExample" target="clean"/>
         <ant dir="${basedir}/native/ButtonExample" target="clean"/>
         <ant dir="${basedir}/native/USStatesMap" target="clean"/>
     </target>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/examples/flexjs/FlexJSStore/src/productsView/ProductListItem.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/FlexJSStore/src/productsView/ProductListItem.mxml b/examples/flexjs/FlexJSStore/src/productsView/ProductListItem.mxml
index 2864cca..8e98c3b 100755
--- a/examples/flexjs/FlexJSStore/src/productsView/ProductListItem.mxml
+++ b/examples/flexjs/FlexJSStore/src/productsView/ProductListItem.mxml
@@ -60,6 +60,16 @@ limitations under the License.
         {
             _data = value;
         }
+        
+        public function get listData():Object
+        {
+        	return null;
+        }
+        
+        public function set listData(value:Object):void
+        {
+        	// not used
+        }
 
         private var _itemRendererParent:Object;
         

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/examples/flexjs/TreeExample/build.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/TreeExample/build.xml b/examples/flexjs/TreeExample/build.xml
new file mode 100644
index 0000000..c2fcd0d
--- /dev/null
+++ b/examples/flexjs/TreeExample/build.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<project name="treeexample" default="main" basedir=".">
+    <property name="FLEXJS_HOME" location="../../.."/>
+    <property name="example" value="TreeExample" />
+    
+    <property file="${FLEXJS_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${FLEXJS_HOME}/build.properties"/>
+    <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+    
+    <include file="${basedir}/../../build_example.xml" />
+
+    <property name="extlib_arg" value="-external-library-path=${FALCONJX_HOME}/../externs/js/out/bin/js.swc"/>
+
+    <target name="main" depends="clean,build_example.compile,build_example.compilejs" description="Clean build of ${example}">
+    </target>
+    
+    <target name="clean">
+        <delete dir="${basedir}/bin" failonerror="false" />
+        <delete dir="${basedir}/bin-debug" failonerror="false" />
+        <delete dir="${basedir}/bin-release" failonerror="false" />
+    </target>    
+    
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/examples/flexjs/TreeExample/pom.xml
----------------------------------------------------------------------
diff --git a/examples/flexjs/TreeExample/pom.xml b/examples/flexjs/TreeExample/pom.xml
new file mode 100644
index 0000000..1cf03f8
--- /dev/null
+++ b/examples/flexjs/TreeExample/pom.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.flex.examples.flexjs</groupId>
+        <artifactId>examples</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>TreeExample</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+    <packaging>swf</packaging>
+
+    <build>
+        <sourceDirectory>src</sourceDirectory>
+        <plugins>
+            <plugin>
+                <groupId>net.flexmojos.oss</groupId>
+                <artifactId>flexmojos-maven-plugin</artifactId>
+                <version>7.1.0-SNAPSHOT</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <sourceFile>TreeExample.mxml</sourceFile>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/examples/flexjs/TreeExample/src/MyInitialView.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/TreeExample/src/MyInitialView.mxml b/examples/flexjs/TreeExample/src/MyInitialView.mxml
new file mode 100644
index 0000000..d7fa22f
--- /dev/null
+++ b/examples/flexjs/TreeExample/src/MyInitialView.mxml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<js:ViewBase xmlns:fx="http://ns.adobe.com/mxml/2009"
+				xmlns:js="library://ns.apache.org/flexjs/basic">
+    
+    <js:beads>
+        <js:ViewBaseDataBinding />
+    </js:beads>
+	
+	<js:Tree id="tree" x="30" y="30" width="400" height="300" 
+			 labelField="title">
+		<js:beads>
+			<js:ConstantBinding
+				sourceID="applicationModel"
+				sourcePropertyName="treeData"
+				destinationPropertyName="dataProvider" />
+		</js:beads>
+	</js:Tree>
+
+</js:ViewBase>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/examples/flexjs/TreeExample/src/TreeExample.mxml
----------------------------------------------------------------------
diff --git a/examples/flexjs/TreeExample/src/TreeExample.mxml b/examples/flexjs/TreeExample/src/TreeExample.mxml
new file mode 100644
index 0000000..e969146
--- /dev/null
+++ b/examples/flexjs/TreeExample/src/TreeExample.mxml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!---
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+-->
+<js:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
+				   xmlns:local="*"
+				   xmlns:models="models.*"
+				   xmlns:js="library://ns.apache.org/flexjs/basic" 
+				   >
+	
+	<js:valuesImpl>
+		<js:SimpleCSSValuesImpl />
+	</js:valuesImpl>
+	<js:model>
+		<models:MyModel />
+	</js:model>
+	<js:initialView>
+		<local:MyInitialView />
+	</js:initialView>
+</js:Application>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/examples/flexjs/TreeExample/src/models/MyModel.as
----------------------------------------------------------------------
diff --git a/examples/flexjs/TreeExample/src/models/MyModel.as b/examples/flexjs/TreeExample/src/models/MyModel.as
new file mode 100644
index 0000000..d224293
--- /dev/null
+++ b/examples/flexjs/TreeExample/src/models/MyModel.as
@@ -0,0 +1,72 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package models
+{
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.EventDispatcher;
+	import org.apache.flex.collections.HierarchicalData;
+
+	public class MyModel extends EventDispatcher
+	{
+		public function MyModel()
+		{
+			treeData = new HierarchicalData(store);
+			treeData.childrenField = "children";
+		}
+
+		public var treeData:HierarchicalData;
+
+		private var store:Object = { title:"That's Entertainment",
+        		children:[
+        			{title:"My Music",
+        				children:[
+        					{title:"Language and Perspective", artist:"Bad Suns",
+        					    children:[
+        					    	{title:"Matthew James", length:"3:24"},
+        					    	{title:"We Move Like the Ocean", length:"3:56"},
+        					    	{title:"Cardiac Arrest", length:"3:15"}
+        					    ]},
+        					{title:"Strange Desire", artist:"Bleachers",
+        						children:[
+        							{title:"Wild Heart", length:"4:15"},
+        							{title:"Rollercoaster", length:"3:39"},
+        							{title:"Shadow", length:"3:46"},
+        							{title:"I Wanna Get Better", length:"4:23"}
+        						]}
+        				]},
+        			{title:"My Books",
+        				children:[
+        					{title:"Wizard of Oz",
+        						children:[
+        							{title:"So this is Kansas?", length:"82"},
+        							{title:"A Might Dusty Here", length:"63"},
+        							{title:"Is that a Tornado?", length:"103"}
+        						]},
+        					{title:"Favorite Book #2",
+        						children:[
+        							{title:"Chapter 1", length:"15"},
+        							{title:"Chapter 2", length:"86"},
+        							{title:"Chapter 3", length:"104"},
+        							{title:"Chapter 4", length:"99"}
+        						]}
+        				]}
+        		]};
+
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/Collections/src/main/flex/CollectionsClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/src/main/flex/CollectionsClasses.as b/frameworks/projects/Collections/src/main/flex/CollectionsClasses.as
index 5112c5c..58e601f 100644
--- a/frameworks/projects/Collections/src/main/flex/CollectionsClasses.as
+++ b/frameworks/projects/Collections/src/main/flex/CollectionsClasses.as
@@ -28,6 +28,8 @@ package
 internal class CollectionsClasses
 {
     import org.apache.flex.collections.ArrayList; ArrayList;
+	import org.apache.flex.collections.FlattenedList; FlattenedList;
+	import org.apache.flex.collections.HierarchicalData; HierarchicalData;
 	import org.apache.flex.collections.LazyCollection; LazyCollection;
 }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/FlattenedList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/FlattenedList.as b/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/FlattenedList.as
new file mode 100644
index 0000000..3fd98be
--- /dev/null
+++ b/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/FlattenedList.as
@@ -0,0 +1,203 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.collections
+{	
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.EventDispatcher;
+	import org.apache.flex.events.IEventDispatcher;
+    import org.apache.flex.collections.parsers.IInputParser;
+    import org.apache.flex.collections.converters.IItemConverter;
+    
+    
+    /**
+     *  The FlattenedList class takes a HierarchicalData object and "flattens" it
+	 *  using all of the open members.
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+	public class FlattenedList extends ArrayList
+	{
+		public var hdata:HierarchicalData;
+		public var openNodes:Array;
+		
+        /**
+         *  Constructor.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+		public function FlattenedList(hdata:HierarchicalData)
+		{
+			super();
+			this.hdata = hdata;
+			this.openNodes = [];
+			reset();
+		}
+		
+		/**
+		 * Resets the list so that only the top root node is open.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		public function reset():void
+		{
+			var arr:Array = [];
+			addChildren(hdata.getRoot(), arr);
+			source = arr;
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function addChildren(node:Object, arr:Array):void
+		{
+			var children:Array = hdata.getChildren(node) as Array;
+			var n:int = children.length;
+			
+			for (var i:int=0; i < n; i++) {
+				arr.push(children[i]);
+				if (isOpen(children[i])) {
+					addChildren(children[i], arr);
+				}
+			}
+		}
+		
+		/**
+		 * Returns true if the node has children nodes.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		public function hasChildren(node:Object):Boolean
+		{
+			return hdata.hasChildren(node);
+		}
+		
+		/**
+		 * Returns true if the node is currently open.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		public function isOpen(node:Object):Boolean
+		{
+			return openNodes.indexOf(node) != -1;
+		}
+		
+		/**
+		 * Opens the given node. The array data now contains more elements.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		public function openNode(node:Object):void
+		{
+			if (hdata.hasChildren(node)) {
+				openNodes.push(node);
+				var arr:Array = [];
+				addChildren(node, arr);
+				var i:int = getItemIndex(node);
+				while (arr.length) {
+					addItemAt(arr.shift(), ++i);
+				}
+			}
+		}
+		
+		/**
+		 * Closes the given node. The array data now contains fewer elements.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		public function closeNode(node:Object):void
+		{
+			var i:int = openNodes.indexOf(node);
+			if (i != -1) {
+				
+				if (hdata.hasChildren(node)) {
+					var children:Array = hdata.getChildren(node) as Array;
+					var n:int = children.length;
+					for (var j:int=0; j < n; j++) {
+						closeNode(children[j]);
+					}
+				}
+				
+				openNodes.splice(i, 1);
+				var arr:Array = [];
+				addChildren(node, arr);
+				i = getItemIndex(node) + 1;
+				while (arr.length) {
+					removeItemAt(i);
+					arr.shift();
+				}
+			}
+		}
+		
+		/**
+		 * Returns the depth of the node with the root being zero.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		public function getDepth(node:Object):int
+		{
+			var depth:int = godeep(node, hdata.getRoot(), 0);
+			return depth;
+		}
+		
+		/**
+		 * @private
+		 */
+		private function godeep(seeking:Object, node:Object, depth:int):int
+		{
+			if (seeking == node) return depth;
+			
+			if (hdata.hasChildren(node)) {
+				var children:Array = hdata.getChildren(node) as Array;
+				for (var i:int=0; i < children.length; i++) {
+					var newDepth:int = godeep(seeking, children[i], depth+1)
+					if (newDepth > 0) return newDepth;
+				}
+			}
+			
+			return -1;
+		}
+
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/HierarchicalData.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/HierarchicalData.as b/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/HierarchicalData.as
new file mode 100644
index 0000000..fb4b607
--- /dev/null
+++ b/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/HierarchicalData.as
@@ -0,0 +1,269 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package org.apache.flex.collections
+{
+
+import org.apache.flex.events.Event;
+import org.apache.flex.events.EventDispatcher;
+
+
+/**
+ *  Hierarchical data is data already in a structure of parent and child data items.
+ *  The HierarchicalData class provides a default implementation for
+ *  accessing and manipulating data.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.2
+ *  @playerversion AIR 2.6
+ *  @productversion FlexJS 0.0
+ */
+public class HierarchicalData  extends EventDispatcher implements IHierarchicalData
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param value The data used to populate the HierarchicalData instance.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public function HierarchicalData(value:Object = null)
+    {
+        super();
+
+        source = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //--------------------------------------------------------------------------
+    // childrenField
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  The field name to be used to detect children field.
+     */
+    private var _childrenField:String = "children";
+
+    /**
+     *  Indicates the field name to be used to detect children objects in
+     *  a data item.
+     *  By default, all subnodes are considered as children for
+     *  XML data, and the <code>children</code> property is used for the Object data type.
+     *
+     *  This is helpful in adapting to a data format that uses custom data fields
+     *  to represent children.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public function get childrenField():String
+    {
+        return _childrenField;
+    }
+
+    /**
+     *  @private
+     */
+    public function set childrenField(value:String):void
+    {
+        _childrenField = value;
+    }
+
+    //--------------------------------------------------------------------------
+    // source
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  The source collection.
+     */
+    private var _source:Object;
+
+    /**
+     *  The source collection.
+     *  The collection should implement the IList interface
+     *  to facilitate operation like the addition and removal of items.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public function get source():Object
+    {
+        return _source;
+    }
+
+    /**
+     *  @private
+     */
+    public function set source(value:Object):void
+    {
+        _source = value;
+
+        dispatchEvent(new Event("collectionChanged"));
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     * @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public function canHaveChildren(node:Object):Boolean
+    {
+        if (node == null)
+            return false;
+
+        var branch:Boolean = false;
+
+        if (node is Object)
+        {
+            try
+            {
+                if (node[childrenField] != undefined)
+                {
+                    branch = true;
+                }
+            }
+            catch (e:Error)
+            {
+            }
+        }
+        return branch;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public function getChildren(node:Object):Object
+    {
+        if (node == null)
+            return null;
+
+        var children:*;
+
+        //first get the children based on the type of node.
+        if (node is Object)
+        {
+            //we'll try the default children property
+            try
+            {
+                children = node[childrenField];
+            }
+            catch (e:Error)
+            {
+            }
+        }
+
+        //no children exist for this node
+        if(children === undefined)
+            return null;
+
+        return children;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public function hasChildren(node:Object):Boolean
+    {
+        if (node == null)
+            return false;
+
+        //This default impl can't optimize this call to getChildren
+        //since we can't make any assumptions by type.  Custom impl's
+        //can probably avoid this call and reduce the number of calls to
+        //getChildren if need be.
+        var children:Object = getChildren(node);
+        try
+        {
+            if (children.length > 0)
+                return true;
+        }
+        catch (e:Error)
+        {
+        }
+        return false;
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public function getData(node:Object):Object
+    {
+        return Object(node);
+    }
+
+    /**
+     * @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    public function getRoot():Object
+    {
+        return source;
+    }
+
+}
+
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/IHierarchicalData.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/IHierarchicalData.as b/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/IHierarchicalData.as
new file mode 100644
index 0000000..5ff2b65
--- /dev/null
+++ b/frameworks/projects/Collections/src/main/flex/org/apache/flex/collections/IHierarchicalData.as
@@ -0,0 +1,119 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package org.apache.flex.collections
+{
+import org.apache.flex.events.IEventDispatcher;
+
+/**
+ *  The IHierarchicalData interface defines the interface
+ *  used to represent hierarchical data as the data provider for
+ *  a FlexJS component.
+ *  Hierarchical data is data in a structure of parent
+ *  and child data items.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.2
+ *  @playerversion AIR 2.6
+ *  @productversion FlexJS 0.0
+ */
+public interface IHierarchicalData extends IEventDispatcher
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Returns <code>true</code> if the node can contain children.
+     *
+     *  <p>Nodes do not have to contain children for the method
+     *  to return <code>true</code>.
+     *  This method is useful in determining whether other
+     *  nodes can be appended as children to the specified node.</p>
+     *
+     *  @param node The Object that defines the node.
+     *
+     *  @return <code>true</code> if the node can contain children.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    function canHaveChildren(node:Object):Boolean;
+
+    /**
+     *  Returns <code>true</code> if the node has children.
+     *
+     *  @param node The Object that defines the node.
+     *
+     *  @return <code>true</code> if the node has children.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    function hasChildren(node:Object):Boolean;
+
+    /**
+     *  Returns an Object representing the node's children.
+     *
+     *  @param node The Object that defines the node.
+     *  If <code>null</code>, return a collection of top-level nodes.
+     *
+     *  @return An Object containing the children nodes.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    function getChildren(node:Object):Object;
+
+    /**
+     *  Returns data from a node.
+     *
+     *  @param node The node Object from which to get the data.
+     *
+     *  @return The requested data.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    function getData(node:Object):Object;
+
+    /**
+     * Returns the root data item.
+     *
+     * @return The Object containing the root data item.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+    function getRoot():Object;
+}
+
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/Collections/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/Collections/src/main/resources/basic-manifest.xml b/frameworks/projects/Collections/src/main/resources/basic-manifest.xml
index 5ea77b7..dd1c47f 100644
--- a/frameworks/projects/Collections/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/Collections/src/main/resources/basic-manifest.xml
@@ -22,6 +22,7 @@
 <componentPackage>
 
     <component id="ArrayList" class="org.apache.flex.collections.ArrayList"/>
+    <component id="HierarchicalData" class="org.apache.flex.collections.HierarchicalData"/>
     <component id="LazyCollection" class="org.apache.flex.collections.LazyCollection"/>
     <component id="JSONInputParser" class="org.apache.flex.collections.parsers.JSONInputParser"/>
     <component id="JSONItemConverter" class="org.apache.flex.collections.converters.JSONItemConverter"/>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
index 80073e7..e5171d4 100644
--- a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
+++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as
@@ -89,7 +89,7 @@ internal class HTMLClasses
 	    import org.apache.flex.html.beads.TextInputWithBorderView; TextInputWithBorderView;
 	    import org.apache.flex.html.beads.models.AlertModel; AlertModel;
 	}
-    import org.apache.flex.html.beads.models.ArraySelectionModel; ArraySelectionModel;
+	import org.apache.flex.html.beads.models.ArraySelectionModel; ArraySelectionModel;
     import org.apache.flex.html.beads.models.RangeModel; RangeModel;
 	COMPILE::AS3
 	{
@@ -122,6 +122,7 @@ internal class HTMLClasses
 	}
     import org.apache.flex.html.beads.controllers.ItemRendererMouseController; ItemRendererMouseController;
     import org.apache.flex.html.beads.controllers.ListSingleSelectionMouseController; ListSingleSelectionMouseController;
+	import org.apache.flex.html.beads.controllers.TreeSingleSelectionMouseController; TreeSingleSelectionMouseController;
 	COMPILE::AS3
 	{
 		import org.apache.flex.html.beads.controllers.SliderMouseController; SliderMouseController;
@@ -142,6 +143,7 @@ internal class HTMLClasses
     import org.apache.flex.html.beads.TextItemRendererFactoryForArrayData; TextItemRendererFactoryForArrayData;
 	import org.apache.flex.html.beads.DataItemRendererFactoryForArrayData; DataItemRendererFactoryForArrayData;
 	import org.apache.flex.html.beads.DataItemRendererFactoryForArrayList; DataItemRendererFactoryForArrayList;
+	import org.apache.flex.html.beads.DataItemRendererFactoryForHierarchicalData; DataItemRendererFactoryForHierarchicalData;
 	import org.apache.flex.html.supportClasses.DataGroup; DataGroup;
 	import org.apache.flex.html.supportClasses.Viewport; Viewport;
 	import org.apache.flex.html.supportClasses.ScrollingViewport; ScrollingViewport;
@@ -163,7 +165,7 @@ internal class HTMLClasses
     import org.apache.flex.html.MXMLBeadViewBase; MXMLBeadViewBase;
     import org.apache.flex.html.beads.TitleBarView; TitleBarView;
     import org.apache.flex.html.beads.TitleBarMeasurementBead; TitleBarMeasurementBead;
-	
+
 	import org.apache.flex.html.beads.WebBrowserView; WebBrowserView;
 	import org.apache.flex.html.beads.models.WebBrowserModel; WebBrowserModel;
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Tree.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Tree.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Tree.as
new file mode 100644
index 0000000..c23e7f9
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/Tree.as
@@ -0,0 +1,73 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html
+{
+	import org.apache.flex.collections.FlattenedList;
+	import org.apache.flex.collections.HierarchicalData;
+
+	/**
+	 *  The Tree component displays structured data. The Tree uses a HierarchicalData
+	 *  object as its data provider. 
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class Tree extends List
+	{
+		/**
+		 * Constructor.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function Tree()
+		{
+			super();
+		}
+
+		private var _hierarchicalData:HierarchicalData;
+		private var _flatList:FlattenedList;
+
+		/**
+		 * The dataProvider should be of type HierarchicalData.
+		 * 
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 *  @see org.apache.flex.collections.HierarchicalData.
+		 */
+		override public function get dataProvider():Object
+		{
+			return _hierarchicalData;
+		}
+		override public function set dataProvider(value:Object):void
+		{
+			_hierarchicalData = value as HierarchicalData;
+
+			_flatList = new FlattenedList(_hierarchicalData);
+
+			super.dataProvider = _flatList;
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForHierarchicalData.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForHierarchicalData.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForHierarchicalData.as
new file mode 100644
index 0000000..58bfd21
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DataItemRendererFactoryForHierarchicalData.as
@@ -0,0 +1,109 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.beads
+{
+	import org.apache.flex.core.IBead;
+	import org.apache.flex.core.IDataProviderItemRendererMapper;
+	import org.apache.flex.core.IItemRendererClassFactory;
+	import org.apache.flex.core.IItemRendererParent;
+	import org.apache.flex.core.IListPresentationModel;
+	import org.apache.flex.core.ISelectableItemRenderer;
+	import org.apache.flex.core.ISelectionModel;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.core.IUIBase;
+	import org.apache.flex.core.SimpleCSSStyles;
+	import org.apache.flex.core.UIBase;
+	import org.apache.flex.core.ValuesManager;
+	import org.apache.flex.events.Event;
+	import org.apache.flex.events.IEventDispatcher;
+	import org.apache.flex.html.List;
+	import org.apache.flex.html.supportClasses.TreeListData;
+	import org.apache.flex.collections.FlattenedList;
+
+    /**
+     *  The DataItemRendererFactoryForHierarchicalData class reads a
+     *  HierarchicalData object and creates an item renderer for every
+     *  item in the array.  Other implementations of
+     *  IDataProviderItemRendererMapper map different data
+     *  structures or manage a virtual set of renderers.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion FlexJS 0.0
+     */
+	public class DataItemRendererFactoryForHierarchicalData extends DataItemRendererFactoryForArrayList
+	{
+        /**
+         *  Constructor.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+		public function DataItemRendererFactoryForHierarchicalData()
+		{
+			super();
+		}
+
+		private var _strand:IStrand;
+
+        /**
+         *  @copy org.apache.flex.core.IBead#strand
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+		override public function set strand(value:IStrand):void
+		{
+			_strand = value;
+			
+			super.strand = value;
+		}
+		
+		/**
+		 * Sets the itemRenderer's data with additional tree-related data.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		override protected function setData(ir:ISelectableItemRenderer, data:Object, index:int):void
+		{
+			// Set the listData with the depth of this item
+			var flatList:FlattenedList = selectionModel.dataProvider as FlattenedList;
+			var depth:int = flatList.getDepth(data);
+			var isOpen:Boolean = flatList.isOpen(data);
+			var hasChildren:Boolean = flatList.hasChildren(data);
+			
+			var treeData:TreeListData = new TreeListData();
+			treeData.depth = depth;
+			treeData.isOpen = isOpen;
+			treeData.hasChildren = hasChildren;
+			
+			ir.listData = treeData;
+			
+			super.setData(ir, data, index);
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.as
index e8a1f1f..dbeac6b 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/ListSingleSelectionMouseController.as
@@ -111,27 +111,27 @@ package org.apache.flex.html.beads.controllers
 			IEventDispatcher(_strand).addEventListener("itemRemoved", handleItemRemoved);
 		}
 		
-		private function handleItemAdded(event:ItemAddedEvent):void
+		protected function handleItemAdded(event:ItemAddedEvent):void
 		{
 			IEventDispatcher(event.item).addEventListener("itemClicked", selectedHandler);
 			IEventDispatcher(event.item).addEventListener("itemRollOver", rolloverHandler);
 			IEventDispatcher(event.item).addEventListener("itemRollOut", rolloutHandler);
 		}
 		
-		private function handleItemRemoved(event:ItemAddedEvent):void
+		protected function handleItemRemoved(event:ItemAddedEvent):void
 		{
 			IEventDispatcher(event.item).removeEventListener("itemClicked", selectedHandler);
 			IEventDispatcher(event.item).removeEventListener("itemRollOver", rolloverHandler);
 			IEventDispatcher(event.item).removeEventListener("itemRollOut", rolloutHandler);
 		}
 		
-        private function selectedHandler(event:ItemClickedEvent):void
+		protected function selectedHandler(event:ItemClickedEvent):void
         {
             listModel.selectedIndex = event.index;
             listView.host.dispatchEvent(new Event("change"));
         }
 		
-		private function rolloverHandler(event:Event):void
+		protected function rolloverHandler(event:Event):void
 		{
 			var renderer:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer;
 			if (renderer) {
@@ -140,7 +140,7 @@ package org.apache.flex.html.beads.controllers
 			}
 		}
 		
-		private function rolloutHandler(event:Event):void
+		protected function rolloutHandler(event:Event):void
 		{
 			var renderer:ISelectableItemRenderer = event.currentTarget as ISelectableItemRenderer;
 			if (renderer) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/TreeSingleSelectionMouseController.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/TreeSingleSelectionMouseController.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/TreeSingleSelectionMouseController.as
new file mode 100644
index 0000000..a668fa4
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/TreeSingleSelectionMouseController.as
@@ -0,0 +1,82 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.beads.controllers
+{
+	import org.apache.flex.collections.FlattenedList;
+	import org.apache.flex.html.Tree
+	import org.apache.flex.events.ItemClickedEvent;
+	import org.apache.flex.core.IStrand;
+	import org.apache.flex.events.Event;
+
+	/**
+	 *  The TreeSingleSelectionMouseController class is a controller for 
+	 *  org.apache.flex.html.Tree. This controller watches for selection
+	 *  events on the tree item renderers and uses those events to open
+	 *  or close nodes of the tree.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 */
+	public class TreeSingleSelectionMouseController extends ListSingleSelectionMouseController
+	{
+		/**
+		 *  Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function TreeSingleSelectionMouseController()
+		{
+			super();
+		}
+
+		private var _strand:IStrand;
+
+		/**
+		 * @private
+		 */
+		override public function set strand(value:IStrand):void
+		{
+			_strand = value;
+			super.strand = value;
+		}
+
+		/**
+		 * @private
+		 */
+		override protected function selectedHandler(event:ItemClickedEvent):void
+		{
+			var tree:Tree = _strand as Tree;
+			var flatList:FlattenedList = listModel.dataProvider as FlattenedList;
+			var node:Object = event.data;
+			
+			if (flatList.isOpen(node)) {
+				flatList.closeNode(node);
+			} else {
+				flatList.openNode(node);
+			}
+			
+			listModel.dispatchEvent(new Event("dataProviderChanged"));
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/StringItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/StringItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/StringItemRenderer.as
index 9568932..db0977e 100644
--- a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/StringItemRenderer.as
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/StringItemRenderer.as
@@ -173,9 +173,6 @@ package org.apache.flex.html.supportClasses
             // the selection and highlight
             backgroundView = element;
             
-            controller = new ItemRendererMouseController();
-            controller.strand = this;
-            
             return element;
         }
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeItemRenderer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeItemRenderer.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeItemRenderer.as
new file mode 100644
index 0000000..bf545b0
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeItemRenderer.as
@@ -0,0 +1,59 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.supportClasses
+{	
+	public class TreeItemRenderer extends StringItemRenderer
+	{
+		/**
+		 * Constructor.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		public function TreeItemRenderer()
+		{
+			super();
+		}
+		
+		/**
+		 * Sets the data for the itemRenderer instance along with the listData
+		 * (TreeListData).
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+		 */
+		override public function set data(value:Object):void
+		{
+			super.data = value;
+			
+			var treeData:TreeListData = listData as TreeListData;
+			
+			var indent:String = treeData.hasChildren ? (treeData.isOpen ? "-" : "+") : " ";
+			for (var i:int=0; i < treeData.depth; i++) {
+				indent += "    ";
+			}
+			
+			this.text = indent + this.text;
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeListData.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeListData.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeListData.as
new file mode 100644
index 0000000..c6da4d5
--- /dev/null
+++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/supportClasses/TreeListData.as
@@ -0,0 +1,76 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.flex.html.supportClasses
+{
+	/**
+	 *  The TreeListData class contains information that Tree item renderers may
+	 *  find useful when displaying the data for a node in the tree.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion FlexJS 0.0
+	 *  @flexjsignoreimport goog.events.Event
+	 */
+	public class TreeListData
+	{
+		/**
+		 *  constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public function TreeListData()
+		{
+		}
+
+		/**
+		 *  The depth of the data within the tree with the root being zero.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public var depth:Number;
+		
+		/**
+		 *  Whether or not the node for this data is open (and its children
+		 *  visible).
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public var isOpen:Boolean;
+		
+		/**
+		 *  Whether or not the node for this data has any children.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion FlexJS 0.0
+		 */
+		public var hasChildren:Boolean;
+	}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
index 3b72af6..8a4db07 100644
--- a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
+++ b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml
@@ -49,6 +49,7 @@
     <component id="TitleBar" class="org.apache.flex.html.TitleBar"/>
     <component id="TitleBarModel" class="org.apache.flex.html.beads.models.TitleBarModel"/>
     <component id="ToolTip" class="org.apache.flex.html.ToolTip"/>
+    <component id="Tree" class="org.apache.flex.html.Tree"/>
     <component id="BasicLayout" class="org.apache.flex.html.beads.layouts.BasicLayout"/>
     <component id="VerticalLayout" class="org.apache.flex.html.beads.layouts.VerticalLayout"/>
     <component id="HorizontalLayout" class="org.apache.flex.html.beads.layouts.HorizontalLayout"/>
@@ -62,6 +63,7 @@
     <component id="Slider" class="org.apache.flex.html.Slider"/>
     <component id="NumericStepper" class="org.apache.flex.html.NumericStepper" />
     <component id="StringItemRenderer" class="org.apache.flex.html.supportClasses.StringItemRenderer"/>
+    <component id="TreeItemRenderer" class="org.apache.flex.html.supportClasses.TreeItemRenderer"/>
     <component id="DataItemRenderer" class="org.apache.flex.html.supportClasses.DataItemRenderer"/>
     <component id="ButtonBarButtonItemRenderer" class="org.apache.flex.html.supportClasses.ButtonBarButtonItemRenderer"/>
     <!--

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d0dddc1f/frameworks/projects/HTML/src/main/resources/defaults.css
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/src/main/resources/defaults.css b/frameworks/projects/HTML/src/main/resources/defaults.css
index 13d7418..ea0c0c8 100644
--- a/frameworks/projects/HTML/src/main/resources/defaults.css
+++ b/frameworks/projects/HTML/src/main/resources/defaults.css
@@ -206,6 +206,22 @@ List
 	border-color: #222222;
 }
 
+Tree
+{
+	IBeadModel: ClassReference("org.apache.flex.html.beads.models.ArraySelectionModel");
+	IBeadView:  ClassReference("org.apache.flex.html.beads.ListView");			
+	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.TreeSingleSelectionMouseController");
+	IBeadLayout: ClassReference("org.apache.flex.html.beads.layouts.VerticalLayout");
+	IContentView: ClassReference("org.apache.flex.html.supportClasses.DataGroup");
+	IDataProviderItemRendererMapper: ClassReference("org.apache.flex.html.beads.DataItemRendererFactoryForHierarchicalData");
+	IItemRendererClassFactory: ClassReference("org.apache.flex.core.ItemRendererClassFactory");
+	IItemRenderer: ClassReference("org.apache.flex.html.supportClasses.TreeItemRenderer");
+	IViewport: ClassReference("org.apache.flex.html.supportClasses.ScrollingViewport");
+	IViewportModel: ClassReference("org.apache.flex.html.beads.models.ViewportModel");
+	border-style: solid;
+	border-color: #222222;
+}
+
 NumericStepper
 {
     IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModel");
@@ -266,6 +282,12 @@ StringItemRenderer
     height: 16;
 }
 
+TreeItemRenderer
+{
+	IBeadController: ClassReference("org.apache.flex.html.beads.controllers.ItemRendererMouseController");
+	height: 16;
+}
+
 TextInput
 {
   border: 1px solid #808080;


[33/37] git commit: [flex-asjs] [refs/heads/spark] - header

Posted by ah...@apache.org.
header


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/e7013585
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/e7013585
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/e7013585

Branch: refs/heads/spark
Commit: e701358539dc118a95d193487aa40503a3968ead
Parents: 9dfef27
Author: Alex Harui <ah...@apache.org>
Authored: Fri Mar 11 14:56:40 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Mar 11 14:56:40 2016 -0800

----------------------------------------------------------------------
 .../src/main/flex/google/maps/MouseEvent.as      | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e7013585/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MouseEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MouseEvent.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MouseEvent.as
index f06d7c5..4b0849b 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MouseEvent.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/MouseEvent.as
@@ -1,3 +1,22 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ * Modifications may have been implemented at the Apache Software Foundation.
+ */
 package google.maps {
 
 /**


[17/37] git commit: [flex-asjs] [refs/heads/spark] - handle dynamic. Needs compiler support

Posted by ah...@apache.org.
handle dynamic.  Needs compiler support


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/02064d1d
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/02064d1d
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/02064d1d

Branch: refs/heads/spark
Commit: 02064d1dcea8ca633e9d33c0d01c147b96d0f388
Parents: 8471985
Author: Alex Harui <ah...@apache.org>
Authored: Sat Feb 27 23:15:25 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Sat Feb 27 23:15:25 2016 -0800

----------------------------------------------------------------------
 .../apache/flex/reflection/TypeDefinition.as    | 22 ++++++++++++++++++++
 1 file changed, 22 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/02064d1d/frameworks/projects/Reflection/src/main/flex/org/apache/flex/reflection/TypeDefinition.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Reflection/src/main/flex/org/apache/flex/reflection/TypeDefinition.as b/frameworks/projects/Reflection/src/main/flex/org/apache/flex/reflection/TypeDefinition.as
index 6035bab..fd1f7b3 100755
--- a/frameworks/projects/Reflection/src/main/flex/org/apache/flex/reflection/TypeDefinition.as
+++ b/frameworks/projects/Reflection/src/main/flex/org/apache/flex/reflection/TypeDefinition.as
@@ -65,6 +65,28 @@ package org.apache.flex.reflection
             }
             return _rawData;
         }
+		
+		public function get dynamic():Boolean
+		{
+			COMPILE::AS3
+			{
+				return Boolean(rawData.@dynamic);
+			}
+			COMPILE::JS
+			{
+				var data:Object = rawData;
+				var name:String = data.names[0].qName;
+				var def:Object = getDefinitionByName(name);
+				var rdata:* = def.prototype.FLEXJS_REFLECTION_INFO();
+				if (rdata !== undefined)
+				{
+					return Boolean(rdata.dynamic);
+				}
+				return false;
+			}
+					
+		}        
+		
         /**
          *  @flexjsignorecoercion XML 
          */


[06/37] git commit: [flex-asjs] [refs/heads/spark] - Core: Language now checks for global console variable as final fallback, which adds trace() support for Node.js release builds

Posted by ah...@apache.org.
Core: Language now checks for global console variable as final fallback, which adds trace() support for Node.js release builds


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/59b8e43f
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/59b8e43f
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/59b8e43f

Branch: refs/heads/spark
Commit: 59b8e43f7e1edad135f77518127f8f3fa51cd6e6
Parents: 9afa2c1
Author: Josh Tynjala <jo...@apache.org>
Authored: Fri Feb 12 11:29:26 2016 -0800
Committer: Josh Tynjala <jo...@apache.org>
Committed: Fri Feb 12 11:29:26 2016 -0800

----------------------------------------------------------------------
 .../Core/src/main/flex/org/apache/flex/utils/Language.as         | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/59b8e43f/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
index e3a318c..2586e77 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
@@ -312,6 +312,10 @@ package org.apache.flex.utils
 				{
 					theConsole = window.console;
 				}
+				else if(typeof console !== "undefined")
+				{
+					theConsole = console;
+				}
 			}
 
 			try


[30/37] git commit: [flex-asjs] [refs/heads/spark] - try fixing up headers. Some day, we should try pulling most of these files from the flex-falcon externs. Most files are copies with some tweaks to jsdoc to make asdoc happy

Posted by ah...@apache.org.
http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewService.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewService.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewService.as
index ae969f8..08f12c4 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewService.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewService.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewStatus.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewStatus.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewStatus.as
index 04a9a11..a89fc9e 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewStatus.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StreetViewStatus.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StrokePosition.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StrokePosition.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StrokePosition.as
index 14fb79a..a759efc 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StrokePosition.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StrokePosition.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StyledMapType.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StyledMapType.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StyledMapType.as
index f4a420d..cc1156a 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StyledMapType.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/StyledMapType.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/SymbolPath.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/SymbolPath.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/SymbolPath.as
index 3e7a7dc..d6bf376 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/SymbolPath.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/SymbolPath.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TrafficLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TrafficLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TrafficLayer.as
index c00139d..9c64365 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TrafficLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TrafficLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TransitLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TransitLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TransitLayer.as
index c0a5be2..9435a3e 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TransitLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TransitLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TravelMode.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TravelMode.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TravelMode.as
index 2ba3b84..9792ef1 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TravelMode.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/TravelMode.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/UnitSystem.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/UnitSystem.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/UnitSystem.as
index 3b349c0..d0adabf 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/UnitSystem.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/UnitSystem.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ZoomControlStyle.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ZoomControlStyle.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ZoomControlStyle.as
index 842bd64..ca684fe 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ZoomControlStyle.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/ZoomControlStyle.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense.as
index 58a178e..805344b 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 import google.maps.adsense.AdFormat;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense/AdFormat.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense/AdFormat.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense/AdFormat.as
index cfb9242..7fd1b03 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense/AdFormat.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense/AdFormat.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.adsense {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense/AdUnit.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense/AdUnit.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense/AdUnit.as
index 8cf5742..f4d5126 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense/AdUnit.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/adsense/AdUnit.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.adsense {
 
 import google.maps.Map;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing.as
index 81e538c..30168d2 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 import google.maps.drawing.OverlayType;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/DrawingManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/DrawingManager.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/DrawingManager.as
index 2c42ac2..77008db 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/DrawingManager.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/DrawingManager.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.drawing {
 
 import google.maps.Map;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/OverlayCompleteEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/OverlayCompleteEvent.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/OverlayCompleteEvent.as
index cb49e00..18530b5 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/OverlayCompleteEvent.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/OverlayCompleteEvent.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.drawing {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/OverlayType.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/OverlayType.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/OverlayType.as
index 0ce18e6..16bdc6d 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/OverlayType.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/drawing/OverlayType.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.drawing {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/event.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/event.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/event.as
index 2a67d02..ee7a9b6 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/event.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/event.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry.as
index 5d72731..974611e 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 import google.maps.geometry.spherical;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/encoding.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/encoding.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/encoding.as
index c88b290..e350f84 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/encoding.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/encoding.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.geometry {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/poly.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/poly.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/poly.as
index 573db4d..d24794d 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/poly.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/poly.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.geometry {
 
 import google.maps.LatLng;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/spherical.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/spherical.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/spherical.as
index 78dbb08..7eb0558 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/spherical.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/geometry/spherical.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.geometry {
 
 import google.maps.LatLng;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/panoramio.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/panoramio.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/panoramio.as
index 25ebe7a..0e88a30 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/panoramio.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/panoramio.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/panoramio/PanoramioLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/panoramio/PanoramioLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/panoramio/PanoramioLayer.as
index a6bd5ff..cb721a8 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/panoramio/PanoramioLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/panoramio/PanoramioLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.panoramio {
 
 import google.maps.Map;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places.as
index 0706b50..047a21a 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 import google.maps.places.RankBy;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/Autocomplete.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/Autocomplete.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/Autocomplete.as
index e1bf0f0..bb9bba7 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/Autocomplete.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/Autocomplete.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 import google.maps.MVCObject;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/AutocompleteService.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/AutocompleteService.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/AutocompleteService.as
index 48399b4..f0b183f 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/AutocompleteService.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/AutocompleteService.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/ComponentRestrictions.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/ComponentRestrictions.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/ComponentRestrictions.as
index 7168e10..151e398 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/ComponentRestrictions.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/ComponentRestrictions.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PhotoOptions.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PhotoOptions.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PhotoOptions.as
index b241e72..8223a0e 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PhotoOptions.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PhotoOptions.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceAspectRating.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceAspectRating.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceAspectRating.as
index f358773..aed6f87 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceAspectRating.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceAspectRating.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceGeometry.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceGeometry.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceGeometry.as
index dedf940..d4866c7 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceGeometry.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceGeometry.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 import google.maps.LatLng;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceResult.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceResult.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceResult.as
index 141b4e9..23e09ae 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceResult.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceResult.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceReview.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceReview.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceReview.as
index daf9a63..995573f 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceReview.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceReview.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceSearchPagination.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceSearchPagination.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceSearchPagination.as
index 376e07f..ebfe0f2 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceSearchPagination.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlaceSearchPagination.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlacesService.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlacesService.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlacesService.as
index e8c5a5a..e503f28 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlacesService.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlacesService.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlacesServiceStatus.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlacesServiceStatus.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlacesServiceStatus.as
index 94b4702..5f51e6f 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlacesServiceStatus.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/PlacesServiceStatus.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/RankBy.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/RankBy.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/RankBy.as
index a744e12..455be4e 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/RankBy.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/RankBy.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/SearchBox.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/SearchBox.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/SearchBox.as
index 20ae004..0acb0ab 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/SearchBox.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/places/SearchBox.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.places {
 
 import google.maps.MVCObject;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization.as
index 0547a3f..09db553 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 import google.maps.visualization.MapsEngineStatus;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/DemographicsLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/DemographicsLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/DemographicsLayer.as
index d4e8bc3..ffd70af 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/DemographicsLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/DemographicsLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.visualization {
 
 import google.maps.Map;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/HeatmapLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/HeatmapLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/HeatmapLayer.as
index 8de2728..336802d 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/HeatmapLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/HeatmapLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.visualization {
 
 import google.maps.Map;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/MapsEngineLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/MapsEngineLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/MapsEngineLayer.as
index 561df98..ca229c1 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/MapsEngineLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/MapsEngineLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.visualization {
 
 import google.maps.Map;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/MapsEngineStatus.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/MapsEngineStatus.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/MapsEngineStatus.as
index 68a2adc..40b4c63 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/MapsEngineStatus.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/visualization/MapsEngineStatus.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.visualization {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather.as
index d995229..a69320b 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps {
 
 import google.maps.weather.WindSpeedUnit;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/CloudLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/CloudLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/CloudLayer.as
index 9914927..c698bec 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/CloudLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/CloudLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.weather {
 
 import google.maps.Map;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/LabelColor.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/LabelColor.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/LabelColor.as
index a46098b..2be2c44 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/LabelColor.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/LabelColor.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.weather {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/TemperatureUnit.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/TemperatureUnit.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/TemperatureUnit.as
index f7a49e1..e178894 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/TemperatureUnit.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/TemperatureUnit.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.weather {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/WeatherLayer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/WeatherLayer.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/WeatherLayer.as
index b76c968..a28987e 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/WeatherLayer.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/WeatherLayer.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.weather {
 
 import google.maps.Map;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/WindSpeedUnit.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/WindSpeedUnit.as b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/WindSpeedUnit.as
index a4aaaab..5d98bd8 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/WindSpeedUnit.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/maps/weather/WindSpeedUnit.as
@@ -1,3 +1,21 @@
+/*
+ * Copyright 2010 The Closure Compiler Authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * This file was generated from Google's Externs for the Google Maps v3.11 API.
+ */
 package google.maps.weather {
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/pseudo/HTMLInputElement.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/pseudo/HTMLInputElement.as b/frameworks/projects/GoogleMaps/src/main/flex/google/pseudo/HTMLInputElement.as
index 27b12aa..59bde13 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/pseudo/HTMLInputElement.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/pseudo/HTMLInputElement.as
@@ -1,3 +1,23 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+// used to quiet errors in asdoc
 package google.pseudo {
 public class HTMLInputElement extends Object {
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/26a26621/frameworks/projects/GoogleMaps/src/main/flex/google/pseudo/Node.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/GoogleMaps/src/main/flex/google/pseudo/Node.as b/frameworks/projects/GoogleMaps/src/main/flex/google/pseudo/Node.as
index 3f67a33..cd4bba1 100644
--- a/frameworks/projects/GoogleMaps/src/main/flex/google/pseudo/Node.as
+++ b/frameworks/projects/GoogleMaps/src/main/flex/google/pseudo/Node.as
@@ -1,3 +1,23 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+// used to quiet issues with asdoc
 package google.pseudo {
 public class Node extends Object {
 }


[23/37] git commit: [flex-asjs] [refs/heads/spark] - more changes to remove compile errors

Posted by ah...@apache.org.
more changes to remove compile errors


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/fc11d5a3
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/fc11d5a3
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/fc11d5a3

Branch: refs/heads/spark
Commit: fc11d5a3f716072dd391167459e63bc6fccce0a8
Parents: 958b112
Author: Alex Harui <ah...@apache.org>
Authored: Sat Mar 5 23:40:17 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Sat Mar 5 23:40:17 2016 -0800

----------------------------------------------------------------------
 frameworks/projects/MX/build.xml                | 174 +++++++++
 .../flex/flex/display/DisplayObjectContainer.as |   3 +-
 .../MX/src/main/flex/flex/display/Graphics.as   |  33 ++
 .../main/flex/flex/display/InteractiveObject.as |   2 +-
 .../MX/src/main/flex/flex/display/ModuleInfo.as |  22 ++
 .../MX/src/main/flex/flex/display/MovieClip.as  |  10 +-
 .../MX/src/main/flex/flex/display/Sprite.as     | 118 +++++-
 .../main/flex/flex/display/TopOfDisplayList.as  |  16 +-
 .../MX/src/main/flex/flex/events/Event.as       |   1 +
 .../src/main/flex/flex/events/ProgressEvent.as  |   7 +-
 .../main/flex/flex/system/DefinitionManager.as  |  31 +-
 .../MX/src/main/flex/flex/ui/Keyboard.as        |   5 +
 .../MX/src/main/flex/mx/collections/IList.as    |   2 +-
 .../main/flex/mx/core/IAssetLayoutFeatures.as   |  13 +-
 .../MX/src/main/flex/mx/core/IChildList.as      |   1 +
 .../MX/src/main/flex/mx/core/IContainer.as      |   4 +
 .../mx/core/IDisplayObjectContainerInterface.as |   9 +
 .../flex/mx/core/IDisplayObjectInterface.as     |  26 ++
 .../src/main/flex/mx/core/IFlexDisplayObject.as |   9 +-
 .../MX/src/main/flex/mx/core/ILayoutElement.as  |  11 +-
 .../src/main/flex/mx/core/ITextFieldFactory.as  |   2 +-
 .../MX/src/main/flex/mx/core/IUITextField.as    |  21 +-
 .../mx/core/LayoutElementUIComponentUtils.as    |  29 +-
 .../src/main/flex/mx/effects/EffectManager.as   |  18 +-
 .../src/main/flex/mx/effects/IAbstractEffect.as |  10 +-
 .../mx/events/ChildExistenceChangedEvent.as     |   2 +-
 .../src/main/flex/mx/managers/IFocusManager.as  |   9 +-
 .../flex/mx/managers/IFocusManagerContainer.as  |   9 +-
 .../flex/mx/managers/ILayoutManagerClient.as    |   2 +-
 .../src/main/flex/mx/managers/ISystemManager.as |   2 +
 .../main/flex/mx/managers/IToolTipManager.as    |   9 +-
 .../src/main/flex/mx/managers/SystemManager.as  | 377 ++++++++++++++-----
 .../flex/mx/preloaders/IPreloaderDisplay.as     |  11 +-
 .../MX/src/main/flex/mx/preloaders/Preloader.as |  70 +++-
 .../MX/src/main/flex/mx/states/RemoveChild.as   |  13 +-
 .../src/main/flex/mx/states/SetEventHandler.as  |   2 +-
 .../MX/src/main/flex/mx/utils/GraphicsUtil.as   |   9 +-
 .../MX/src/main/flex/mx/utils/NameUtil.as       |  22 +-
 .../MX/src/main/flex/mx/utils/ObjectUtil.as     | 120 +++---
 .../flex/mx/utils/OnDemandEventDispatcher.as    |  18 +-
 40 files changed, 1030 insertions(+), 222 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/build.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/build.xml b/frameworks/projects/MX/build.xml
new file mode 100644
index 0000000..16e92f3
--- /dev/null
+++ b/frameworks/projects/MX/build.xml
@@ -0,0 +1,174 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<project name="MX" default="main" basedir=".">
+    <property name="FLEXJS_HOME" location="../../.."/>
+    
+    <property file="${FLEXJS_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${FLEXJS_HOME}/build.properties"/>
+    <property name="FLEX_HOME" value="${FLEXJS_HOME}"/>
+    <property name="FALCON_HOME" value="${env.FALCON_HOME}"/>
+    <property name="FALCONJX_HOME" value="${env.FALCONJX_HOME}"/>
+    <property name="JS.SWC" value="${FALCONJX_HOME}/../externs/js/out/bin/js.swc" />
+    <property name="GCL.SWC" value="${FALCONJX_HOME}/../externs/GCL/out/bin/GCL.swc" />
+    <property name="target.name" value="MX-${release.version}.swc" />
+    <property name="target.name.no.version" value="MX.swc" />
+    
+    <target name="main" depends="clean,compile-asjs,compile-extern-swc,copy-js,compile,test" description="Full build of MX.swc">
+    </target>
+    
+    <target name="test" unless="is.jenkins">
+        <ant dir="src/test/flex"/>
+    </target>
+    
+    <target name="test-js" unless="is.jenkins">
+        <!-- no tests yet
+         <ant dir="js/tests" />
+         -->
+    </target>
+    
+    <target name="clean">
+        <delete failonerror="false">
+            <fileset dir="${FLEXJS_HOME}/frameworks/libs">
+                <include name="${target.name.no.version}"/>
+            </fileset>
+        </delete>
+        <delete failonerror="false">
+            <fileset dir="${basedir}/target">
+                <include name="**/**"/>
+            </fileset>
+        </delete>
+    </target>
+    
+    <path id="lib.path">
+      <fileset dir="${FALCON_HOME}/lib" includes="falcon-flexTasks.jar"/>
+    </path>
+
+    <target name="compile" description="Compiles .as files into .swc">
+        <echo message="Compiling target/${target.name}"/>
+        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+        <echo message="FALCON_HOME: ${FALCON_HOME}"/>
+        <!-- make JS output folder now so include-file doesn't error -->
+        <mkdir dir="${basedir}/target/generated-sources/flexjs"/>
+        
+        <!-- Load the <compc> task. We can't do this at the <project> level -->
+        <!-- because targets that run before flexTasks.jar gets built would fail. -->
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+        <!--
+         Link in the classes (and their dependencies) for the MXML tags
+         listed in this project's manifest.xml.
+         Also link the additional classes (and their dependencies)
+         listed in CoreClasses.as,
+         because these aren't referenced by the manifest classes.
+         Keep the standard metadata when compiling.
+         Include the appropriate CSS files and assets in the SWC.
+         Don't include any resources in the SWC.
+         Write a bundle list of referenced resource bundles
+         into the file bundles.properties in this directory.
+         -->
+        <compc fork="true"
+            output="${basedir}/target/${target.name}">
+            <jvmarg line="${compc.jvm.args}"/>
+            <load-config filename="${basedir}/src/main/resources/compile-config.xml" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-define=COMPILE::AS3,true" />
+            <arg value="-define=COMPILE::JS,false" />
+            <arg value="-define=COMPILE::LATER,false" />
+        </compc>
+        <copy file="${basedir}/target/${target.name}" tofile="${FLEXJS_HOME}/frameworks/libs/${target.name.no.version}" />
+    </target>
+
+    <target name="compile-asjs">
+        <echo message="Cross-compiling ${target.name}"/>
+        <echo message="FALCONJX_HOME: ${FALCONJX_HOME}"/>
+        <java jar="${FALCONJX_HOME}/lib/compc.jar" fork="true" >
+            <jvmarg value="-Xmx384m" />
+            <jvmarg value="-Dsun.io.useCanonCaches=false" />
+            <jvmarg value="-Dflexcompiler=${FALCONJX_HOME}/../compiler" />
+            <jvmarg value="-Dflexlib=${FLEXJS_HOME}/frameworks" />
+            <arg value="+flexlib=${FLEX_HOME}/frameworks" />
+            <arg value="-js-output-type=FLEXJS" />
+            <arg value="-keep-asdoc" /><!-- allows compiler to see @flexjsignorecoercion annotations -->
+            <arg value="-output=${basedir}/target/generated-sources/flexjs" />
+            <arg value="-load-config=${basedir}/src/main/resources/compile-asjs-config.xml" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.PLAYERGLOBAL_HOME=${env.PLAYERGLOBAL_HOME}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-external-library-path+=${JS.SWC}" />
+            <!-- this is not on external-library path otherwise goog.requires are not generated -->
+            <arg value="-library-path+=${GCL.SWC}" />
+            <arg value="-define=COMPILE::AS3,false" />
+            <arg value="-define=COMPILE::JS,true" />
+            <arg value="-define=COMPILE::LATER,false" />
+        </java>
+    </target>
+
+    <target name="compile-extern-swc" description="Compiles .as files into .swc used for cross-compiling other projects">
+        <echo message="Compiling target/externs/${target.name}"/>
+        <echo message="FLEX_HOME: ${FLEX_HOME}"/>
+        <echo message="FALCON_HOME: ${FALCON_HOME}"/>
+        <!-- make JS output folder now so include-file doesn't error -->
+        <mkdir dir="${FLEXJS_HOME}/frameworks/externs"/>
+        <mkdir dir="${basedir}/target/externs"/>
+        
+        <!-- Load the <compc> task. We can't do this at the <project> level -->
+        <!-- because targets that run before flexTasks.jar gets built would fail. -->
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+        <!--
+         Link in the classes (and their dependencies) for the MXML tags
+         listed in this project's manifest.xml.
+         Also link the additional classes (and their dependencies)
+         listed in CoreClasses.as,
+         because these aren't referenced by the manifest classes.
+         Keep the standard metadata when compiling.
+         Include the appropriate CSS files and assets in the SWC.
+         Don't include any resources in the SWC.
+         Write a bundle list of referenced resource bundles
+         into the file bundles.properties in this directory.
+         -->
+        <compc fork="true"
+            output="${basedir}/target/externs/${target.name}">
+            <jvmarg line="${compc.jvm.args}"/>
+            <load-config filename="src/main/resources/compile-asjs-config.xml" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-external-library-path+=${JS.SWC}" />
+            <!-- this is not on external-library path otherwise goog.requires are not generated -->
+            <arg value="-library-path+=${GCL.SWC}" />
+            <arg value="-define=COMPILE::AS3,false" />
+            <arg value="-define=COMPILE::JS,true" />
+            <arg value="-define=COMPILE::LATER,false" />
+        </compc>
+        <copy file="${basedir}/target/externs/${target.name}" tofile="${FLEXJS_HOME}/frameworks/externs/${target.name.no.version}" />
+    </target>
+
+    <target name="copy-js">
+        <copy todir="${FLEXJS_HOME}/frameworks/js/FlexJS/libs">
+            <fileset dir="${basedir}/target/generated-sources/flexjs">
+                <include name="**/**"/>
+            </fileset>
+        </copy>
+    </target>
+
+
+</project>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/display/DisplayObjectContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObjectContainer.as b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObjectContainer.as
index 926064a..a6b7053 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/DisplayObjectContainer.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/DisplayObjectContainer.as
@@ -20,8 +20,9 @@
 package flex.display
 {
 	import org.apache.flex.core.IUIBase;
+	import org.apache.flex.geom.Point;
 
-	public interface DisplayObjectContainer extends DisplayObject, IUIBase
+	public interface DisplayObjectContainer extends InteractiveObject, IUIBase
 	{
 		include "../../mx/core/IDisplayObjectContainerInterface.as"    
 	}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as b/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
index e439e1e..fe6f0ec 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/Graphics.as
@@ -43,6 +43,39 @@ package flex.display
 			host.drawRect(x, y, width, height);	
 		}
 		
+		public function clear():void
+		{
+			host.removeAllElements();
+		}
+		
+		private var lastX:Number = 0;
+		private var lastY:Number = 0;
+		
+		public function moveTo(x:Number, y:Number):void
+		{
+			lastX = x;
+			lastY = y;
+		}
+		
+		public function lineTo(x:Number, y:Number):void
+		{
+			var path:String = "M " + lastX.toString() + " " + lastY.toString();
+			path += "L " + x.toString() + " " + y.toString();
+			host.drawPath(path);
+			lastX = x;
+			lastY = y;
+		}
+		
+		public function curveTo(mx:Number, my:Number, x:Number, y:Number):void
+		{
+			var path:String = "M " + lastX.toString() + " " + lastY.toString();
+			path += "Q " + mx.toString() + " " + my.toString() + " " +
+						+ x.toString() + " " + y.toString();
+			host.drawPath(path);
+			lastX = x;
+			lastY = y;
+		}
+		
 		public function endFill():void
 		{
 			// really, we should queue up the drawing commands and execute them here.

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/display/InteractiveObject.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/InteractiveObject.as b/frameworks/projects/MX/src/main/flex/flex/display/InteractiveObject.as
index 4384c36..435e6d2 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/InteractiveObject.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/InteractiveObject.as
@@ -19,7 +19,7 @@
 
 package flex.display
 {
-	public interface InteractiveObject extends DisplayObjectContainer
+	public interface InteractiveObject extends DisplayObject
 	{
 		
 	}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/display/ModuleInfo.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/ModuleInfo.as b/frameworks/projects/MX/src/main/flex/flex/display/ModuleInfo.as
index 39d4c72..4992aa1 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/ModuleInfo.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/ModuleInfo.as
@@ -27,6 +27,7 @@ package flex.display
 	public class ModuleInfo
 	{
 		
+		COMPILE::AS3
 		private var loaderInfo:LoaderInfo;
 		
 		COMPILE::AS3
@@ -35,19 +36,40 @@ package flex.display
 			this.loaderInfo = loaderInfo;
 		}
 		
+		COMPILE::AS3
 		public function get height():Number
 		{
 			return loaderInfo.height;			
 		}
 		
+		COMPILE::AS3
 		public function get width():Number
 		{
 			return loaderInfo.width;
 		}
 		
+		COMPILE::AS3
 		public function get url():String
 		{
 			return loaderInfo.url;
 		}
+		
+		COMPILE::JS
+		public function get height():Number
+		{
+			return document.height;			
+		}
+		
+		COMPILE::JS
+		public function get width():Number
+		{
+			return document.width;
+		}
+		
+		COMPILE::JS
+		public function get url():String
+		{
+			return document.url;
+		}
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as b/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
index 53e5eb1..6f1fca9 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/MovieClip.as
@@ -19,9 +19,15 @@
 
 package flex.display
 {
-	import org.apache.flex.core.UIBase;
-	
 	public class MovieClip extends Sprite
 	{
+		public function get totalFrames():int
+		{
+			return 1;
+		}
+		public function get framesLoaded():int
+		{
+			return 1;
+		}
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
index e0ce060..99dd7c4 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/Sprite.as
@@ -18,20 +18,134 @@
 ////////////////////////////////////////////////////////////////////////////////
 
 package flex.display
-{
+{	
 	import org.apache.flex.core.graphics.GraphicsContainer;
 	
-	public class Sprite extends GraphicsContainer implements InteractiveObject
+	public class Sprite extends GraphicsContainer implements DisplayObjectContainer
 	{
+		COMPILE::JS
 		private var _name:String;
+		COMPILE::JS
 		public function get name():String
 		{
 			return _name;
 		}
+		COMPILE::JS
 		public function set name(value:String):void
 		{
 			_name = value;
 		}
 		
+		COMPILE::JS
+		public function get numChildren():int
+		{
+			return numElements;
+		}
+		
+		COMPILE::JS
+		public function getChildAt(index:int):DisplayObject
+		{
+			return getElementAt(index) as DisplayObject;
+		}
+		
+		COMPILE::JS
+		public function getChildByName(name:String):DisplayObject
+		{
+			for (var i:int = 0; i < numChildren; i++)
+			{
+				if (getChildAt(i).name == name)
+					return getChildAt(i);
+			}
+			return null;
+		}
+		
+		COMPILE::JS
+		public function getChildIndex(child:DisplayObject):int
+		{
+			return getElementIndex(child);
+		}
+		
+		COMPILE::JS
+		public function setChildIndex(child:DisplayObject, index:int):void
+		{
+			removeElement(child);
+			addElementAt(child, index);
+		}
+		
+		COMPILE::JS
+		public function addChild(child:DisplayObject):DisplayObject
+		{
+			addElement(child);
+			return child;
+		}
+		
+		COMPILE::JS
+		public function addChildAt(child:DisplayObject, index:int):DisplayObject
+		{
+			addElement(child, index);
+			return child;
+		}
+		
+		COMPILE::JS
+		public function removeChild(child:DisplayObject):DisplayObject
+		{
+			removeElement(child);
+			return child;
+		}
+		
+		COMPILE::JS
+		public function removeChildAt(index:int):DisplayObject
+		{
+			var child:DisplayObject = getChildAt(index);
+			removeElement(child);
+			return child;
+		}
+		
+		/**
+		 *  @flexjsignorecoercion flex.display.TopOfDisplayList
+		 */
+		public function get topOfDisplayList():TopOfDisplayList
+		{
+			return topMostEventDispatcher as TopOfDisplayList;
+		}
+
+		COMPILE::JS
+		/**
+		 *  @flexjsignorecoercion flex.display.DisplayObject
+		 */
+		public function get root():DisplayObject
+		{
+			return topMostEventDispatcher as DisplayObject;
+		}
+		
+		COMPILE::JS
+		/**
+		 *  @flexjsignorecoercion flex.display.DisplayObject
+		 */
+		public function contains(child:DisplayObject):Boolean
+		{
+			while (child)
+			{
+				if (child.parent == this)
+					return true;
+				child = child.parent as DisplayObject;
+			}
+			return topMostEventDispatcher as DisplayObject;
+		}
+		
+		COMPILE::JS
+		private var _graphics:Graphics;
+		
+		COMPILE::JS
+		/**
+		 *  @flexjsignorecoercion flex.display.DisplayObject
+		 */
+		public function get graphics():Graphics
+		{
+			if (!_graphics)
+				_graphics = new Graphics(this);
+			return _graphics
+		}
+
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as b/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
index 459331e..94dbf47 100644
--- a/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
+++ b/frameworks/projects/MX/src/main/flex/flex/display/TopOfDisplayList.as
@@ -31,10 +31,24 @@ COMPILE::JS
 COMPILE::AS3
 public class TopOfDisplayList extends Stage
 {
-	public function TopOfDisplayList()
+	public function TopOfDisplayList(stage:Stage)
 	{
 		super();
+		_stage = stage;
+	}
+	
+	override public function get width():Number
+	{
+		return _stage.stageWidth;
+	}
+	
+	override public function get height():Number
+	{
+		return _stage.stageHeight;
 	}
+	
+	private var _stage:Stage;
+	
 }
 
 COMPILE::JS

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/events/Event.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/events/Event.as b/frameworks/projects/MX/src/main/flex/flex/events/Event.as
index 7260f83..db77ff6 100644
--- a/frameworks/projects/MX/src/main/flex/flex/events/Event.as
+++ b/frameworks/projects/MX/src/main/flex/flex/events/Event.as
@@ -18,5 +18,6 @@ package flex.events
 		public static const ENTER_FRAME:String = "enterFrame";
 		public static const REMOVED:String = "removed";
 		public static const REMOVED_FROM_STAGE:String = "removedFromStage";
+		public static const RESIZE:String = "resize";
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/events/ProgressEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/events/ProgressEvent.as b/frameworks/projects/MX/src/main/flex/flex/events/ProgressEvent.as
index 30e2289..8a4c804 100644
--- a/frameworks/projects/MX/src/main/flex/flex/events/ProgressEvent.as
+++ b/frameworks/projects/MX/src/main/flex/flex/events/ProgressEvent.as
@@ -2,11 +2,16 @@ package flex.events
 {	
 	public class ProgressEvent extends Event
 	{
-		public function ProgressEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
+		public function ProgressEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false,
+									bytesLoaded:int = 0, bytesTotal:int = 0)
 		{
 			super(type, bubbles, cancelable);
+			this.bytesLoaded = bytesLoaded;
+			this.bytesTotal = bytesTotal;
 		}
 		
+		public var bytesLoaded;
+		public var bytesTotal;
 		public static const PROGRESS:String = "progress";
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/system/DefinitionManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/system/DefinitionManager.as b/frameworks/projects/MX/src/main/flex/flex/system/DefinitionManager.as
index c130488..1730181 100644
--- a/frameworks/projects/MX/src/main/flex/flex/system/DefinitionManager.as
+++ b/frameworks/projects/MX/src/main/flex/flex/system/DefinitionManager.as
@@ -19,7 +19,10 @@
 
 package flex.system
 {
-	import flash.system.ApplicationDomain;
+COMPILE::AS3
+{
+	import flash.system.ApplicationDomain;		
+}
 
 	public class DefinitionManager
 	{
@@ -41,13 +44,37 @@ package flex.system
 			{
 				return appdom.hasDefinition(name);
 			}
+			COMPILE::JS
+			{
+				var parts:Array = name.split(".");
+				var obj:* = window;
+				for each (var part:String in parts)
+				{
+					obj = obj[part];
+					if (obj === undefined)
+						return false;
+				}
+				return true;
+			}
 		}
 		
 		public function getDefinition(name:String):Object
 		{
 			COMPILE::AS3
 			{
-				return appdom.hasDefinition(name);
+				return appdom.getDefinition(name);
+			}
+			COMPILE::JS
+			{
+				var parts:Array = name.split(".");
+				var obj:* = window;
+				for each (var part:String in parts)
+				{
+					obj = obj[part];
+					if (obj === undefined)
+						throw new Error("definition not found");
+				}
+				return obj;				
 			}
 		}
 	}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/flex/ui/Keyboard.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/ui/Keyboard.as b/frameworks/projects/MX/src/main/flex/flex/ui/Keyboard.as
index f301fc3..8909af4 100644
--- a/frameworks/projects/MX/src/main/flex/flex/ui/Keyboard.as
+++ b/frameworks/projects/MX/src/main/flex/flex/ui/Keyboard.as
@@ -29,6 +29,11 @@ package flex.ui
 		public static const UP = 0x26;
 		public static const RIGHT = 0x27;
 		public static const DOWN = 0x28;
+		public static const PAGE_UP = 0x21;
+		public static const PAGE_DOWN = 0x22;
+		public static const HOME = 0x24;
+		public static const END = 0x23;
+		public static const ENTER = 0x0D;
 		
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/collections/IList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/collections/IList.as b/frameworks/projects/MX/src/main/flex/mx/collections/IList.as
index 4c40ad4..366990d 100644
--- a/frameworks/projects/MX/src/main/flex/mx/collections/IList.as
+++ b/frameworks/projects/MX/src/main/flex/mx/collections/IList.as
@@ -20,7 +20,7 @@
 package mx.collections 
 {
     
-import flash.events.IEventDispatcher;
+import org.apache.flex.events.IEventDispatcher;
 import mx.events.CollectionEvent;
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/core/IAssetLayoutFeatures.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IAssetLayoutFeatures.as b/frameworks/projects/MX/src/main/flex/mx/core/IAssetLayoutFeatures.as
index 9b59813..2da68fb 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IAssetLayoutFeatures.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IAssetLayoutFeatures.as
@@ -18,8 +18,11 @@
 ////////////////////////////////////////////////////////////////////////////////
 package mx.core
 {
-import flash.geom.Matrix;
-import flash.geom.Matrix3D;
+COMPILE::LATER
+{
+	import flash.geom.Matrix;
+	import flash.geom.Matrix3D;		
+}
 
 /**
  *  The IAssetLayoutFeatures interface defines the minimum properties and methods 
@@ -252,11 +255,13 @@ public interface IAssetLayoutFeatures
      *  @playerversion AIR 1.5
      *  @productversion Flex 4.1
      */
+	COMPILE::LATER
     function set layoutMatrix(value:Matrix):void;
     
     /**
      * @private
      */
+	COMPILE::LATER
     function get layoutMatrix():Matrix;
     
     /**
@@ -267,11 +272,13 @@ public interface IAssetLayoutFeatures
      *  @playerversion AIR 1.5
      *  @productversion Flex 4.1
      */
+	COMPILE::LATER
     function set layoutMatrix3D(value:Matrix3D):void;
     
     /**
      * @private
      */
+	COMPILE::LATER
     function get layoutMatrix3D():Matrix3D;
     
     /**
@@ -359,6 +366,7 @@ public interface IAssetLayoutFeatures
      *  @playerversion AIR 1.5
      *  @productversion Flex 4.1
      */
+	COMPILE::LATER
     function get computedMatrix():Matrix;
     
     /**
@@ -369,6 +377,7 @@ public interface IAssetLayoutFeatures
      *  @playerversion AIR 1.5
      *  @productversion Flex 4.1
      */
+	COMPILE::LATER
     function get computedMatrix3D():Matrix3D;
 }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/core/IChildList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IChildList.as b/frameworks/projects/MX/src/main/flex/mx/core/IChildList.as
index feb5112..680fb31 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IChildList.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IChildList.as
@@ -290,6 +290,7 @@ public interface IChildList
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
 	function getObjectsUnderPoint(point:Point):Array;
 
 	/**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/core/IContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IContainer.as b/frameworks/projects/MX/src/main/flex/mx/core/IContainer.as
index 7dfa535..604b826 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IContainer.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IContainer.as
@@ -39,14 +39,18 @@ public interface IContainer extends IUIComponent
 COMPILE::AS3
 {
 	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;
 	import flash.display.Sprite;		
+	import flash.geom.Point;
 	import flash.geom.Rectangle;
 	import flash.display.Graphics;
 }
 COMPILE::JS
 {
 	import flex.display.DisplayObject;
+	import flex.display.DisplayObjectContainer;
 	import flex.display.Sprite;		
+	import org.apache.flex.geom.Point;
 	import org.apache.flex.geom.Rectangle;
 	import flex.display.Graphics;
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
index 5fb6229..e9d9652 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectContainerInterface.as
@@ -123,6 +123,7 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get textSnapshot():TextSnapshot;
     
     /**
@@ -133,6 +134,7 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function getObjectsUnderPoint(point:Point):Array;
 
     /**
@@ -143,6 +145,7 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function areInaccessibleObjectsUnderPoint(point:Point):Boolean;
 
     /**
@@ -158,7 +161,9 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get tabChildren():Boolean;
+	COMPILE::LATER
     function set tabChildren(enable:Boolean):void;
     
     /**
@@ -169,7 +174,9 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get mouseChildren():Boolean;
+	COMPILE::LATER
     function set mouseChildren(enable:Boolean):void;
 
     /**
@@ -190,6 +197,7 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function swapChildrenAt(index1:int, index2:int):void;
 
     /**
@@ -200,4 +208,5 @@ import flash.geom.Point;
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function swapChildren(child1:DisplayObject, child2:DisplayObject):void;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
index e0739e6..3d0dbc2 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IDisplayObjectInterface.as
@@ -78,7 +78,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get mask():DisplayObject;
+	COMPILE::LATER
     function set mask(value:DisplayObject):void;
 
 
@@ -126,7 +128,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get scaleX():Number;
+	COMPILE::LATER
     function set scaleX(value:Number):void;
 
 
@@ -138,7 +142,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get scaleY():Number;
+	COMPILE::LATER
     function set scaleY(value:Number):void;
 
 
@@ -150,6 +156,7 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get mouseX():Number; // note: no setter
 
 
@@ -161,6 +168,7 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get mouseY():Number; // note: no setter
 
 
@@ -172,7 +180,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get rotation():Number;
+	COMPILE::LATER
     function set rotation(value:Number):void;
 
 
@@ -219,7 +229,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get cacheAsBitmap():Boolean;
+	COMPILE::LATER
     function set cacheAsBitmap(value:Boolean):void;
 
     /**
@@ -230,7 +242,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get opaqueBackground():Object;
+	COMPILE::LATER
     function set opaqueBackground(value:Object):void;
 
 
@@ -242,7 +256,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get scrollRect():Rectangle;
+	COMPILE::LATER
     function set scrollRect(value:Rectangle):void;
 
 
@@ -254,7 +270,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get filters():Array;
+	COMPILE::LATER
     function set filters(value:Array):void;
 
     /**
@@ -265,7 +283,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get blendMode():String;
+	COMPILE::LATER
     function set blendMode(value:String):void;
 
     /**
@@ -289,7 +309,9 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function get scale9Grid():Rectangle;
+	COMPILE::LATER
     function set scale9Grid(innerRectangle:Rectangle):void;
 
     /**
@@ -322,6 +344,7 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function getBounds(targetCoordinateSpace:DisplayObject):Rectangle;
 
     /**
@@ -332,6 +355,7 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function getRect(targetCoordinateSpace:DisplayObject):Rectangle;
 
     /**
@@ -353,6 +377,7 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function hitTestObject(obj:DisplayObject):Boolean;
 
     /**
@@ -363,6 +388,7 @@
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean=false):Boolean;
 
     /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as b/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
index c09b9ef..f622766 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IFlexDisplayObject.as
@@ -24,7 +24,7 @@ package mx.core
 
 COMPILE::AS3
 {
-	import flash.display.DisplayObject;		
+	import flash.display.DisplayObject;
 	import flash.display.DisplayObjectContainer;
 	import flash.geom.Rectangle;
 }
@@ -34,6 +34,8 @@ COMPILE::JS
 	import org.apache.flex.geom.Rectangle;
 }
 import org.apache.flex.events.IEventDispatcher;
+import flex.display.TopOfDisplayList;
+import flex.display.DisplayObject;
 
 /**
  *  The IFlexDisplayObject interface defines the interface for skin elements.
@@ -44,10 +46,9 @@ import org.apache.flex.events.IEventDispatcher;
  *  @playerversion AIR 1.1
  *  @productversion Flex 3
  */
-public interface IFlexDisplayObject extends /*IBitmapDrawable, */IEventDispatcher
+public interface IFlexDisplayObject extends /*IBitmapDrawable, */IEventDispatcher, flex.display.DisplayObject
 {
-	include "IDisplayObjectInterface.as"	
-
+	
 	//--------------------------------------------------------------------------
 	//
 	//  Properties

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/core/ILayoutElement.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/ILayoutElement.as b/frameworks/projects/MX/src/main/flex/mx/core/ILayoutElement.as
index 04056bf..005849f 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/ILayoutElement.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/ILayoutElement.as
@@ -20,10 +20,13 @@
 package mx.core
 {
 
-import flash.events.IEventDispatcher;
-import flash.geom.Matrix;
-import flash.geom.Matrix3D;
-import flash.geom.Vector3D;
+import org.apache.flex.events.IEventDispatcher;
+COMPILE::LATER
+{
+	import flash.geom.Matrix;
+	import flash.geom.Matrix3D;
+	import flash.geom.Vector3D;		
+}
 
 /**
  *  The ILayoutElement interface is used primarily by the layout classes to query,

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/core/ITextFieldFactory.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/ITextFieldFactory.as b/frameworks/projects/MX/src/main/flex/mx/core/ITextFieldFactory.as
index 95c52eb..c14101b 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/ITextFieldFactory.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/ITextFieldFactory.as
@@ -26,7 +26,7 @@ COMPILE::AS3
 }
 COMPILE::JS
 {
-	import flash.text.TextField;	
+	import flex.text.TextField;	
 }
 
 [ExcludeClass]

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/core/IUITextField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IUITextField.as b/frameworks/projects/MX/src/main/flex/mx/core/IUITextField.as
index 4c9c1db..a009f81 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IUITextField.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IUITextField.as
@@ -20,11 +20,22 @@
 package mx.core
 {
 
-import flash.display.DisplayObject;
-import flash.geom.Rectangle;
-import flash.text.StyleSheet;
-import flash.text.TextFormat;
-import flash.text.TextLineMetrics;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;
+	import flash.geom.Rectangle;
+	import flash.text.StyleSheet;
+	import flash.text.TextFormat;
+	import flash.text.TextLineMetrics;		
+}
+COMPILE::JS
+{
+	import flex.display.DisplayObject;
+	import flex.geom.Rectangle;
+	import flex.text.StyleSheet;
+	import flex.text.TextFormat;
+	import flex.text.TextLineMetrics;		
+}
 import mx.managers.IToolTipManagerClient;
 import mx.styles.ISimpleStyleClient;
 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/core/LayoutElementUIComponentUtils.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/LayoutElementUIComponentUtils.as b/frameworks/projects/MX/src/main/flex/mx/core/LayoutElementUIComponentUtils.as
index bf97a0d..277332b 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/LayoutElementUIComponentUtils.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/LayoutElementUIComponentUtils.as
@@ -69,12 +69,15 @@ public class LayoutElementUIComponentUtils
         // explicit trumps measured. measuredWidth should already be
         // constraint between min & max during measure phase.
         var result:Number = obj.getExplicitOrMeasuredWidth();
+		COMPILE::LATER
+		{
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
             // We are already taking scale into account from the transform,
             // so adjust here since IUIComponent mixes it with width/height
             result = (obj.scaleX == 0) ? 0 : result / obj.scaleX;
         }
+		}
         return result;
     }
 
@@ -93,12 +96,15 @@ public class LayoutElementUIComponentUtils
         // explicit trumps measured. measuredWidth should already be
         // constraint between min & max during measure phase. 
         var result:Number = obj.getExplicitOrMeasuredHeight();
+		COMPILE::LATER
+		{
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
             // We are already taking scale into account from the transform,
             // so adjust here since IUIComponent mixes it with width/height
             result = (obj.scaleY == 0) ? 0 : result / obj.scaleY;
         }
+		}
         return result;
     }
     
@@ -118,12 +124,15 @@ public class LayoutElementUIComponentUtils
                 minWidth = Math.min(minWidth, obj.explicitMaxWidth);
         }
 
+		COMPILE::LATER
+		{
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
             // We are already taking scale into account from the transform,
             // so adjust here since IUIComponent mixes it with width/height
             minWidth = (obj.scaleX == 0) ? 0 : minWidth / obj.scaleX;
         }
+		}
         return minWidth;
     }
     
@@ -143,12 +152,15 @@ public class LayoutElementUIComponentUtils
                 minHeight = Math.min(minHeight, obj.explicitMaxHeight);
         }
 
+		COMPILE::LATER
+		{
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
             // We are already taking scale into account from the transform,
             // so adjust here since IUIComponent mixes it with width/height
             minHeight = (obj.scaleY == 0) ? 0 : minHeight / obj.scaleY;
         }
+		}
         return minHeight;
     }
     
@@ -161,12 +173,15 @@ public class LayoutElementUIComponentUtils
         else
             maxWidth = DEFAULT_MAX_WIDTH;
 
+		COMPILE::LATER
+		{
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
             // We are already taking scale into account from the transform,
             // so adjust here since IUIComponent mixes it with width/height
             maxWidth = (obj.scaleX == 0) ? 0 : maxWidth / obj.scaleX;
         }
+		}
         return maxWidth;
     }
     
@@ -179,12 +194,15 @@ public class LayoutElementUIComponentUtils
         else
             maxHeight = DEFAULT_MAX_HEIGHT;
 
+		COMPILE::LATER
+		{
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
             // We are already taking scale into account from the transform,
             // so adjust here since IUIComponent mixes it with width/height
             maxHeight = (obj.scaleY == 0) ? 0 : maxHeight / obj.scaleY;
         }
+		}
         return maxHeight;
     }
     
@@ -377,13 +395,15 @@ public class LayoutElementUIComponentUtils
     public static function getLayoutBoundsWidth(obj:IUIComponent/*,transformMatrix:Matrix*/):Number
     {
         var width:Number = obj.width;
+		COMPILE::LATER
+		{
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
             // We are already taking scale into account from the transform,
             // so adjust here since IUIComponent mixes it with width/height
             width = (obj.scaleX == 0) ? 0 : width / obj.scaleX;
         }
-
+		}
 		/*
         if (transformMatrix)
         {
@@ -408,13 +428,15 @@ public class LayoutElementUIComponentUtils
     public static function getLayoutBoundsHeight(obj:IUIComponent/*,transformMatrix:Matrix*/):Number
     {
         var height:Number = obj.height;
+		COMPILE::LATER
+		{
         if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
         {
             // We are already taking scale into account from the transform,
             // so adjust here since IUIComponent mixes it with width/height
             height = (obj.scaleY == 0) ? 0 : height / obj.scaleY;
         }
-
+		}
 		/*
         if (transformMatrix)
         {
@@ -536,6 +558,8 @@ public class LayoutElementUIComponentUtils
             if (isNaN(height))
                 height = getPreferredUBoundsHeight(obj);
     
+			COMPILE::LATER
+			{
             if (FlexVersion.compatibilityVersion < FlexVersion.VERSION_4_0)
             {
                 // We are already taking scale into account from the transform,
@@ -543,6 +567,7 @@ public class LayoutElementUIComponentUtils
                 width *= obj.scaleX;
                 height *= obj.scaleY;
             }
+			}
             obj.setActualSize(width, height);
             return;
         //}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as b/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
index 519532c..e675265 100644
--- a/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/effects/EffectManager.as
@@ -25,6 +25,11 @@ COMPILE::AS3
 	import flash.display.DisplayObject;
 	import flash.display.DisplayObjectContainer;		
 }
+COMPILE::JS
+{
+	import flex.display.DisplayObject;
+	import flex.display.DisplayObjectContainer;		
+}
 import org.apache.flex.core.UIBase;
 import org.apache.flex.events.Event;
 import org.apache.flex.events.EventDispatcher;
@@ -311,11 +316,14 @@ public class EffectManager extends EventDispatcher
         var effectClass:Class;      
         if (target is UIComponent && target.moduleFactory)
         {
-            // only UIComponents have moduleFactories
-            var appDomain:DefinitionManager = new DefinitionManager(
-                target.moduleFactory.info()["currentDomain"]);
-            if (appDomain.hasDefinition("mx.effects." + value))
-                effectClass = Class(appDomain.getDefinition("mx.effects." + value));
+			COMPILE::LATER
+			{
+				// only UIComponents have moduleFactories
+				var appDomain:DefinitionManager = new DefinitionManager(
+					target.moduleFactory.info()["currentDomain"]);
+				if (appDomain.hasDefinition("mx.effects." + value))
+					effectClass = Class(appDomain.getDefinition("mx.effects." + value));					
+			}
         }
         if (!effectClass)
             effectClass = Class(target.systemManager.getDefinitionByName(

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/effects/IAbstractEffect.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/effects/IAbstractEffect.as b/frameworks/projects/MX/src/main/flex/mx/effects/IAbstractEffect.as
index b3cd714..4bae636 100644
--- a/frameworks/projects/MX/src/main/flex/mx/effects/IAbstractEffect.as
+++ b/frameworks/projects/MX/src/main/flex/mx/effects/IAbstractEffect.as
@@ -20,8 +20,14 @@
 package mx.effects
 {
 
-import flash.events.Event;
-import flash.events.IEventDispatcher;
+COMPILE::AS3
+{
+	import flash.events.IEventDispatcher;		
+}
+COMPILE::JS
+{
+	import org.apache.flex.events.IEventDispatcher;		
+}
 
 /**
  *  The IAbstractEffect interface is used to denote

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/events/ChildExistenceChangedEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/events/ChildExistenceChangedEvent.as b/frameworks/projects/MX/src/main/flex/mx/events/ChildExistenceChangedEvent.as
index 27f7ab3..488cab4 100644
--- a/frameworks/projects/MX/src/main/flex/mx/events/ChildExistenceChangedEvent.as
+++ b/frameworks/projects/MX/src/main/flex/mx/events/ChildExistenceChangedEvent.as
@@ -28,7 +28,7 @@ COMPILE::JS
 {
 	import flex.display.DisplayObject;		
 }
-import flex.events.Event;
+import org.apache.flex.events.Event;
 
 /**
  *  Represents events that are dispatched when a the child of a control

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManager.as
index 33dab83..a50a7b0 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManager.as
@@ -23,7 +23,14 @@ package mx.managers
 import org.apache.flex.core.IUIBase;
 import org.apache.flex.events.IEventDispatcher;
 //import flash.display.InteractiveObject;
-import flash.display.Sprite;
+COMPILE::AS3
+{
+	import flash.display.Sprite;		
+}
+COMPILE::JS
+{
+	import flex.display.Sprite;		
+}
 import mx.core.IButton;
 
 /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerContainer.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerContainer.as b/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerContainer.as
index 9d96121..8091645 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerContainer.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/IFocusManagerContainer.as
@@ -20,7 +20,14 @@
 package mx.managers
 {
 
-import flex.display.DisplayObject;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;		
+}
+COMPILE::JS
+{
+	import flex.display.DisplayObject;		
+}
 import org.apache.flex.events.IEventDispatcher;
 import mx.core.IFlexDisplayObject;
 import mx.managers.IFocusManager;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/managers/ILayoutManagerClient.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/ILayoutManagerClient.as b/frameworks/projects/MX/src/main/flex/mx/managers/ILayoutManagerClient.as
index bf291b5..1eb5d42 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/ILayoutManagerClient.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/ILayoutManagerClient.as
@@ -20,7 +20,7 @@
 package mx.managers
 {
 
-import flash.events.IEventDispatcher;
+import org.apache.flex.events.IEventDispatcher;
 import mx.core.mx_internal;
 
 use namespace mx_internal;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/managers/ISystemManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/ISystemManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/ISystemManager.as
index f2352e3..43b5322 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/ISystemManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/ISystemManager.as
@@ -450,6 +450,7 @@ public interface ISystemManager extends IEventDispatcher, IChildList, IFlexModul
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     function getSandboxRoot():DisplayObject;
 
     /**
@@ -469,6 +470,7 @@ public interface ISystemManager extends IEventDispatcher, IChildList, IFlexModul
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */  
+	COMPILE::LATER
 	function getVisibleApplicationRect(bounds:Rectangle = null, skipToSandboxRoot:Boolean = false):Rectangle;
     
     /**

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/managers/IToolTipManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/IToolTipManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/IToolTipManager.as
index ad810f7..8f433d4 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/IToolTipManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/IToolTipManager.as
@@ -20,7 +20,14 @@
 package mx.managers
 {
 
-import flash.display.DisplayObject;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;
+}
+COMPILE::JS
+{
+	import flex.display.DisplayObject;
+}
 
 import mx.core.IToolTip;
 import mx.core.IUIComponent;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
index 649a9b5..c8a250d 100644
--- a/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
+++ b/frameworks/projects/MX/src/main/flex/mx/managers/SystemManager.as
@@ -28,7 +28,23 @@ COMPILE::AS3
 	import flash.display.MovieClip;
 	import flash.display.Sprite;
 	import flash.display.LoaderInfo;
-		
+	import flash.display.Loader;
+	import flash.display.Stage;
+	import flash.display.StageAlign;
+	import flash.display.StageQuality;
+	import flash.display.StageScaleMode;
+	import flash.events.Event;
+	import flash.events.EventPhase;
+	import flash.events.FocusEvent;
+	import flash.events.KeyboardEvent;
+	import flash.events.MouseEvent;
+	import flash.events.TimerEvent;
+	import flash.ui.Keyboard;
+	import flash.geom.Point;
+	import flash.system.ApplicationDomain;
+	import flash.text.Font;
+	import flash.text.TextFormat;
+	import flash.utils.Dictionary;		
 }
 COMPILE::JS
 {
@@ -36,26 +52,15 @@ COMPILE::JS
 	import flex.display.DisplayObjectContainer;
 	import flex.display.Graphics;
 	import flex.display.MovieClip;
-	import flex.display.Sprite;	
+	import flex.display.Sprite;
+	import flex.events.Event;
+	import flex.events.EventPhase;
+	import flex.ui.Keyboard;
+	
+	import org.apache.flex.geom.Point;
 }
-import flash.display.Loader;
-import flash.display.Stage;
-import flash.display.StageAlign;
-import flash.display.StageQuality;
-import flash.display.StageScaleMode;
-import flash.events.Event;
-import flash.events.EventPhase;
-import flash.events.FocusEvent;
-import flash.events.KeyboardEvent;
-import flash.events.MouseEvent;
-import flash.events.TimerEvent;
-import flash.geom.Point;
-import flash.system.ApplicationDomain;
-import flash.text.Font;
-import flash.text.TextFormat;
-import flash.ui.Keyboard;
-import flash.utils.Dictionary;
 import org.apache.flex.utils.Timer;
+import flex.system.DefinitionManager;
 import org.apache.flex.reflection.getQualifiedClassName;
 
 import mx.core.IChildList;
@@ -264,6 +269,8 @@ public class SystemManager extends MovieClip
 			}				
 		}
 
+		COMPILE::AS3
+		{
         // If we don't have a stage then we are not top-level,
         // unless there are no other top-level managers, in which
         // case we got loaded by a non-Flex shell or are sandboxed.
@@ -272,7 +279,8 @@ public class SystemManager extends MovieClip
 
         if (!stage)
             isStageRoot = false;
-
+		}
+		
         if (topLevel)
             SystemManagerGlobals.topLevelSystemManagers.push(this);
 
@@ -355,6 +363,7 @@ public class SystemManager extends MovieClip
     /**
      *  @private
      */
+	COMPILE::AS3
     private function deferredNextFrame():void
     {
         if (currentFrame + 1 > totalFrames)
@@ -445,6 +454,7 @@ public class SystemManager extends MovieClip
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     private var _stage:Stage;
     
     /**
@@ -593,6 +603,7 @@ public class SystemManager extends MovieClip
      *  @private
      *  get the main stage if we're loaded into another swf in the same sandbox
      */
+	COMPILE::AS3
     override public function get stage():Stage
     {
         if (_stage)
@@ -830,9 +841,18 @@ public class SystemManager extends MovieClip
 
         if (!_cursorChildren)
         {
+			COMPILE::AS3
+			{
             _cursorChildren = new SystemChildrenList(this,
                 new QName(mx_internal, "toolTipIndex"),
                 new QName(mx_internal, "cursorIndex"));
+			}
+			COMPILE::JS
+			{
+				_cursorChildren = new SystemChildrenList(this,
+					"toolTipIndex",
+					"cursorIndex");				
+			}
         }
 
         return _cursorChildren;
@@ -1004,6 +1024,7 @@ public class SystemManager extends MovieClip
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function get explicitHeight():Number
     {
         return _explicitHeight;
@@ -1012,6 +1033,7 @@ public class SystemManager extends MovieClip
     /**
      *  @private
      */
+	COMPILE::AS3
     public function set explicitHeight(value:Number):void
     {
         _explicitHeight = value;
@@ -1037,6 +1059,7 @@ public class SystemManager extends MovieClip
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     public function get explicitWidth():Number
     {
         return _explicitWidth;
@@ -1045,6 +1068,7 @@ public class SystemManager extends MovieClip
     /**
      *  @private
      */
+	COMPILE::AS3
     public function set explicitWidth(value:Number):void
     {
         _explicitWidth = value;
@@ -1083,7 +1107,10 @@ public class SystemManager extends MovieClip
 
             value.x = 0;
             value.y = 0;
+			COMPILE::AS3
+			{
             value.scrollRect = null;
+			}
 
             _focusPane = value;
         }
@@ -1124,9 +1151,18 @@ public class SystemManager extends MovieClip
      */
     public function get measuredHeight():Number
     {
+		COMPILE::AS3
+		{
         return topLevelWindow ?
                topLevelWindow.getExplicitOrMeasuredHeight() :
                loaderInfo.height;
+		}
+		COMPILE::JS
+		{
+			return topLevelWindow ?
+				topLevelWindow.getExplicitOrMeasuredHeight() :
+				height;
+		}
     }
 
     //----------------------------------
@@ -1146,9 +1182,18 @@ public class SystemManager extends MovieClip
      */
     public function get measuredWidth():Number
     {
-        return topLevelWindow ?
-               topLevelWindow.getExplicitOrMeasuredWidth() :
-               loaderInfo.width;
+		COMPILE::AS3
+		{
+			return topLevelWindow ?
+				topLevelWindow.getExplicitOrMeasuredWidth() :
+				loaderInfo.width;				
+		}
+		COMPILE::JS
+		{
+			return topLevelWindow ?
+				topLevelWindow.getExplicitOrMeasuredWidth() :
+				width;				
+		}
     }
 
     //----------------------------------
@@ -1364,9 +1409,18 @@ public class SystemManager extends MovieClip
 
         if (!_popUpChildren)
         {
+			COMPILE::AS3
+			{
             _popUpChildren = new SystemChildrenList(this,
                 new QName(mx_internal, "noTopMostIndex"),
                 new QName(mx_internal, "topMostIndex"));
+			}
+			COMPILE::JS
+			{
+				_popUpChildren = new SystemChildrenList(this,
+					"noTopMostIndex",
+					"topMostIndex");				
+			}
         }
 
         return _popUpChildren;
@@ -1421,6 +1475,8 @@ public class SystemManager extends MovieClip
      */
     public function get screen():Rectangle
     {
+		COMPILE::AS3
+		{
         if (!_screen)
             Stage_resizeHandler();
 
@@ -1428,6 +1484,7 @@ public class SystemManager extends MovieClip
         {
             Stage_resizeHandler();
         }
+		}
         return _screen;
     }
 
@@ -1456,9 +1513,18 @@ public class SystemManager extends MovieClip
 
         if (!_toolTipChildren)
         {
+			COMPILE::AS3
+			{
             _toolTipChildren = new SystemChildrenList(this,
                 new QName(mx_internal, "topMostIndex"),
                 new QName(mx_internal, "toolTipIndex"));
+			}
+			COMPILE::JS
+			{
+				_toolTipChildren = new SystemChildrenList(this,
+					"topMostIndex",
+					"toolTipIndex");
+			}
         }
 
         return _toolTipChildren;
@@ -1615,6 +1681,7 @@ public class SystemManager extends MovieClip
      * @private
      *  Only create idle events if someone is listening.
      */
+	COMPILE::AS3
     override public function addEventListener(type:String, listener:Function,
                                               useCapture:Boolean = false,
                                               priority:int = 0,
@@ -1701,6 +1768,8 @@ public class SystemManager extends MovieClip
             return;
         }
 
+		COMPILE::LATER
+		{
         // When the first listener registers for 'idle' events,
         // create a Timer that will fire every IDLE_INTERVAL.
         if (type == FlexEvent.IDLE && !idleTimer)
@@ -1715,6 +1784,8 @@ public class SystemManager extends MovieClip
             addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, true);
             addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler, true);
         }
+		}
+		
 
         super.addEventListener(type, listener, useCapture, priority, useWeakReference);
     }
@@ -1731,6 +1802,7 @@ public class SystemManager extends MovieClip
     /**
      *  @private
      */
+	COMPILE::AS3
     override public function removeEventListener(type:String, listener:Function,
                                                  useCapture:Boolean = false):void
     {
@@ -2090,6 +2162,8 @@ public class SystemManager extends MovieClip
         if (runtimeDPIProviderClass)
             Singleton.registerClass("mx.core::RuntimeDPIProvider", runtimeDPIProviderClass);
         
+		COMPILE::AS3
+		{
         if (isStageRoot)
         {
             // TODO: Finalize scaling behavior
@@ -2101,15 +2175,19 @@ public class SystemManager extends MovieClip
         {
             _width = loaderInfo.width;
             _height = loaderInfo.height;
-        }
+        }		
+		}
 
         // Create an instance of the preloader and add it to the stage
         preloader = new Preloader();
 
-        // Listen for preloader events
-        // preloader notifes when it is ok to go to frame2
-        preloader.addEventListener(FlexEvent.PRELOADER_DOC_FRAME_READY,
-                                   preloader_preloaderDocFrameReadyHandler);
+		COMPILE::AS3
+		{
+			// Listen for preloader events
+			// preloader notifes when it is ok to go to frame2
+			preloader.addEventListener(FlexEvent.PRELOADER_DOC_FRAME_READY,
+				preloader_preloaderDocFrameReadyHandler);				
+		}
         // wait for a complete event.  This gives the preloader
         // a chance to load resource modules before
         // everything really gets kicked off
@@ -2128,8 +2206,16 @@ public class SystemManager extends MovieClip
         // we redirect public API to parent systemmanager
         if (!_popUpChildren)
         {
-            _popUpChildren = new SystemChildrenList(
-                this, new QName(mx_internal, "noTopMostIndex"), new QName(mx_internal, "topMostIndex"));
+			COMPILE::AS3
+			{
+				_popUpChildren = new SystemChildrenList(
+					this, new QName(mx_internal, "noTopMostIndex"), new QName(mx_internal, "topMostIndex"));					
+			}
+			COMPILE::JS
+			{
+				_popUpChildren = new SystemChildrenList(
+					this, "noTopMostIndex", "topMostIndex");					
+			}
         }
         _popUpChildren.addChild(preloader);
 
@@ -2202,6 +2288,8 @@ public class SystemManager extends MovieClip
             Loader(parent).contentLoaderInfo.applicationDomain :
             info()["currentDomain"] as ApplicationDomain;
 		
+		COMPILE::AS3
+		{
         // Initialize the preloader.
         preloader.initialize(
             usePreloader,
@@ -2218,7 +2306,10 @@ public class SystemManager extends MovieClip
             resourceModuleURLs,
             domain);
 		}
+		}
 		
+		COMPILE::JS
+		{
 		// Initialize the preloader.
 		preloader.initialize(
 			usePreloader,
@@ -2227,10 +2318,11 @@ public class SystemManager extends MovieClip
 			preloaderBackgroundAlpha,
 			preloaderBackgroundImage,
 			preloaderBackgroundSize,
-			stage.stageWidth,
-			stage.stageHeight,
+			width,
+			height,
 			null,
 			null);
+		}
     }
 
     //--------------------------------------------------------------------------
@@ -2486,18 +2578,26 @@ public class SystemManager extends MovieClip
      */
     public function getDefinitionByName(name:String):Object
     {
+		COMPILE::AS3
+		{
         var domain:ApplicationDomain =
             !topLevel && parent is Loader ?
             Loader(parent).contentLoaderInfo.applicationDomain :
             info()["currentDomain"] as ApplicationDomain;
-
+		var dm:DefinitionManager = new DefinitionManager(domain);
+		}
+		COMPILE::JS
+		{
+			var dm:DefinitionManager = new DefinitionManager();			
+		}
+		
         //trace("SysMgr.getDefinitionByName domain",domain,"currentDomain",info()["currentDomain"]);    
             
         var definition:Object;
 
-        if (domain.hasDefinition(name))
+        if (dm.hasDefinition(name))
         {
-            definition = domain.getDefinition(name);
+            definition = dm.getDefinition(name);
             //trace("SysMgr.getDefinitionByName got definition",definition,"name",name);
         }
 
@@ -2656,8 +2756,13 @@ public class SystemManager extends MovieClip
             g.drawRect(0, 0, s.width, s.height);
             g.endFill();
             }
-            catch (e:SecurityError)
+            catch (e:Error)
             {
+				COMPILE::AS3
+				{
+					if (!(e is SecurityError))
+						throw e;
+				}
                 // trace("resizeMouseCatcher: ignoring security error " + e);
             }
         }
@@ -2684,36 +2789,41 @@ public class SystemManager extends MovieClip
         // parent and get a positive response to the query or
         // or there is not a listener for the new application event
         // that SWFLoader always adds. 
-        if (!isStageRoot)
-        {
-            if (root.loaderInfo.parentAllowsChild)
-            {
-                try
-                {
-                    if (!parent.dispatchEvent(new Event("mx.managers.SystemManager.isBootstrapRoot", false, true)) ||
-                        // use string literal to avoid link dependency on SWFBridgeEvent.BRIDGE_NEW_APPLICATION
-                        !root.loaderInfo.sharedEvents.hasEventListener("bridgeNewApplication"))
-                        isBootstrapRoot = true;
-                }
-                catch (e:Error)
-                {
-                }
-            }
-        }
-
 		COMPILE::LATER
 		{
+	        if (!isStageRoot)
+	        {
+	            if (root.loaderInfo.parentAllowsChild)
+	            {
+	                try
+	                {
+	                    if (!parent.dispatchEvent(new Event("mx.managers.SystemManager.isBootstrapRoot", false, true)) ||
+	                        // use string literal to avoid link dependency on SWFBridgeEvent.BRIDGE_NEW_APPLICATION
+	                        !root.loaderInfo.sharedEvents.hasEventListener("bridgeNewApplication"))
+	                        isBootstrapRoot = true;
+	                }
+	                catch (e:Error)
+	                {
+	                }
+	            }
+	        }
+
 			allSystemManagers[this] = this.loaderInfo.url;
 		}
+		COMPILE::AS3
+		{
         root.loaderInfo.removeEventListener(Event.INIT, initHandler);
+		}
 
         if (!SystemManagerGlobals.info)
             SystemManagerGlobals.info = info();
+		COMPILE::AS3
+		{
         if (!SystemManagerGlobals.parameters)
             SystemManagerGlobals.parameters = loaderInfo.parameters;
-
         var docFrame:int = (totalFrames == 1)? 0 : 1;
         addEventListener(Event.ENTER_FRAME, docFrameListener);
+		}
 
         /*
         addFrameScript(docFrame, docFrameHandler);
@@ -2731,6 +2841,7 @@ public class SystemManager extends MovieClip
         }
     }
 
+	COMPILE::AS3
     private function docFrameListener(event:Event):void
     {
         if (currentFrame == 2)
@@ -2743,6 +2854,7 @@ public class SystemManager extends MovieClip
         }
     }
 
+	COMPILE::AS3
     private function extraFrameListener(event:Event):void
     {
         if (lastFrame == currentFrame)
@@ -2762,6 +2874,7 @@ public class SystemManager extends MovieClip
      *  advance the playhead to the next frame.
      *  This will cause the framescript to run, which runs frameEndHandler().
      */
+	COMPILE::AS3
     private function preloader_preloaderDocFrameReadyHandler(event:Event):void
     {
         // Advance the next frame
@@ -2793,19 +2906,21 @@ public class SystemManager extends MovieClip
         preloader = null;
 
         // Add the mouseCatcher as child 0.
-        mouseCatcher = new UIBase();
+        mouseCatcher = new Sprite();
         mouseCatcher.name = "mouseCatcher";
         // Must use addChildAt because a creationComplete handler can create a
         // dialog and insert it at 0.
         noTopMostIndex = noTopMostIndex + 1;
         super.addChildAt(mouseCatcher, 0);  
         resizeMouseCatcher();
+		COMPILE::LATER
+		{
         if (!topLevel)
         {
             mouseCatcher.visible = false;
             mask = mouseCatcher;
         }
-
+		}
         // Add the application as child 1.
         noTopMostIndex = noTopMostIndex + 1;
         super.addChildAt(DisplayObject(app), 1);
@@ -2851,12 +2966,13 @@ public class SystemManager extends MovieClip
      *  When this function is called, we know that the application
      *  class has been defined and read in by the Player.
      */
-    mx_internal function docFrameHandler(event:Event = null):void
-    {
-        
-        if (readyForKickOff)
-            kickOff();
-    }
+	COMPILE::AS3
+	mx_internal function docFrameHandler(event:Event = null):void
+	{
+		
+		if (readyForKickOff)
+			kickOff();
+	}			
 
     /**
      *  @private
@@ -2867,8 +2983,11 @@ public class SystemManager extends MovieClip
         preloader.removeEventListener(Event.COMPLETE,
                                    preloader_completeHandler);
         readyForKickOff = true;
+		COMPILE::AS3
+		{
         if (currentFrame >= 2)
             kickOff();
+		}
     }   
 
     /**
@@ -2887,11 +3006,14 @@ public class SystemManager extends MovieClip
             perfUtil.markTime("SystemManager.kickOff().start");
         }
         
+		COMPILE::LATER
+		{
         if (!isTopLevel())
             SystemManagerGlobals.topLevelSystemManagers[0].
                 // dispatch a FocusEvent so we can pass ourselves along
                 dispatchEvent(new FocusEvent(FlexEvent.NEW_CHILD_APPLICATION, false, false, this));
-
+		}
+		
         // Generated code will bring in EmbeddedFontRegistry
         Singleton.registerClass("mx.core::IEmbeddedFontRegistry",
                 Class(getDefinitionByName("mx.core::EmbeddedFontRegistry")));
@@ -2990,7 +3112,10 @@ public class SystemManager extends MovieClip
 
         initializeTopLevelWindow(null);
 
-        deferredNextFrame();
+		COMPILE::AS3
+		{
+			deferredNextFrame();				
+		}
     }
 
     /**
@@ -3006,6 +3131,7 @@ public class SystemManager extends MovieClip
      *  handled by both Scroller and by Spark classes like TextArea or
      *  or List that include a Scroller in their skin. 
      */
+	COMPILE::AS3
     private function keyDownHandler(e:KeyboardEvent):void
     {
         if (!e.cancelable)
@@ -3039,6 +3165,7 @@ public class SystemManager extends MovieClip
      *  this for a few mouse events and not all of them (MOUSE_WHEEL and 
      *  MOUSE_DOWN).
      */
+	COMPILE::AS3
     private function mouseEventHandler(e:MouseEvent):void
     {
         if (!e.cancelable && e.eventPhase != EventPhase.BUBBLING_PHASE)
@@ -3067,6 +3194,7 @@ public class SystemManager extends MovieClip
         }
     }
 
+	COMPILE::AS3
     private function extraFrameHandler(event:Event = null):void
     {
         var frameList:Object = info()["frames"];
@@ -3088,6 +3216,7 @@ public class SystemManager extends MovieClip
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::AS3
     private function nextFrameTimerHandler(event:TimerEvent):void
     {
         if (currentFrame + 1 <= framesLoaded)
@@ -3107,6 +3236,8 @@ public class SystemManager extends MovieClip
      */
     private function initializeTopLevelWindow(event:Event):void
     {
+		COMPILE::LATER
+		{
         // This listener is intended to run before any other KeyboardEvent listeners
         // so that it can redispatch a cancelable=true copy of the event. 
         if (getSandboxRoot() == this)
@@ -3115,12 +3246,16 @@ public class SystemManager extends MovieClip
             addEventListener(MouseEvent.MOUSE_WHEEL, mouseEventHandler, true, 1000);
             addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, true, 1000);
         }
+		}
+		COMPILE::AS3
+		{
         if (isTopLevelRoot() && stage)
         {
             stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler, false, 1000);
             stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseEventHandler, false, 1000);
             stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseEventHandler, false, 1000);
         }
+		}
         
 		COMPILE::LATER
 		{
@@ -3163,16 +3298,21 @@ public class SystemManager extends MovieClip
             }
         }
 
+		COMPILE::AS3
+		{
         if (isTopLevelRoot() && stage)
             stage.addEventListener(Event.RESIZE, Stage_resizeHandler, false, 0, true);
         else if (topLevel && stage)
         {
+			COMPILE::LATER
+			{
             // listen to resizes on the sandbox root
             var sandboxRoot:DisplayObject = getSandboxRoot();
             if (sandboxRoot != this)
                 sandboxRoot.addEventListener(Event.RESIZE, Stage_resizeHandler, false, 0, true);
+			}
         }
-
+		
         var w:Number;
         var h:Number;
 
@@ -3204,7 +3344,12 @@ public class SystemManager extends MovieClip
             w = loaderInfo.width;
             h = loaderInfo.height;
         }
-
+		}
+		COMPILE::JS
+		{
+			var w:Number = this.width;
+			var h:Number = this.height;
+		}
         childManager.initializeTopLevelWindow(w, h);
     }
     
@@ -3257,6 +3402,7 @@ public class SystemManager extends MovieClip
      *  @private
      *  Keep track of the size and position of the stage.
      */
+	COMPILE::AS3
     private function Stage_resizeHandler(event:Event = null):void
     {   
         if (isDispatchingResizeEvent)
@@ -3394,8 +3540,13 @@ public class SystemManager extends MovieClip
         {
             index = childList.getChildIndex(DisplayObject(f)); 
         }
-        catch (e:ArgumentError)
+        catch (e:Error)
         {
+			COMPILE::AS3
+			{
+				if (!(e is ArgumentError))
+					throw e;
+			}
             // index has been preset to -1 so just continue.    
         }
         
@@ -3429,6 +3580,7 @@ public class SystemManager extends MovieClip
      *  After IDLE_THRESHOLD goes by without any user activity,
      *  we dispatch an 'idle' event.
      */
+	COMPILE::LATER
     private function idleTimer_timerHandler(event:TimerEvent):void
     {
         idleCounter++;
@@ -3447,6 +3599,7 @@ public class SystemManager extends MovieClip
     /**
      *  @private
      */
+	COMPILE::AS3
     override public function get mouseX():Number
     {
         if (_mouseX === undefined)
@@ -3457,6 +3610,7 @@ public class SystemManager extends MovieClip
     /**
      *  @private
      */
+	COMPILE::AS3
     override public function get mouseY():Number
     {
         if (_mouseY === undefined)
@@ -3473,8 +3627,11 @@ public class SystemManager extends MovieClip
         // If the parent isn't rooted yet,
         // Or the root is the stage (which is the case in a second AIR window)
         // use the global system manager instance.
-        if ((!localRoot || localRoot is Stage) && parent is IUIComponent)
-            localRoot = DisplayObjectContainer(IUIComponent(parent).systemManager);
+		COMPILE::AS3
+		{
+			if ((!localRoot || localRoot is Stage) && parent is IUIComponent)
+				localRoot = DisplayObjectContainer(IUIComponent(parent).systemManager);				
+		}
         if (localRoot is ISystemManager)
         {
             sm = ISystemManager(localRoot);
@@ -3502,8 +3659,13 @@ public class SystemManager extends MovieClip
         {
             return super.parent;
         }   
-        catch (e:SecurityError) 
+        catch (e:Error) 
         {
+			COMPILE::AS3
+			{
+				if (!(e is SecurityError))
+					throw e;
+			}
             // trace("parent: ignoring security error");
         }
         
@@ -3523,30 +3685,38 @@ public class SystemManager extends MovieClip
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
+	 * 
+	 *  @flexjsignorecoercion flex.display.DisplayObject
      */
     public function getTopLevelRoot():DisplayObject
     {
-        // work our say up the parent chain to the root. This way we
-        // don't have to rely on this object being added to the stage.
-        try
-        {
-            var sm:ISystemManager = this;
-            if (sm.topLevelSystemManager)
-                sm = sm.topLevelSystemManager;
-            var parent:DisplayObject = DisplayObject(sm).parent;
-            var lastParent:DisplayObject = DisplayObject(sm);
-            while (parent)
-            {
-                if (parent is Stage)
-                    return lastParent;
-                lastParent = parent; 
-                parent = parent.parent;             
-            }
-        }
-        catch (error:SecurityError)
-        {
-        }       
-        
+		COMPILE::AS3
+		{
+			// work our say up the parent chain to the root. This way we
+			// don't have to rely on this object being added to the stage.
+			try
+			{
+				var sm:ISystemManager = this;
+				if (sm.topLevelSystemManager)
+					sm = sm.topLevelSystemManager;
+				var parent:DisplayObject = DisplayObject(sm).parent;
+				var lastParent:DisplayObject = DisplayObject(sm);
+				while (parent)
+				{
+					if (parent is Stage)
+						return lastParent;
+					lastParent = parent; 
+					parent = parent.parent;             
+				}
+			}
+			catch (error:SecurityError)
+			{
+			}       				
+		}
+        COMPILE::JS
+		{
+			return topOfDisplayList as DisplayObject;
+		}
         return null;
     }
 
@@ -3561,6 +3731,7 @@ public class SystemManager extends MovieClip
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     public function getSandboxRoot():DisplayObject
     {
         // work our say up the parent chain to the root. This way we
@@ -3665,6 +3836,7 @@ public class SystemManager extends MovieClip
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
+	COMPILE::LATER
     public function getVisibleApplicationRect(bounds:Rectangle = null, skipToSandboxRoot:Boolean = false):Rectangle
     {
         if (hasEventListener("getVisibleApplicationRect"))
@@ -3740,6 +3912,7 @@ public class SystemManager extends MovieClip
      *  @private
      *  dispatch certain stage events from sandbox root
      */
+	COMPILE::AS3
     private function stageEventHandler(event:Event):void
     {
         if (event.target is Stage && mouseCatcher)
@@ -3774,13 +3947,31 @@ public class SystemManager extends MovieClip
 
 	public function get moduleInfo():ModuleInfo
 	{
-		return new ModuleInfo(loaderInfo);
+		COMPILE::AS3
+		{
+			return new ModuleInfo(loaderInfo);				
+		}
+		COMPILE::JS
+		{
+			return new ModuleInfo();				
+		}
 	}
 	
+	COMPILE::AS3
+	private var _topOfDisplayList:TopOfDisplayList;
+	
+	/**
+	 *  @flexjsignorecoercion flex.display.TopOfDisplayList
+	 */
+	COMPILE::AS3
 	public function get topOfDisplayList():TopOfDisplayList
 	{
-		return new TopOfDisplayList();
+		if (!_topOfDisplayList)
+			_topOfDisplayList = new TopOfDisplayList(stage);
+		return _topOfDisplayList;
 	}
+	
+
 }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/preloaders/IPreloaderDisplay.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/preloaders/IPreloaderDisplay.as b/frameworks/projects/MX/src/main/flex/mx/preloaders/IPreloaderDisplay.as
index 5b57ce4..d1a1edd 100644
--- a/frameworks/projects/MX/src/main/flex/mx/preloaders/IPreloaderDisplay.as
+++ b/frameworks/projects/MX/src/main/flex/mx/preloaders/IPreloaderDisplay.as
@@ -20,8 +20,15 @@
 package mx.preloaders
 {
 
-import flash.display.Sprite;
-import flash.events.IEventDispatcher;
+COMPILE::AS3
+{
+	import flash.display.Sprite;		
+}
+COMPILE::JS
+{
+	import flex.display.Sprite;		
+}
+import org.apache.flex.events.IEventDispatcher;
 
 /**
  *  Defines the interface that 

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/preloaders/Preloader.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/preloaders/Preloader.as b/frameworks/projects/MX/src/main/flex/mx/preloaders/Preloader.as
index 4ad40b8..45a2fe7 100644
--- a/frameworks/projects/MX/src/main/flex/mx/preloaders/Preloader.as
+++ b/frameworks/projects/MX/src/main/flex/mx/preloaders/Preloader.as
@@ -20,18 +20,35 @@
 package mx.preloaders
 {
 
-import flash.display.DisplayObject;
-import flash.display.LoaderInfo;
-import flash.display.MovieClip;
-import flash.display.Sprite;
-import flash.events.ErrorEvent;
-import flash.events.Event;
-import flash.events.IEventDispatcher;
-import flash.events.IOErrorEvent;
-import flash.events.ProgressEvent;
-import flash.events.TimerEvent;
-import flash.system.ApplicationDomain;
-import flash.utils.Timer;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;
+	import flash.display.LoaderInfo;
+	import flash.display.MovieClip;
+	import flash.display.Sprite;
+	import flash.events.ErrorEvent;
+	import flash.events.Event;
+	import flash.events.IEventDispatcher;
+	import flash.events.IOErrorEvent;
+	import flash.events.ProgressEvent;
+	import flash.events.TimerEvent;
+	import flash.utils.Timer;		
+}
+COMPILE::JS
+{
+	import flex.display.DisplayObject;
+	import flex.display.MovieClip;
+	import flex.display.Sprite;
+	import flex.events.Event;
+	import flex.events.IEventDispatcher;
+	import flex.events.IOErrorEvent;
+	import flex.events.ProgressEvent;
+	import flex.events.TimerEvent;
+	
+	import org.apache.flex.utils.Timer;		
+}
+
+import flex.system.DefinitionManager;
 
 import mx.core.RSLItem;
 import mx.core.RSLListLoader;
@@ -145,7 +162,7 @@ public class Preloader extends Sprite
     /**
      *  @private
      */
-    private var applicationDomain:ApplicationDomain = null;
+    private var applicationDomain:DefinitionManager = null;
     
     /**
      *  @private
@@ -171,7 +188,7 @@ public class Preloader extends Sprite
 							   sizes:Array = null,
 							   rslList:Array = null,
 							   resourceModuleURLs:Array = null,
-							   applicationDomain:ApplicationDomain = null):void
+							   applicationDomain:DefinitionManager = null):void
 	{
 		
 	}
@@ -238,7 +255,10 @@ public class Preloader extends Sprite
 
         this.applicationDomain = applicationDomain;
 
-        root.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
+		COMPILE::AS3
+		{
+			root.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);				
+		}
     
         var n:int;
         var i:int;
@@ -387,10 +407,17 @@ public class Preloader extends Sprite
      */
     private function getByteValues():Object
     {
-        var li:LoaderInfo = root.loaderInfo;
-        var loaded:int = li.bytesLoaded;
-        var total:int = li.bytesTotal;
-        
+		COMPILE::AS3
+		{
+			var li:LoaderInfo = root.loaderInfo;
+			var loaded:int = li.bytesLoaded;
+			var total:int = li.bytesTotal;				
+		}
+		COMPILE::JS
+		{
+			var loaded:int = 100;
+			var total:int = 100;				
+		}
 		COMPILE::LATER
 		{
         // Look up the rsl bytes and include those
@@ -632,9 +659,12 @@ public class Preloader extends Sprite
         if (displayClass)
             displayClass.removeEventListener(Event.COMPLETE, displayClassCompleteHandler);
         
+		COMPILE::AS3
+		{
         if (root) 
             root.loaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
-            
+		}
+		
         if (app) 
         {
             app.removeEventListener("validatePropertiesComplete", appProgressHandler);

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/states/RemoveChild.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/states/RemoveChild.as b/frameworks/projects/MX/src/main/flex/mx/states/RemoveChild.as
index 6d3f6d0..c98b88a 100644
--- a/frameworks/projects/MX/src/main/flex/mx/states/RemoveChild.as
+++ b/frameworks/projects/MX/src/main/flex/mx/states/RemoveChild.as
@@ -19,9 +19,16 @@
 
 package mx.states
 {
-
-import flash.display.DisplayObject;
-import flash.display.DisplayObjectContainer;
+COMPILE::AS3
+{
+	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;		
+}
+COMPILE::JS
+{
+	import flex.display.DisplayObject;
+	import flex.display.DisplayObjectContainer;		
+}
 
 import mx.core.UIComponent;
 import mx.core.mx_internal;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/states/SetEventHandler.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/states/SetEventHandler.as b/frameworks/projects/MX/src/main/flex/mx/states/SetEventHandler.as
index 53f5fde..5bf26fa 100644
--- a/frameworks/projects/MX/src/main/flex/mx/states/SetEventHandler.as
+++ b/frameworks/projects/MX/src/main/flex/mx/states/SetEventHandler.as
@@ -242,7 +242,7 @@ public class SetEventHandler extends OverrideBase
 	COMPILE::JS
 	override public function addEventListener(
 		type:String, listener:Function,
-		useCapture:Boolean = false):void
+		useCapture:Boolean = false, handlerScope:Object = null):void
    {
         if (type == "handler")
             handlerFunction = listener;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/fc11d5a3/frameworks/projects/MX/src/main/flex/mx/utils/GraphicsUtil.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/utils/GraphicsUtil.as b/frameworks/projects/MX/src/main/flex/mx/utils/GraphicsUtil.as
index fd7e58d..c366553 100644
--- a/frameworks/projects/MX/src/main/flex/mx/utils/GraphicsUtil.as
+++ b/frameworks/projects/MX/src/main/flex/mx/utils/GraphicsUtil.as
@@ -20,7 +20,14 @@
 package mx.utils
 {
 
-import flash.display.Graphics;
+COMPILE::AS3
+{
+	import flash.display.Graphics;		
+}
+COMPILE::JS
+{
+	import flex.display.Graphics;		
+}
 
 /**
  *  The Graphics class is an all-static class with utility methods


[05/37] git commit: [flex-asjs] [refs/heads/spark] - trace(): better detection of window.console() so that there isn't a runtime error in a Node.js release build

Posted by ah...@apache.org.
trace(): better detection of window.console() so that there isn't a runtime error in a Node.js release build


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/9afa2c11
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/9afa2c11
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/9afa2c11

Branch: refs/heads/spark
Commit: 9afa2c111e92953c94c9adab10540890252a1f49
Parents: 8156e98
Author: Josh Tynjala <jo...@apache.org>
Authored: Fri Feb 12 11:07:27 2016 -0800
Committer: Josh Tynjala <jo...@apache.org>
Committed: Fri Feb 12 11:07:27 2016 -0800

----------------------------------------------------------------------
 .../Core/src/main/flex/org/apache/flex/utils/Language.as        | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/9afa2c11/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
index 6a26191..e3a318c 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/utils/Language.as
@@ -308,10 +308,9 @@ package org.apache.flex.utils
 
 			if (theConsole === undefined)
 			{
-            	var windowConsole:* = window.console;
-				if (windowConsole !== undefined)
+				if(typeof window !== "undefined")
 				{
-					theConsole = windowConsole;
+					theConsole = window.console;
 				}
 			}
 


[19/37] git commit: [flex-asjs] [refs/heads/spark] - make event constructors match

Posted by ah...@apache.org.
make event constructors match


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/063ac08e
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/063ac08e
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/063ac08e

Branch: refs/heads/spark
Commit: 063ac08e0a5a6c15b06606e5e159ed3154d72648
Parents: 75ee02d
Author: Alex Harui <ah...@apache.org>
Authored: Mon Feb 29 17:51:56 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Feb 29 17:51:56 2016 -0800

----------------------------------------------------------------------
 .../flex/org/apache/flex/events/CustomEvent.as     |  9 +--------
 .../src/main/flex/org/apache/flex/events/Event.as  | 17 +++++++++--------
 .../flex/org/apache/flex/events/EventDispatcher.as | 14 ++++++++++++++
 .../main/flex/org/apache/flex/events/MouseEvent.as |  2 +-
 .../org/apache/flex/events/ValueChangeEvent.as     |  9 +--------
 .../main/flex/org/apache/flex/events/ValueEvent.as | 10 +---------
 6 files changed, 27 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/063ac08e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/CustomEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/CustomEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/CustomEvent.as
index a7921df..ab3e173 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/CustomEvent.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/CustomEvent.as
@@ -51,14 +51,7 @@ package org.apache.flex.events
 		 */
 		public function CustomEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
 		{
-            COMPILE::AS3
-            {
-                super(type, bubbles, cancelable);                    
-            }
-            COMPILE::JS
-            {
-                super(type);
-            }
+            super(type, bubbles, cancelable);                    
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/063ac08e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
index 008909b..8076c66 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/Event.as
@@ -105,14 +105,15 @@ package org.apache.flex.events
 
 		public static const CHANGE:String = "change";
 
-        public function Event(type:String, target:Object = null) {
-            super(type, target);
+        public function Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false) {
+            super(type);
+			this.bubbles = true;
+			this.cancelable = true;
         }
 
-		public function init(type:String):void {
-			this.type = type;
-		}
-		
+		public var bubbles:Boolean;
+		public var cancelable:Boolean;
+				
 		/**
 		 * Google Closure doesn't seem to support stopImmediatePropagation, but
 		 * actually the HTMLElementWrapper fireListener override sends a
@@ -122,12 +123,12 @@ package org.apache.flex.events
 		 */
 		public function stopImmediatePropagation():void
 		{
-			// do nothing
+			throw new Error("stopImmediatePropagation");
 		}
 		
 		public function cloneEvent():org.apache.flex.events.Event
 		{
-			return this;
+			return new org.apache.flex.events.Event(type, bubbles, cancelable);
 		}
     }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/063ac08e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
index ceec8ee..f6e635b 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/EventDispatcher.as
@@ -62,5 +62,19 @@ package org.apache.flex.events
         {
             return goog.events.hasListener(this, type);
         }
+		
+		override public function dispatchEvent(event:Object):Boolean
+		{
+			try 
+			{
+				return super.dispatchEvent(event);
+			}
+			catch (e:Error)
+			{
+				if (e.name != "stopImmediatePropagation")
+					throw e;
+			}
+			return false;
+		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/063ac08e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as
index 63bad5c..605885d 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/MouseEvent.as
@@ -170,7 +170,7 @@ package org.apache.flex.events
 								   commandKey:Boolean = false, controlKey:Boolean = false,
 								   clickCount:int = 0)
 		{
-			super(type);
+			super(type, bubbles, cancelable);
 
 			this.localX = localX;
 			this.localY = localY;

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/063ac08e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueChangeEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueChangeEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueChangeEvent.as
index 45fabbd..e7c93b0 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueChangeEvent.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueChangeEvent.as
@@ -42,14 +42,7 @@ package org.apache.flex.events
 		public function ValueChangeEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, 
 										 oldValue:Object = null, newValue:Object = null)
 		{
-            COMPILE::AS3
-            {
-    			super(type, bubbles, cancelable);
-            }
-            COMPILE::JS
-            {
-                super(type);
-            }
+    		super(type, bubbles, cancelable);
 			this.oldValue = oldValue;
 			this.newValue = newValue;
 		}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/063ac08e/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueEvent.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueEvent.as b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueEvent.as
index 6088680..889f079 100644
--- a/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueEvent.as
+++ b/frameworks/projects/Core/src/main/flex/org/apache/flex/events/ValueEvent.as
@@ -41,15 +41,7 @@ package org.apache.flex.events
 		public function ValueEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false, 
 										 value:Object = null)
 		{
-            COMPILE::AS3
-            {
-    			super(type, bubbles, cancelable);
-            }
-            
-            COMPILE::JS
-            {
-                super(type);
-            }
+			super(type, bubbles, cancelable);
             
 			this.value = value;
 		}


[36/37] git commit: [flex-asjs] [refs/heads/spark] - clean cross-compile for TextField

Posted by ah...@apache.org.
clean cross-compile for TextField


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/93ca6b89
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/93ca6b89
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/93ca6b89

Branch: refs/heads/spark
Commit: 93ca6b890fb2bdfb8d5e3f783438c816bf57a0f3
Parents: 33d2a05
Author: Alex Harui <ah...@apache.org>
Authored: Thu Mar 17 14:47:54 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Mar 17 14:47:54 2016 -0700

----------------------------------------------------------------------
 .../MX/src/main/flex/flex/text/TextField.as     | 215 +++++++++++--------
 .../MX/src/main/flex/mx/core/IUITextField.as    |   2 +-
 2 files changed, 128 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93ca6b89/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
index d512bd4..d8bde5f 100644
--- a/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
+++ b/frameworks/projects/MX/src/main/flex/flex/text/TextField.as
@@ -8,11 +8,13 @@ COMPILE::JS
 {
 	import mx.core.IFlexModuleFactory;
 	import mx.core.IUITextField;
+	import mx.core.UITextFormat;
 	import mx.managers.ISystemManager;
 	
 	import flex.display.DisplayObject;
 	import flex.display.DisplayObjectContainer;
 	import flex.display.Sprite;
+	import flex.display.TopOfDisplayList;
 	
 	import org.apache.flex.geom.Rectangle;
 	import org.apache.flex.html.Label;
@@ -39,29 +41,31 @@ public class TextField extends Label implements IUITextField
 	public function set alwaysShowSelection(value:Boolean):void
 	{
 		_alwaysShowSelection = value;
-		trace("not implemented");
+		trace("TextField.alwaysShowSelection not implemented");
 	}
 	
 	private var _antiAliasType:String;
 	public function get antiAliasType():String
 	{
+		trace("TextField.antiAliasType not implemented");
 		return _antiAliasType;
 	}
 	public function set antiAliasType(value:String):void
 	{
 		_antiAliasType = value;
-		trace("not implemented");
+		trace("TextField.antiAliasType not implemented");
 	}
 
 	private var _autoSize:String;
 	public function get autoSize():String
 	{
+		trace("TextField.autoSize not implemented");
 		return _autoSize;
 	}
 	public function set autoSize(value:String):void
 	{
 		_autoSize = value;
-		trace("not implemented");
+		trace("TextField.autoSize not implemented");
 	}
 
 	private var _background:Boolean;
@@ -92,7 +96,7 @@ public class TextField extends Label implements IUITextField
 
 	public function get baselinePosition():Number
 	{
-		trace("not implemented");
+		trace("TextField.baselinePosition not implemented");
 		return 0;
 	}
 	
@@ -124,36 +128,38 @@ public class TextField extends Label implements IUITextField
 	
 	public function get bottomScrollV():int
 	{
-		trace("not implemented");
+		trace("TextField.bottomScrollV not implemented");
 		return 0;
 	}
 	
 	public function get caretIndex():int
 	{
-		trace("not implemented");
+		trace("TextField.caretIndex not implemented");
 		return 0;
 	}
 	
 	private var _condenseWhite:Boolean;
 	public function get condenseWhite():Boolean
 	{
+		trace("TextField.condenseWhite not implemented");
 		return _condenseWhite;
 	}
 	public function set condenseWhite(value:Boolean):void
 	{
 		_condenseWhite = value;
-		trace("not implemented");
+		trace("TextField.condenseWhite not implemented");
 	}
 
 	private var _defaultTextFormat:TextFormat;
 	public function get defaultTextFormat():TextFormat
 	{
+		trace("TextField.defaultTextFormat not implemented");
 		return _defaultTextFormat;
 	}
 	public function set defaultTextFormat(value:TextFormat):void
 	{
 		_defaultTextFormat = value;
-		trace("not implemented");
+		trace("TextField.defaultTextFormat not implemented");
 	}
 	
 	private var _displayAsPassword:Boolean;
@@ -186,23 +192,25 @@ public class TextField extends Label implements IUITextField
 	private var _doubleClickEnabled:Boolean;
 	public function get doubleClickEnabled():Boolean
 	{
+		trace("TextField.doubleClickEnabled not implemented");
 		return _doubleClickEnabled;
 	}
 	public function set doubleClickEnabled(value:Boolean):void
 	{
 		_doubleClickEnabled = value;
-		trace("not implemented");
+		trace("TextField.doubleClickEnabled not implemented");
 	}
 	
 	private var _embedFonts:Boolean;
 	public function get embedFonts():Boolean
 	{
+		trace("TextField.embedFonts not implemented");
 		return _embedFonts;
 	}
 	public function set embedFonts(value:Boolean):void
 	{
 		_embedFonts = value;
-		trace("not implemented");
+		trace("TextField.embedFonts not implemented");
 	}
 	
 	private var _enabled:Boolean;
@@ -217,65 +225,68 @@ public class TextField extends Label implements IUITextField
 	
 	public function get enableIME():Boolean
 	{
-		trace("not implemented");
+		trace("TextField.enableIME not implemented");
 		return false;
 	}
 	
 	public function get explicitMaxWidth():Number
 	{
-		trace("not implemented");
+		trace("TextField.explicitMaxWidth not implemented");
 		return 0;
 	}
 	
 	public function get explicitMaxHeight():Number
 	{
-		trace("not implemented");
+		trace("TextField.explicitMaxHeight not implemented");
 		return 0;
 	}
 	
 	public function get explicitMinHeight():Number
 	{
-		trace("not implemented");
+		trace("TextField.explicitMinHeight not implemented");
 		return 0;
 	}
 	
 	public function get explicitMinWidth():Number
 	{
-		trace("not implemented");
+		trace("TextField.explicitMinWidth not implemented");
 		return 0;
 	}
 	
 	private var _focusPane:Sprite;
 	public function get focusPane():Sprite
 	{
+		trace("TextField.focusPane not implemented");
 		return _focusPane;
 	}
 	public function set focusPane(value:Sprite):void
 	{
 		_focusPane = value;
-		trace("not implemented");
+		trace("TextField.focusPane not implemented");
 	}
 	
 	private var _focusRect:Object;
 	public function get focusRect():Object
 	{
+		trace("TextField.focusRect not implemented");
 		return _focusRect;
 	}
 	public function set focusRect(value:Object):void
 	{
 		_focusRect = value;
-		trace("not implemented");
+		trace("TextField.focusRect not implemented");
 	}
 
 	private var _gridFitType:String;
 	public function get gridFitType():String
 	{
+		trace("TextField.gridFitType not implemented");
 		return _gridFitType;
 	}
 	public function set gridFitType(value:String):void
 	{
 		_gridFitType = value;
-		trace("not implemented");
+		trace("TextField.gridFitType not implemented");
 	}
 	
 	private var _htmlText:String;
@@ -291,12 +302,13 @@ public class TextField extends Label implements IUITextField
 	private var _ignorePadding:Boolean;
 	public function get ignorePadding():Boolean
 	{
+		trace("TextField.ignorePadding not implemented");
 		return _ignorePadding;
 	}
 	public function set ignorePadding(value:Boolean):void
 	{
 		_ignorePadding = value;
-		trace("not implemented");
+		trace("TextField.ignorePadding not implemented");
 	}
 	
 	private var _imeMode:String;
@@ -312,34 +324,37 @@ public class TextField extends Label implements IUITextField
 	private var _includeInLayout:Boolean;
 	public function get includeInLayout():Boolean
 	{
+		trace("TextField.includeInLayout not implemented");
 		return _includeInLayout;
 	}
 	public function set includeInLayout(value:Boolean):void
 	{
 		_includeInLayout = value;
-		trace("not implemented");
+		trace("TextField.includeInLayout not implemented");
 	}
 
 	private var _inheritingStyles:Object;
 	public function get inheritingStyles():Object
 	{
+		trace("TextField.inheritingStyles not implemented");
 		return _inheritingStyles;
 	}
 	public function set inheritingStyles(value:Object):void
 	{
 		_inheritingStyles = value;
-		trace("not implemented");
+		trace("TextField.inheritingStyles not implemented");
 	}
 
 	private var _isPopUp:Boolean;
 	public function get isPopUp():Boolean
 	{
+		trace("TextField.isPopUp not implemented");
 		return _isPopUp;
 	}
 	public function set isPopUp(value:Boolean):void
 	{
 		_isPopUp = value;
-		trace("not implemented");
+		trace("TextField.isPopUp not implemented");
 	}
 	
 	public function get length():int
@@ -360,116 +375,122 @@ public class TextField extends Label implements IUITextField
 	
 	public function get maxHeight():Number
 	{
-		trace("not implemented");
+		trace("TextField.maxHeight not implemented");
 		return 0;
 	}
 	
 	public function get maxScrollH():int
 	{
-		trace("not implemented");
+		trace("TextField.maxScrollH not implemented");
 		return 0;
 	}
 	
 	public function get maxScrollV():int
 	{
-		trace("not implemented");
+		trace("TextField.maxScrollV not implemented");
 		return 0;
 	}
 	
 	public function get maxWidth():Number
 	{
-		trace("not implemented");
+		trace("TextField.maxWidth not implemented");
 		return 0;
 	}
 	
 	public function get measuredHeight():Number
 	{
-		trace("not implemented");
+		trace("TextField.measuredHeight not implemented");
 		return 0;
 	}
 		
 	private var _measuredMinHeight:Number;
 	public function get measuredMinHeight():Number
 	{
+		trace("TextField.measuredMinHeight not implemented");
 		return _measuredMinHeight;
 	}
 	public function set measuredMinHeight(value:Number):void
 	{
 		_measuredMinHeight = value;
-		trace("not implemented");
+		trace("TextField.measuredMinHeight not implemented");
 	}
 	
 	public function get measuredWidth():Number
 	{
-		trace("not implemented");
+		trace("TextField.measuredWidth not implemented");
 		return 0;
 	}
 	
 	private var _measuredMinWidth:Number;
 	public function get measuredMinWidth():Number
 	{
+		trace("TextField.measuredMinWidth not implemented");
 		return _measuredMinWidth;
 	}
 	public function set measuredMinWidth(value:Number):void
 	{
 		_measuredMinWidth = value;
-		trace("not implemented");
+		trace("TextField.measuredMinWidth not implemented");
 	}
 	
 	public function get minHeight():Number
 	{
-		trace("not implemented");
+		trace("TextField.minHeight not implemented");
 		return 0;
 	}
 	
 	public function get minWidth():Number
 	{
-		trace("not implemented");
+		trace("TextField.minWidth not implemented");
 		return 0;
 	}
 
 	private var _moduleFactory:IFlexModuleFactory;
 	public function get moduleFactory():IFlexModuleFactory
 	{
+		trace("TextField.moduleFactory not implemented");
 		return _moduleFactory;
 	}
 	public function set moduleFactory(value:IFlexModuleFactory):void
 	{
 		_moduleFactory = value;
-		trace("not implemented");
+		trace("TextField.moduleFactory not implemented");
 	}
 	
 	private var _mouseEnabled:Boolean;
 	public function get mouseEnabled():Boolean
 	{
+		trace("TextField.mouseEnabled not implemented");
 		return _mouseEnabled;
 	}
 	public function set mouseEnabled(value:Boolean):void
 	{
 		_mouseEnabled = value;
-		trace("not implemented");
+		trace("TextField.mouseEnabled not implemented");
 	}
 		
 	private var _mouseWheelEnabled:Boolean;
 	public function get mouseWheelEnabled():Boolean
 	{
+		trace("TextField.mouseWheelEnabled not implemented");
 		return _mouseWheelEnabled;
 	}
 	public function set mouseWheelEnabled(value:Boolean):void
 	{
 		_mouseWheelEnabled = value;
-		trace("not implemented");
+		trace("TextField.mouseWheelEnabled not implemented");
 	}
 	
 	private var _multiline:Boolean;
 	public function get multiline():Boolean
 	{
+		trace("TextField.multiline not implemented");
 		return _multiline;
 	}
 	public function set multiline(value:Boolean):void
 	{
 		_multiline = value;
-		trace("not implemented");
+		trace("TextField.multiline not implemented");
 	}
 	
 	private var _name:String;
@@ -506,97 +527,103 @@ public class TextField extends Label implements IUITextField
 	private var _nonInheritingStyles:Object;
 	public function get nonInheritingStyles():Object
 	{
+		trace("TextField.nonInheritingStyles not implemented");
 		return _nonInheritingStyles;
 	}
 	public function set nonInheritingStyles(value:Object):void
 	{
 		_nonInheritingStyles = value;
-		trace("not implemented");
+		trace("TextField.nonInheritingStyles not implemented");
 	}
 	
 	public function get nonZeroTextHeight():Number
 	{
-		trace("not implemented");
+		trace("TextField.nonZeroTextHeight not implemented");
 		return 0;
 	}
 	
 	public function get numLines():int
 	{
-		trace("not implemented");
+		trace("TextField.numLines not implemented");
 		return 0;
 	}
 
 	private var _restrict:String;
 	public function get restrict():String
 	{
+		trace("TextField.restrict not implemented");
 		return _restrict;
 	}
 	public function set restrict(value:String):void
 	{
 		_restrict = value;
-		trace("not implemented");
+		trace("TextField.restrict not implemented");
 	}
 	
 	private var _scrollH:int;
 	public function get scrollH():int
 	{
+		trace("TextField.scrollH not implemented");
 		return _scrollH;
 	}
 	public function set scrollH(value:int):void
 	{
 		_scrollH = value;
-		trace("not implemented");
+		trace("TextField.scrollH not implemented");
 	}
 	
 	private var _scrollV:int;
 	public function get scrollV():int
 	{
+		trace("TextField.scrollV not implemented");
 		return _scrollV;
 	}
 	public function set scrollV(value:int):void
 	{
 		_scrollV = value;
-		trace("not implemented");
+		trace("TextField.scrollV not implemented");
 	}
 	
 	public function get root():DisplayObject
 	{
-		trace("not implemented");
+		trace("TextField.root not implemented");
 		return null;
 	}
 	
 	private var _selectable:Boolean;
 	public function get selectable():Boolean
 	{
+		trace("TextField.selectable not implemented");
 		return _selectable;
 	}
 	public function set selectable(value:Boolean):void
 	{
 		_selectable = value;
-		trace("not implemented");
+		trace("TextField.selectable not implemented");
 	}
 	
 	public function get selectionBeginIndex():int
 	{
-		trace("not implemented");
+		trace("TextField.selectionBeginIndex not implemented");
 		return 0;
 	}
 	
 	public function get selectionEndIndex():int
 	{
-		trace("not implemented");
+		trace("TextField.selectionEndIndex not implemented");
 		return 0;
 	}
 
 	private var _sharpness:Number;
 	public function get sharpness():Number
 	{
+		trace("TextField.sharpness not implemented");
 		return _sharpness;
 	}
 	public function set sharpness(value:Number):void
 	{
 		_sharpness = value;
-		trace("not implemented");
+		trace("TextField.sharpness not implemented");
 	}
 	
 	private var _styleName:Object;
@@ -613,45 +640,49 @@ public class TextField extends Label implements IUITextField
 	private var _styleSheet:StyleSheet;
 	public function get styleSheet():StyleSheet
 	{
+		trace("TextField.styleSheet not implemented");
 		return _styleSheet;
 	}
 	public function set styleSheet(value:StyleSheet):void
 	{
 		_styleSheet = value;
-		trace("not implemented");
+		trace("TextField.styleSheet not implemented");
 	}
 	
 	private var _systemManager:ISystemManager;
 	public function get systemManager():ISystemManager
 	{
+		trace("TextField.systemManager not implemented");
 		return _systemManager;
 	}
 	public function set systemManager(value:ISystemManager):void
 	{
 		_systemManager = value;
-		trace("not implemented");
+		trace("TextField.systemManager not implemented");
 	}
 	
 	private var _tabEnabled:Boolean;
 	public function get tabEnabled():Boolean
 	{
+		trace("TextField.tabEnabled not implemented");
 		return _tabEnabled;
 	}
 	public function set tabEnabled(value:Boolean):void
 	{
 		_tabEnabled = value;
-		trace("not implemented");
+		trace("TextField.tabEnabled not implemented");
 	}
 	
 	private var _tabIndex:int;
 	public function get tabIndex():int
 	{
+		trace("TextField.tabIndex not implemented");
 		return _tabIndex;
 	}
 	public function set tabIndex(value:int):void
 	{
 		_tabIndex = value;
-		trace("not implemented");
+		trace("TextField.tabIndex not implemented");
 	}
 	
 	private var _textColor:uint;
@@ -678,72 +709,79 @@ public class TextField extends Label implements IUITextField
 	private var _thickness:Number;
 	public function get thickness():Number
 	{
+		trace("TextField.thickness not implemented");
 		return _thickness;
 	}
 	public function set thickness(value:Number):void
 	{
 		_thickness = value;
-		trace("not implemented");
+		trace("TextField.thickness not implemented");
 	}
 	
 	private var _toolTip:String;
 	public function get toolTip():String
 	{
+		trace("TextField.toolTip not implemented");
 		return _toolTip;
 	}
 	public function set toolTip(value:String):void
 	{
 		_toolTip = value;
-		trace("not implemented");
+		trace("TextField.toolTip not implemented");
 	}
 	
 	private var _tweeningProperties:Array;
 	public function get tweeningProperties():Array
 	{
+		trace("TextField.tweeningProperties not implemented");
 		return _tweeningProperties;
 	}
 	public function set tweeningProperties(value:Array):void
 	{
 		_tweeningProperties = value;
-		trace("not implemented");
+		trace("TextField.tweeningProperties not implemented");
 	}
 	
 	public function get topOfDisplayList():TopOfDisplayList
 	{
-		trace("not implemented");
+		trace("TextField.topOfDisplayList not implemented");
+		return null;
 	}
 	
 	private var _type:String;
 	public function get type():String
 	{
+		trace("TextField.type not implemented");
 		return _type;
 	}
 	public function set type(value:String):void
 	{
 		_type = value;
-		trace("not implemented");
+		trace("TextField.type not implemented");
 	}
 	
 	private var _useRichTextClipboard:Boolean;
 	public function get useRichTextClipboard():Boolean
 	{
+		trace("TextField.useRichTextClipboard not implemented");
 		return _useRichTextClipboard;
 	}
 	public function set useRichTextClipboard(value:Boolean):void
 	{
 		_useRichTextClipboard = value;
-		trace("not implemented");
+		trace("TextField.useRichTextClipboard not implemented");
 	}
 	
 	private var _wordWrap:Boolean;
 	public function get wordWrap():Boolean
 	{
+		trace("TextField.wordWrap not implemented");
 		return _wordWrap;
 	}
 	public function set wordWrap(value:Boolean):void
 	{
 		_wordWrap = value;
-		trace("not implemented");
+		trace("TextField.wordWrap not implemented");
 	}
 	
 	public function appendText(value:String):void
@@ -753,118 +791,118 @@ public class TextField extends Label implements IUITextField
 	
 	public function getCharBoundaries(charIndex:int):Rectangle
 	{
-		trace("not implemented");
+		trace("TextField.getCharBoundaries not implemented");
 		return null;
 	}
 
 	public function getCharIndexAtPoint(x:Number, y:Number):int
 	{
-		trace("not implemented");
+		trace("TextField.getCharIndexAtPoint not implemented");
 		return 0;
 	}
 	
 	public function getExplicitOrMeasuredHeight():Number
 	{
-		trace("not implemented");
+		trace("TextField.getExplicitOrMeasuredHeight not implemented");
 		return 0;
 	}
 	
 	public function getExplicitOrMeasuredWidth():Number
 	{
-		trace("not implemented");
+		trace("TextField.getExplicitOrMeasuredWidth not implemented");
 		return 0;
 	}
 	
 	public function getFirstCharInParagraph(index:int):int
 	{
-		trace("not implemented");
+		trace("TextField.getFirstCharInParagraph not implemented");
 		return 0;
 	}
 	
 	public function getImageReference(id:String):DisplayObject
 	{
-		trace("not implemented");
+		trace("TextField.getImageReference not implemented");
 		return null;
 	}
 	
 	public function getLineIndexAtPoint(x:Number, y:Number):int
 	{
-		trace("not implemented");
+		trace("TextField.getLineIndexAtPoint not implemented");
 		return 0;
 	}
 	
 	public function getLineIndexOfChar(index:int):int
 	{
-		trace("not implemented");
+		trace("TextField.getLineIndexOfChar not implemented");
 		return 0;
 	}
 	
 	public function getLineLength(index:int):int
 	{
-		trace("not implemented");
+		trace("TextField.getLineLength not implemented");
 		return 0;
 	}
 	
-	public function getLineMetrics(index:int):TextMetrics
+	public function getLineMetrics(index:int):TextLineMetrics
 	{
-		trace("not implemented");
-		return 0;
+		trace("TextField.getLineMetrics not implemented");
+		return null;
 	}
 	
 	public function getLineOffset(index:int):int
 	{
-		trace("not implemented");
+		trace("TextField.getLineOffset not implemented");
 		return 0;
 	}
 	
 	public function getLineText(index:int):String
 	{
-		trace("not implemented");
+		trace("TextField.getLineText not implemented");
 		return null;
 	}
 	
 	public function getParagraphLength(index:int):int
 	{
-		trace("not implemented");
+		trace("TextField.getParagraphLength not implemented");
 		return 0;
 	}
 	
 	public function getStyle(styleName:String):*
 	{
-		trace("not implemented");
+		trace("TextField.getStyle not implemented");
 		return undefined;
 	}
 	
 	public function getTextFormat(beginIndex:int = -1, endIndex:int = -1):TextFormat
 	{
-		trace("not implemented");
+		trace("TextField.getTextFormat not implemented");
 		return null;
 	}
 	
-	public function getUITextFormat(beginIndex:int = -1, endIndex:int = -1):UITextFormat
+	public function getUITextFormat():UITextFormat
 	{
-		trace("not implemented");
+		trace("TextField.getUITextFormat not implemented");
 		return null;
 	}
 	
 	public function initialize():void
 	{
-		trace("not implemented");
+		trace("TextField.initialize not implemented");
 	}
 
 	public function invalidateDisplayList():void
 	{
-		trace("not implemented");
+		trace("TextField.invalidateDisplayList not implemented");
 	}
 	
 	public function invalidateProperties():void
 	{
-		trace("not implemented");
+		trace("TextField.invalidateProperties not implemented");
 	}
 	
 	public function invalidateSize():void
 	{
-		trace("not implemented");
+		trace("TextField.invalidateSize not implemented");
 	}
 	
 	public function move(x:Number, y:Number):void
@@ -884,12 +922,12 @@ public class TextField extends Label implements IUITextField
 	
 	public function replaceSelectedText(text:String):void
 	{
-		trace("not implemented");
+		trace("TextField.replaceSelectedText not implemented");
 	}
 	
 	public function replaceText(begin:int, end:int, text:String):void
 	{
-		trace("not implemented");
+		trace("TextField.replaceText not implemented");
 	}
 	
 	public function setActualSize(x:Number, y:Number):void
@@ -909,12 +947,12 @@ public class TextField extends Label implements IUITextField
 	
 	public function setSelection(begin:int, end:int):void
 	{
-		trace("not implemented");
+		trace("TextField.setSelection not implemented");
 	}
 	
 	public function setTextFormat(format:TextFormat, begin:int = -1, end:int = -1):void
 	{
-		trace("not implemented");
+		trace("TextField.setTextFormat not implemented");
 	}
 	
 	public function setVisible(value:Boolean, noEvent:Boolean = false):void
@@ -927,12 +965,13 @@ public class TextField extends Label implements IUITextField
 	
 	public function styleChanged(styleProp:String):void
 	{
-		trace("not implemented");		
+		trace("TextField.styleChanged not implemented");		
 	}
 		
-	public function truncateToFit(format:TextFormat, begin:int = -1, end:int = -1):void
+	public function truncateToFit(truncationIndicator:String = null):Boolean
 	{
-		trace("not implemented");
+		trace("TextField.truncateToFit not implemented");
+		return false;
 	}
 	
 	public function validateNow():void

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/93ca6b89/frameworks/projects/MX/src/main/flex/mx/core/IUITextField.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/MX/src/main/flex/mx/core/IUITextField.as b/frameworks/projects/MX/src/main/flex/mx/core/IUITextField.as
index a009f81..07a332e 100644
--- a/frameworks/projects/MX/src/main/flex/mx/core/IUITextField.as
+++ b/frameworks/projects/MX/src/main/flex/mx/core/IUITextField.as
@@ -31,10 +31,10 @@ COMPILE::AS3
 COMPILE::JS
 {
 	import flex.display.DisplayObject;
-	import flex.geom.Rectangle;
 	import flex.text.StyleSheet;
 	import flex.text.TextFormat;
 	import flex.text.TextLineMetrics;		
+	import org.apache.flex.geom.Rectangle;
 }
 import mx.managers.IToolTipManagerClient;
 import mx.styles.ISimpleStyleClient;