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 <[email protected]> Authored: Mon Dec 22 09:58:22 2014 -0800 Committer: Alex Harui <[email protected]> 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
