You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by cd...@apache.org on 2016/04/11 15:59:29 UTC

[02/50] git commit: [flex-falcon] [refs/heads/feature/maven-migration] - cleaned up some parts of the source map to include things like commas and parentheses, moved assignment operator out of assigned value because it's not in the source location of tha

cleaned up some parts of the source map to include things like commas and parentheses, moved assignment operator out of assigned value because it's not in the source location of that node, but before it (and that made it possible to source map it)


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

Branch: refs/heads/feature/maven-migration
Commit: 109b56b894ac8572dbb1e4251641a7f87b9df065
Parents: ad6f1d0
Author: Josh Tynjala <jo...@apache.org>
Authored: Sat Mar 26 17:36:48 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Sat Mar 26 17:36:48 2016 -0700

----------------------------------------------------------------------
 .../codegen/js/goog/TestGoogGlobalClasses.java  |  2 +-
 .../js/goog/TestGoogGlobalFunctions.java        |  2 +-
 .../compiler/internal/codegen/as/ASEmitter.java | 25 +++++--
 .../compiler/internal/codegen/js/JSEmitter.java | 49 ++++++++++++--
 .../internal/codegen/js/JSEmitterTokens.java    |  3 +-
 .../codegen/js/flexjs/JSFlexJSEmitter.java      |  7 --
 .../internal/codegen/js/goog/JSGoogEmitter.java | 70 +++++++++-----------
 .../codegen/js/jx/FunctionCallEmitter.java      |  6 +-
 .../codegen/js/jx/VarDeclarationEmitter.java    |  8 ++-
 .../codegen/js/vf2js/JSVF2JSEmitter.java        |  6 +-
 10 files changed, 114 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/109b56b8/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogGlobalClasses.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogGlobalClasses.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogGlobalClasses.java
index 1bbdf55..fc9e523 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogGlobalClasses.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogGlobalClasses.java
@@ -271,7 +271,7 @@ public class TestGoogGlobalClasses extends TestGlobalClasses
     {
         IVariableNode node = getVariable("var a:Vector.<String> = new Vector.<String>(['Hello', 'World']);");
         asBlockWalker.visitVariable(node);
-        assertOut("var /** @type {Vector.<string>} */ a = new Vector(['Hello', 'World'])");
+        assertOut("var /** @type {Vector.<string>} */ a = new Array(['Hello', 'World'])");
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/109b56b8/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogGlobalFunctions.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogGlobalFunctions.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogGlobalFunctions.java
index 79acf92..614edd5 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogGlobalFunctions.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/goog/TestGoogGlobalFunctions.java
@@ -209,7 +209,7 @@ public class TestGoogGlobalFunctions extends TestGlobalFunctions
     {
         IVariableNode node = getVariable("var a:Vector.<String> = Vector.<String>(['Hello', 'World']);");
         asBlockWalker.visitVariable(node);
-        assertOut("var /** @type {Vector.<string>} */ a = Vector(['Hello', 'World'])");
+        assertOut("var /** @type {Vector.<string>} */ a = Array(['Hello', 'World'])");
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/109b56b8/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
index 14ae6c5..47f633b 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/as/ASEmitter.java
@@ -523,7 +523,14 @@ public class ASEmitter implements IASEmitter, IEmitter
 
         emitDeclarationName(node);
         emitType(node.getVariableTypeNode());
-        emitAssignedValue(node.getAssignedValueNode());
+        
+        IExpressionNode avnode = node.getAssignedValueNode();
+        if (avnode != null)
+        {
+            write(ASEmitterTokens.SPACE);
+            writeToken(ASEmitterTokens.EQUAL);
+            emitAssignedValue(avnode);
+        }
 
         if (!(node instanceof ChainedVariableNode))
         {
@@ -570,7 +577,14 @@ public class ASEmitter implements IASEmitter, IEmitter
 
         emitMemberName(node);
         emitType(node.getVariableTypeNode());
-        emitAssignedValue(node.getAssignedValueNode());
+
+        IExpressionNode avnode = node.getAssignedValueNode();
+        if (avnode != null)
+        {
+            write(ASEmitterTokens.SPACE);
+            writeToken(ASEmitterTokens.EQUAL);
+            emitAssignedValue(avnode);
+        }
 
         if (!(node instanceof ChainedVariableNode))
         {
@@ -810,12 +824,11 @@ public class ASEmitter implements IASEmitter, IEmitter
 
     protected void emitAssignedValue(IExpressionNode node)
     {
-        if (node != null)
+        if (node == null)
         {
-            write(ASEmitterTokens.SPACE);
-            writeToken(ASEmitterTokens.EQUAL);
-            getWalker().walk(node);
+            return;
         }
+        getWalker().walk(node);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/109b56b8/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
index c830f73..d510230 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java
@@ -33,7 +33,6 @@ import org.apache.flex.compiler.internal.codegen.as.ASEmitter;
 import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens;
 import org.apache.flex.compiler.internal.codegen.js.utils.EmitterUtils;
 import org.apache.flex.compiler.internal.projects.FlexJSProject;
-import org.apache.flex.compiler.internal.tree.as.ContainerNode;
 import org.apache.flex.compiler.internal.tree.as.FunctionNode;
 import org.apache.flex.compiler.tree.ASTNodeID;
 import org.apache.flex.compiler.tree.as.IASNode;
@@ -44,11 +43,14 @@ import org.apache.flex.compiler.tree.as.IFunctionNode;
 import org.apache.flex.compiler.tree.as.IFunctionObjectNode;
 import org.apache.flex.compiler.tree.as.IKeywordNode;
 import org.apache.flex.compiler.tree.as.ILiteralContainerNode;
+import org.apache.flex.compiler.tree.as.ILiteralNode;
 import org.apache.flex.compiler.tree.as.INumericLiteralNode;
+import org.apache.flex.compiler.tree.as.IObjectLiteralValuePairNode;
 import org.apache.flex.compiler.tree.as.IPackageNode;
 import org.apache.flex.compiler.tree.as.IParameterNode;
 import org.apache.flex.compiler.tree.as.IReturnNode;
 import org.apache.flex.compiler.tree.as.ITypeNode;
+import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
 import org.apache.flex.compiler.visitor.IBlockWalker;
 
@@ -222,7 +224,7 @@ public class JSEmitter extends ASEmitter implements IJSEmitter
             getWalker().walk(child);
             if (i < len - 1)
             {
-                startMapping(node);
+                startMapping(node, child.getAbsoluteEnd() - node.getAbsoluteStart() + 1);
                 writeToken(ASEmitterTokens.COMMA);
                 endMapping(node);
             }
@@ -230,27 +232,62 @@ public class JSEmitter extends ASEmitter implements IJSEmitter
 
         if (postFix != null)
         {
-            startMapping(node);
+            startMapping(node, node.getAbsoluteEnd() - node.getAbsoluteStart());
             write(postFix);
             endMapping(node);
         }
     }
 
     @Override
+    public void emitObjectLiteralValuePair(IObjectLiteralValuePairNode node)
+    {
+        ISourceLocation sourceLocationNode = (ISourceLocation) node;
+        
+        IExpressionNode nameNode = node.getNameNode();
+        if (!(nameNode instanceof ILiteralNode))
+        {
+            startMapping(nameNode);
+        }
+        getWalker().walk(node.getNameNode());
+        if (!(nameNode instanceof ILiteralNode))
+        {
+            endMapping(nameNode);
+        }
+        
+        startMapping(sourceLocationNode, nameNode.getAbsoluteEnd() - sourceLocationNode.getAbsoluteStart());
+        write(ASEmitterTokens.COLON);
+        endMapping(sourceLocationNode);
+        
+        getWalker().walk(node.getValueNode());
+    }
+
+    @Override
     public void emitReturn(IReturnNode node)
     {
+        IExpressionNode rnode = node.getReturnValueNode();
+        boolean hasReturnValue = rnode != null && rnode.getNodeID() != ASTNodeID.NilID;
+        
         startMapping(node);
         write(ASEmitterTokens.RETURN);
-        endMapping(node);
-        IExpressionNode rnode = node.getReturnValueNode();
-        if (rnode != null && rnode.getNodeID() != ASTNodeID.NilID)
+        if (hasReturnValue)
         {
             write(ASEmitterTokens.SPACE);
+        }
+        endMapping(node);
+        
+        if (hasReturnValue)
+        {
             getWalker().walk(rnode);
         }
     }
 
     @Override
+    public void emitTypedExpression(ITypedExpressionNode node)
+    {
+        write(JSEmitterTokens.ARRAY);
+    }
+
+    @Override
     public void emitMemberKeyword(IDefinitionNode node)
     {
         IKeywordNode keywordNode = null;

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/109b56b8/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/JSEmitterTokens.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/JSEmitterTokens.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/JSEmitterTokens.java
index ab8d079..82935af 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/JSEmitterTokens.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/JSEmitterTokens.java
@@ -30,7 +30,8 @@ public enum JSEmitterTokens implements IEmitterTokens
     DEFINE_PROPERTIES("defineProperties"),
     INTERFACE("interface"),
     PROTOTYPE("prototype"),
-    SLICE("slice");
+    SLICE("slice"),
+    ARRAY("Array");
 
     private String token;
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/109b56b8/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
index 94e1d5e..355250f 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
@@ -87,7 +87,6 @@ import org.apache.flex.compiler.tree.as.INamespaceNode;
 import org.apache.flex.compiler.tree.as.IPackageNode;
 import org.apache.flex.compiler.tree.as.IScopedNode;
 import org.apache.flex.compiler.tree.as.ISetterNode;
-import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
 import org.apache.flex.compiler.tree.as.IUnaryOperatorNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
 import org.apache.flex.compiler.utils.ASNodeUtils;
@@ -622,12 +621,6 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
     }
 
     @Override
-    public void emitTypedExpression(ITypedExpressionNode node)
-    {
-        write(JSGoogEmitterTokens.ARRAY);
-    }
-
-    @Override
     public void emitIdentifier(IIdentifierNode node)
     {
         identifierEmitter.emit(node);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/109b56b8/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
index 6e7d555..bc48f83 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
@@ -70,7 +70,6 @@ import org.apache.flex.compiler.tree.as.INamespaceAccessExpressionNode;
 import org.apache.flex.compiler.tree.as.IParameterNode;
 import org.apache.flex.compiler.tree.as.ISetterNode;
 import org.apache.flex.compiler.tree.as.ITypeNode;
-import org.apache.flex.compiler.tree.as.ITypedExpressionNode;
 import org.apache.flex.compiler.tree.as.IVariableExpressionNode;
 import org.apache.flex.compiler.tree.as.IVariableNode;
 import org.apache.flex.compiler.utils.ASNodeUtils;
@@ -422,8 +421,12 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
         }
 
         emitDeclarationName(node);
-        if (!(avnode instanceof IEmbedNode))
+        if (avnode != null && !(avnode instanceof IEmbedNode))
+        {
+            write(ASEmitterTokens.SPACE);
+            writeToken(ASEmitterTokens.EQUAL);
             emitAssignedValue(avnode);
+        }
 
         if (!(node instanceof ChainedVariableNode))
         {
@@ -881,49 +884,42 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
     @Override
     public void emitAssignedValue(IExpressionNode node)
     {
-        if (node != null)
+        if (node == null)
         {
-            write(ASEmitterTokens.SPACE);
-            writeToken(ASEmitterTokens.EQUAL);
-            IDefinition definition = node.resolve(getWalker().getProject());
-            if (node.getNodeID() == ASTNodeID.ClassReferenceID)
+            return;
+        }
+        IDefinition definition = node.resolve(getWalker().getProject());
+        if (node.getNodeID() == ASTNodeID.ClassReferenceID)
+        {
+            write(definition.getQualifiedName());
+        }
+        else
+        {
+            // AJH need Language.bind here and maybe not require
+            // that the node is a MemberAccessExpression
+            if (definition instanceof FunctionDefinition &&
+                    !((FunctionDefinition)definition).isStatic() &&
+                    (!(definition instanceof AccessorDefinition)) &&
+                    node instanceof MemberAccessExpressionNode)
             {
-                write(definition.getQualifiedName());
+                emitClosureStart();
+                getWalker().walk(node);
+                writeToken(ASEmitterTokens.COMMA);
+                getWalker().walk(((MemberAccessExpressionNode)node).getLeftOperandNode());
+                emitClosureEnd(((MemberAccessExpressionNode)node).getLeftOperandNode());
             }
-            else
+            else if (node.getNodeID() == ASTNodeID.XMLContentID)
             {
-        		// AJH need Language.bind here and maybe not require
-            	// that the node is a MemberAccessExpression
-            	if (definition instanceof FunctionDefinition &&
-            			!((FunctionDefinition)definition).isStatic() &&
-            			(!(definition instanceof AccessorDefinition)) &&
-            			node instanceof MemberAccessExpressionNode)
-            	{
-                    emitClosureStart();
-            		getWalker().walk(node);
-                    writeToken(ASEmitterTokens.COMMA);
-            		getWalker().walk(((MemberAccessExpressionNode)node).getLeftOperandNode());
-                    emitClosureEnd(((MemberAccessExpressionNode)node).getLeftOperandNode());
-            	}
-            	else if (node.getNodeID() == ASTNodeID.XMLContentID)
-            	{
-            		write("new XML");
-            		writeToken(ASEmitterTokens.PAREN_OPEN);
-            		getWalker().walk(node);
-            		writeToken(ASEmitterTokens.PAREN_CLOSE);
-            	}
-            	else
-            		getWalker().walk(node);
+                write("new XML");
+                writeToken(ASEmitterTokens.PAREN_OPEN);
+                getWalker().walk(node);
+                writeToken(ASEmitterTokens.PAREN_CLOSE);
             }
+            else
+                getWalker().walk(node);
         }
     }
 
-    @Override
-    public void emitTypedExpression(ITypedExpressionNode node)
-    {
-        getWalker().walk(node.getCollectionNode());
-    }
-
     // XXX Dead
     @Override
     public void emitForEachLoop(IForLoopNode node)

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/109b56b8/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/FunctionCallEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/FunctionCallEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/FunctionCallEmitter.java
index 5f590e1..9c4d225 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/FunctionCallEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/FunctionCallEmitter.java
@@ -104,16 +104,16 @@ public class FunctionCallEmitter extends JSSubEmitter implements ISubEmitter<IFu
             if (node.isNewExpression())
             {
                 def = node.resolveCalledExpression(getProject());
+                IExpressionNode nameNode = node.getNameNode();
                 // all new calls to a class should be fully qualified names
                 if (def instanceof ClassDefinition)
                 {
-                    getEmitter().startMapping(node);
+                    getEmitter().startMapping(nameNode);
                     write(getEmitter().formatQualifiedName(def.getQualifiedName()));
-                    getEmitter().endMapping(node);
+                    getEmitter().endMapping(nameNode);
                 }
                 else
                 {
-                    IExpressionNode nameNode = node.getNameNode();
                     // wrap "new someFunctionCall(args)" in parens so the
                     // function call gets parsed and evaluated before new
                     // otherwise it just looks like any other "new function"

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/109b56b8/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java
index b945282..3829b68 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/VarDeclarationEmitter.java
@@ -79,8 +79,14 @@ public class VarDeclarationEmitter extends JSSubEmitter implements
         }
 
         fjs.emitDeclarationName(node);
-        if (!(avnode instanceof IEmbedNode))
+        if (avnode != null && !(avnode instanceof IEmbedNode))
+        {
+            getEmitter().startMapping(node, node.getVariableTypeNode().getEnd() - node.getStart());
+            write(ASEmitterTokens.SPACE);
+            writeToken(ASEmitterTokens.EQUAL);
+            getEmitter().endMapping(node);
             fjs.emitAssignedValue(avnode);
+        }
 
         if (!(node instanceof ChainedVariableNode))
         {

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/109b56b8/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 fceccc2..0eb2a78 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
@@ -350,8 +350,12 @@ public class JSVF2JSEmitter extends JSGoogEmitter implements IJSVF2JSEmitter
         }
 
         emitDeclarationName(node);
-        if (!(avnode instanceof IEmbedNode))
+        if (avnode != null && !(avnode instanceof IEmbedNode))
+        {
+            write(ASEmitterTokens.SPACE);
+            writeToken(ASEmitterTokens.EQUAL);
             emitAssignedValue(avnode);
+        }
 
         if (!(node instanceof ChainedVariableNode))
         {