You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2014/12/23 08:41:35 UTC

[12/28] git commit: [flex-asjs] [refs/heads/develop] - add getProperty/setProperty to EventDispatcher so more things can cross-compiler

add getProperty/setProperty to EventDispatcher so more things can cross-compiler


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

Branch: refs/heads/develop
Commit: aeb96f31333e7be93e75cf4049fb455374f8650a
Parents: c952d22
Author: Alex Harui <ah...@apache.org>
Authored: Mon Dec 22 09:58:22 2014 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Dec 22 09:58:22 2014 -0800

----------------------------------------------------------------------
 .../flex/core/StatesWithTransitionsImpl.as      | 16 +++++-----
 .../org/apache/flex/events/EventDispatcher.as   | 32 +++++++++++++++++++-
 2 files changed, 39 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/aeb96f31/frameworks/as/projects/FlexJSJX/src/org/apache/flex/core/StatesWithTransitionsImpl.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/core/StatesWithTransitionsImpl.as b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/core/StatesWithTransitionsImpl.as
index bbc954b..c8aeb6f 100644
--- a/frameworks/as/projects/FlexJSJX/src/org/apache/flex/core/StatesWithTransitionsImpl.as
+++ b/frameworks/as/projects/FlexJSJX/src/org/apache/flex/core/StatesWithTransitionsImpl.as
@@ -201,16 +201,16 @@ package org.apache.flex.core
                 {
                     var sp:SetProperty = SetProperty(o);
                     if (sp.target != null)
-                        sp.document[sp.target][sp.name] = sp.previousValue;
+                        setProperty(getProperty(sp.document, sp.target), sp.name, sp.previousValue);
                     else
-                        sp.document[sp.name] = sp.previousValue;
+                        setProperty(sp.document, sp.name, sp.previousValue);
                 }
                 else if (o is SetEventHandler)
                 {
                     var seh:SetEventHandler = SetEventHandler(o);
                     if (seh.target != null)
                     {
-                        seh.document[seh.target].removeEventListener(seh.name, seh.handlerFunction);
+                        getProperty(seh.document, seh.target).removeEventListener(seh.name, seh.handlerFunction);
                     }
                     else
                     {
@@ -267,13 +267,13 @@ package org.apache.flex.core
                     var sp:SetProperty = SetProperty(o);
                     if (sp.target != null)
                     {
-                        sp.previousValue = sp.document[sp.target][sp.name];
-                        sp.document[sp.target][sp.name] = sp.value;
+                        sp.previousValue = getProperty(getProperty(sp.document, sp.target), sp.name);
+                        setProperty(getProperty(sp.document, sp.target), sp.name, sp.value);
                     }
                     else
                     {
-                        sp.previousValue = sp.document[sp.name];
-                        sp.document[sp.name] = sp.value;                        
+                        sp.previousValue = getProperty(sp.document, sp.name);
+                        setProperty(sp.document, sp.name, sp.value);                        
                     }
                 }
                 else if (o is SetEventHandler)
@@ -281,7 +281,7 @@ package org.apache.flex.core
                     var seh:SetEventHandler = SetEventHandler(o);
                     if (seh.target != null)
                     {
-                        seh.document[seh.target].addEventListener(seh.name, seh.handlerFunction);
+                        getProperty(seh.document, seh.target).addEventListener(seh.name, seh.handlerFunction);
                     }
                     else
                     {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/aeb96f31/frameworks/as/projects/FlexJSUI/src/org/apache/flex/events/EventDispatcher.as
----------------------------------------------------------------------
diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/events/EventDispatcher.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/events/EventDispatcher.as
index 357689d..b5dbe2e 100644
--- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/events/EventDispatcher.as
+++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/events/EventDispatcher.as
@@ -43,5 +43,35 @@ package org.apache.flex.events
 		{
 			super();
 		}
-	}
+
+        /**
+         *  Get a property from an object.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+        protected function getProperty(obj:Object, propName:String):*
+        {
+            if (propName === 'this')
+                return obj;
+            
+            return obj[propName];
+        }
+        
+        /**
+         *  Set a property on an object.
+         *  
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion FlexJS 0.0
+         */
+        protected function setProperty(obj:Object, propName:String, value:*):void
+        {
+            obj[propName] = value;
+        }
+
+    }
 }
\ No newline at end of file