Repository: flex-falcon
Updated Branches:
  refs/heads/develop 2591c553c -> 5f59503a7


fix emitting of state event overrides


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

Branch: refs/heads/develop
Commit: 5f59503a74389bf8f9917b11c22ee08461bdb9ae
Parents: 2591c55
Author: Alex Harui <[email protected]>
Authored: Thu Jan 8 16:42:43 2015 -0800
Committer: Alex Harui <[email protected]>
Committed: Thu Jan 8 16:42:43 2015 -0800

----------------------------------------------------------------------
 .../codegen/mxml/flexjs/MXMLEventSpecifier.java     |  8 +++++++-
 .../codegen/mxml/flexjs/MXMLFlexJSEmitter.java      | 16 +++++++++-------
 2 files changed, 16 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/5f59503a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLEventSpecifier.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLEventSpecifier.java
 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLEventSpecifier.java
index b3d8c04..d419df6 100644
--- 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLEventSpecifier.java
+++ 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLEventSpecifier.java
@@ -47,7 +47,7 @@ public class MXMLEventSpecifier extends MXMLNodeSpecifier
     //
     
//--------------------------------------------------------------------------
 
-    List<String> nameMap = Arrays.asList(
+    static List<String> nameMap = Arrays.asList(
                "rollOver",
                "rollOut",
                "mouseDown",
@@ -90,4 +90,10 @@ public class MXMLEventSpecifier extends MXMLNodeSpecifier
         return sb.toString();
     }
 
+    public static String getJSEventName(String name)
+    {
+       if (nameMap.contains(name))
+               return name.toLowerCase();
+       return name;
+    }
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/5f59503a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
index f052173..cdee4d6 100644
--- 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
+++ 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
@@ -972,11 +972,10 @@ public class MXMLFlexJSEmitter extends MXMLEmitter 
implements
         }
         eventSpecifier.value = sb.toString();
 
-        if (currentDescriptor != null)
-            currentDescriptor.eventSpecifiers.add(eventSpecifier);
-        else  // in theory, if no currentdescriptor must be top tag event
-            propertiesTree.eventSpecifiers.add(eventSpecifier);
-
+           if (currentDescriptor != null)
+               currentDescriptor.eventSpecifiers.add(eventSpecifier);
+           else if (!inStatesOverride) // in theory, if no currentdescriptor 
must be top tag event
+               propertiesTree.eventSpecifiers.add(eventSpecifier);
         events.add(eventSpecifier);
     }
 
@@ -1218,7 +1217,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter 
implements
                     ((IMXMLInstanceNode)parentNode).getEffectiveID() :
                     "";
         
-        String name = eventNode.getName();
+        String name = MXMLEventSpecifier.getJSEventName(eventNode.getName());
         
         String eventHandler = eventHandlerNameMap.get(eventNode);
         if (eventHandler == null)
@@ -1254,7 +1253,10 @@ public class MXMLFlexJSEmitter extends MXMLEmitter 
implements
         handler.isProperty = true;
         handler.name = "handlerFunction";
         handler.parent = setEvent;
-        handler.value = ASEmitterTokens.THIS.getToken() + 
ASEmitterTokens.MEMBER_ACCESS.getToken() + eventHandler;
+        handler.value = JSGoogEmitterTokens.GOOG_BIND.getToken() + 
ASEmitterTokens.PAREN_OPEN.getToken() + 
+                       ASEmitterTokens.THIS.getToken() + 
ASEmitterTokens.MEMBER_ACCESS.getToken() + eventHandler +
+                       ASEmitterTokens.COMMA.getToken() + 
ASEmitterTokens.SPACE.getToken() + ASEmitterTokens.THIS.getToken() +
+                       ASEmitterTokens.PAREN_CLOSE.getToken();
         setEvent.propertySpecifiers.add(handler);
         
         inStatesOverride = false;

Reply via email to