You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by er...@apache.org on 2014/11/21 13:10:26 UTC

[06/17] git commit: [flex-falcon] [refs/heads/develop] - Run 'all' qualified name requests through subroutine, to allow modification (for now: int -> INT and byte -> 'byte_')

Run 'all' qualified name requests through subroutine, to allow modification (for now: int -> INT and byte -> 'byte_')

Signed-off-by: Erik de Bruin <er...@ixsoftware.nl>


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

Branch: refs/heads/develop
Commit: 6ff35ec9589003aa0479bf95e148cb7bf06cbc6b
Parents: e7078ce
Author: Erik de Bruin <er...@ixsoftware.nl>
Authored: Fri Nov 21 11:46:34 2014 +0100
Committer: Erik de Bruin <er...@ixsoftware.nl>
Committed: Fri Nov 21 11:46:34 2014 +0100

----------------------------------------------------------------------
 .../codegen/js/vf2js/JSVF2JSEmitter.java        | 85 +++++++++++++-------
 1 file changed, 55 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6ff35ec9/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/vf2js/JSVF2JSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/vf2js/JSVF2JSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/vf2js/JSVF2JSEmitter.java
index 939b2bf..5d182b9 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/vf2js/JSVF2JSEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/vf2js/JSVF2JSEmitter.java
@@ -151,7 +151,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             }
             else
             {
-                String qname = definition.getQualifiedName();
+                String qname = parseQualifiedName(definition);
                 if (qname != null && !qname.equals(""))
                 {
                     write(qname);
@@ -210,7 +210,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
 
         getDoc().emitInterfaceDoc(node, project);
 
-        String qname = node.getQualifiedName();
+        String qname = parseQualifiedName(node);
         if (qname != null && !qname.equals(""))
         {
             write(qname);
@@ -247,7 +247,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             {
                 writeGetSetPrefix(mnode.getNodeID() == ASTNodeID.GetterID);
             }
-            write(mnode.getQualifiedName());
+            write(parseQualifiedName(mnode));
             write(ASEmitterTokens.SPACE);
             writeToken(ASEmitterTokens.EQUAL);
             write(ASEmitterTokens.FUNCTION);
@@ -306,7 +306,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
                 	writeNewline("", true);
                 	if (vnode.hasModifier(ASModifier.STATIC))
                 	{
-                		write(cdnode.getQualifiedName());
+                		write(parseQualifiedName(cdnode));
                 	}
                 	else
                 	{
@@ -401,7 +401,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
         if (definition == null)
             definition = ndef.getContainingScope().getDefinition();
 
-        write(definition.getQualifiedName()
+        write(parseQualifiedName(definition)
                 + ASEmitterTokens.MEMBER_ACCESS.getToken() + root
                 + node.getName());
 
@@ -435,7 +435,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             writeNewline("/**");
             writeNewline("@expose");
             writeNewline(" */");
-            writeNewline(definition.getQualifiedName()
+            writeNewline(parseQualifiedName(definition)
                     + ASEmitterTokens.MEMBER_ACCESS.getToken() + root
                     + "get_" + node.getName()
                     + ASEmitterTokens.SPACE.getToken() + ASEmitterTokens.EQUAL.getToken()
@@ -450,7 +450,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             writeNewline("/**");
             writeNewline("@expose");
             writeNewline(" */");
-            writeNewline(definition.getQualifiedName()
+            writeNewline(parseQualifiedName(definition)
                     + ASEmitterTokens.MEMBER_ACCESS.getToken() + root
                     + "set_" + node.getName()
                     + ASEmitterTokens.SPACE.getToken() + ASEmitterTokens.EQUAL.getToken()
@@ -498,7 +498,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
 
         boolean isConstructor = node.isConstructor();
 
-        String qname = getTypeDefinition(node).getQualifiedName();
+        String qname = parseQualifiedName(getTypeDefinition(node));
         if (qname != null && !qname.equals(""))
         {
             write(qname);
@@ -547,8 +547,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             write(ASEmitterTokens.PAREN_OPEN);
             write(qname);
             writeToken(ASEmitterTokens.COMMA);
-            String sname = getSuperClassDefinition(node, project)
-                    .getQualifiedName();
+            String sname = parseQualifiedName(getSuperClassDefinition(node, project));
             if (sname.equals(IASLanguageConstants.Object))
             	sname = IASLanguageConstants.Class;
             write(sname);
@@ -566,16 +565,16 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
         if (superClassDefinition == null)
             return false;
         
-        String qname = superClassDefinition.getQualifiedName();
+        String qname = parseQualifiedName(superClassDefinition);
 
         // ToDo (erikdebruin): need this to get the JS version of the SDK in 
         //                     shape?
         boolean useClassAsSuperClass = !qname.equals(IASLanguageConstants.Object);
         if (!useClassAsSuperClass)
         {
-        	if (node.getQualifiedName().equals("mx.core.EmbeddedFontRegistry") ||
-    			node.getQualifiedName().equals("mx.managers.HistoryManagerImpl") ||
-    			node.getQualifiedName().equals("mx.core.TextFieldFactory"))
+        	if (parseQualifiedName(node).equals("mx.core.EmbeddedFontRegistry") ||
+        		parseQualifiedName(node).equals("mx.managers.HistoryManagerImpl") ||
+        		parseQualifiedName(node).equals("mx.core.TextFieldFactory"))
         	{
         		useClassAsSuperClass = true;
         	}
@@ -624,7 +623,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
                 def = node.resolveCalledExpression(project);
                 // all new calls to a class should be fully qualified names
                 if (def instanceof ClassDefinition)
-                    write(def.getQualifiedName());
+                    write(parseQualifiedName(def));
                 else
                     // I think we still need this for "new someVarOfTypeClass"
                     getWalker().walk(node.getNameNode());
@@ -780,8 +779,8 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
         Iterator<IDefinition> visiblePropertiesIterator = defs.iterator();
         while (visiblePropertiesIterator.hasNext())
         {
-            if (nodeDef.getQualifiedName().equals(
-                    visiblePropertiesIterator.next().getQualifiedName()))
+            if (parseQualifiedName(nodeDef).equals(
+            		parseQualifiedName(visiblePropertiesIterator.next())))
                 return true;
         }
 
@@ -825,7 +824,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
         if (nodeDef != null
                 && nodeDef.isStatic() && nodeDef.getParent() != null)
         {
-            String sname = nodeDef.getParent().getQualifiedName();
+            String sname = parseQualifiedName(nodeDef.getParent());
             if (sname.length() > 0)
             {
                 write(sname);
@@ -926,7 +925,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
                 if (cnode == null)
                     return;
                 
-                write(cnode.getQualifiedName());
+                write(parseQualifiedName(cnode));
                 write(ASEmitterTokens.MEMBER_ACCESS);
                 write(JSGoogEmitterTokens.GOOG_BASE);
                 write(ASEmitterTokens.PAREN_OPEN);
@@ -934,7 +933,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
                 writeToken(ASEmitterTokens.COMMA);
                 write(ASEmitterTokens.SINGLE_QUOTE);
                 writeGetSetPrefix(!isAssignment);
-                write(nodeDef.getQualifiedName());
+                write(parseQualifiedName(nodeDef));
                 write(ASEmitterTokens.SINGLE_QUOTE);
                 if (isAssignment)
                 {
@@ -964,7 +963,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
         else if (emitName)
         {
             if (nodeDef != null)    
-                write(nodeDef.getQualifiedName());
+                write(parseQualifiedName(nodeDef));
             else
                 write(node.getName());
         }
@@ -1187,7 +1186,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             
             IDefinition dnode = (node.getRightOperandNode()).resolve(project);
             if (dnode != null)
-                write(dnode.getQualifiedName());
+                write(parseQualifiedName(dnode));
             else
                 getWalker().walk(node.getRightOperandNode());
         }
@@ -1268,7 +1267,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
 
         IDefinition dnode = (right).resolve(project);
         if (dnode != null)
-            write(dnode.getQualifiedName());
+            write(parseQualifiedName(dnode));
         else
             getWalker().walk(right);
         
@@ -1379,7 +1378,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             project = getWalker().getProject();
 
         getDoc().emitMethodDoc(fn, project);
-        write(type.getQualifiedName());
+        write(parseQualifiedName(type));
         if (!node.hasModifier(ASModifier.STATIC))
         {
             write(ASEmitterTokens.MEMBER_ACCESS);
@@ -1420,7 +1419,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             return;
 
         writeNewline("/**");
-        writeNewline(" * " + type.getQualifiedName());
+        writeNewline(" * " + parseQualifiedName(type));
         writeNewline(" *");
         writeNewline(" * @fileoverview");
         writeNewline(" *");
@@ -1432,7 +1431,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
         write(JSGoogEmitterTokens.GOOG_PROVIDE);
         write(ASEmitterTokens.PAREN_OPEN);
         write(ASEmitterTokens.SINGLE_QUOTE);
-        write(type.getQualifiedName());
+        write(parseQualifiedName(type));
         write(ASEmitterTokens.SINGLE_QUOTE);
         write(ASEmitterTokens.PAREN_CLOSE);
         writeNewline(ASEmitterTokens.SEMICOLON);
@@ -1459,7 +1458,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
         ArrayList<String> requiresList = flexProject.getRequires(cu);
         ArrayList<String> interfacesList = flexProject.getInterfaces(cu);
 
-        String cname = type.getQualifiedName();
+        String cname = parseQualifiedName(type);
         ArrayList<String> writtenInstances = new ArrayList<String>();
         writtenInstances.add(cname); // make sure we don't add ourselves
 
@@ -1565,7 +1564,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             getDoc().end();
 
             // a.B.prototype.AFJS_CLASS_INFO = {  };
-            write(type.getQualifiedName());
+            write(parseQualifiedName(type));
             write(ASEmitterTokens.MEMBER_ACCESS);
             write(JSEmitterTokens.PROTOTYPE);
             write(ASEmitterTokens.MEMBER_ACCESS);
@@ -1587,7 +1586,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             write(JSFlexJSEmitterTokens.QNAME);
             writeToken(ASEmitterTokens.COLON);
             write(ASEmitterTokens.SINGLE_QUOTE);
-            write(tnode.getQualifiedName());
+            write(parseQualifiedName(tnode));
             write(ASEmitterTokens.SINGLE_QUOTE);
             write(ASEmitterTokens.BLOCK_CLOSE);
             write(ASEmitterTokens.SQUARE_CLOSE);
@@ -1609,7 +1608,7 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
                 int i = 0;
                 for (IExpressionNode enode : enodes)
                 { 
-                    write(enode.resolve(project).getQualifiedName());
+                    write(parseQualifiedName(enode.resolve(project)));
                     if (i < enodes.length - 1)
                         writeToken(ASEmitterTokens.COMMA);
                     i++;
@@ -1840,5 +1839,31 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
             	writeToken(ASEmitterTokens.COMMA);
         }
     }
+    
+    private String parseQualifiedName(IDefinitionNode def)
+    {
+    	return parseQualifiedNameString(def.getQualifiedName());
+    }
+    
+    private String parseQualifiedName(IDefinition def)
+    {
+    	return parseQualifiedNameString(def.getQualifiedName());
+    }
+
+    private String parseQualifiedNameString(String qNameString)
+    {
+    	// ToDo (erikdebruin): Ugly hacks for VF2JS ...
+    	if (qNameString.equals(IASLanguageConstants._int))
+    	{
+    		qNameString = qNameString.toUpperCase();
+    	}
+    	
+    	if (qNameString.equals("byte"))
+    	{
+    		qNameString = "$" + qNameString;
+    	}
+    	
+    	return qNameString;
+    }
 
 }