On Thu, Mar 24, 2016 at 12:59 PM, <aha...@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 <aha...@apache.org>
> Authored: Thu Mar 24 12:59:08 2016 -0700
> Committer: Alex Harui <aha...@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>
>
>

Reply via email to