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:58 UTC

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

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>


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>
>
>