You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ft...@apache.org on 2015/06/02 14:42:35 UTC

[28/35] git commit: [flex-falcon] [refs/heads/IDEA-FLEX_JS_COMPILER] - Cleanup organize.

Cleanup organize.


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

Branch: refs/heads/IDEA-FLEX_JS_COMPILER
Commit: e11ef01c3d3262df48a812f44a76744452d4012f
Parents: 7f04314
Author: Michael Schmalle <ms...@apache.org>
Authored: Sun May 31 15:16:36 2015 -0400
Committer: Frédéric THOMAS <we...@gmail.com>
Committed: Tue Jun 2 13:41:25 2015 +0100

----------------------------------------------------------------------
 .../codegen/js/flexjs/JSFlexJSEmitter.java      | 161 ++++++++++---------
 .../internal/codegen/js/goog/JSGoogEmitter.java |   4 +
 2 files changed, 91 insertions(+), 74 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e11ef01c/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 4463d0a..66a5731 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
@@ -258,35 +258,45 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
         methodEmitter.emit(node);
     }
 
+    //--------------------------------------------------------------------------
+    // Statements
+    //--------------------------------------------------------------------------
+
     @Override
     public void emitFunctionCall(IFunctionCallNode node)
     {
         functionCallEmitter.emit(node);
     }
 
+    @Override
+    public void emitForEachLoop(IForLoopNode node)
+    {
+        forEachEmitter.emit(node);
+    }
+
+    //--------------------------------------------------------------------------
+    // Expressions
     //--------------------------------------------------------------------------
 
     @Override
-    protected void emitSelfReference(IFunctionNode node)
+    public void emitSuperCall(IASNode node, String type)
     {
-        // we don't want 'var self = this;' in FlexJS
-        // unless there are anonymous functions
-        if (node.containsAnonymousFunctions())
-            super.emitSelfReference(node);
+        superCallEmitter.emit(node, type);
     }
 
     @Override
-    public void emitIdentifier(IIdentifierNode node)
+    public void emitMemberAccessExpression(IMemberAccessExpressionNode node)
     {
-        identifierEmitter.emit(node);
+        memberAccessEmitter.emit(node);
     }
 
-    //--------------------------------------------------------------------------
-
     @Override
-    public void emitSuperCall(IASNode node, String type)
+    public void emitE4XFilter(IMemberAccessExpressionNode node)
     {
-        superCallEmitter.emit(node, type);
+        // ToDo (erikdebruin): implement E4X replacement !?!
+        write(ASEmitterTokens.SINGLE_QUOTE);
+        write("E4XFilter");
+        write(ASEmitterTokens.SINGLE_QUOTE);
     }
 
     @Override
@@ -295,6 +305,61 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
         binaryOperatorEmitter.emit(node);
     }
 
+    @Override
+    public void emitTypedExpression(ITypedExpressionNode node)
+    {
+        write(JSGoogEmitterTokens.ARRAY);
+    }
+
+    @Override
+    public void emitIdentifier(IIdentifierNode node)
+    {
+        identifierEmitter.emit(node);
+    }
+
+    @Override
+    public void emitLiteral(ILiteralNode node)
+    {
+        boolean isWritten = false;
+
+        String s = node.getValue(true);
+        if (!(node instanceof RegExpLiteralNode))
+        {
+            if (node.getLiteralType() == LiteralType.XML)
+            {
+                // ToDo (erikdebruin): VF2JS -> handle XML output properly...
+
+                write("'" + s + "'");
+
+                isWritten = true;
+            }
+            s = s.replaceAll("\n", "__NEWLINE_PLACEHOLDER__");
+            s = s.replaceAll("\r", "__CR_PLACEHOLDER__");
+            s = s.replaceAll("\t", "__TAB_PLACEHOLDER__");
+            s = s.replaceAll("\f", "__FORMFEED_PLACEHOLDER__");
+            s = s.replaceAll("\b", "__BACKSPACE_PLACEHOLDER__");
+            s = s.replaceAll("\\\\\"", "__QUOTE_PLACEHOLDER__");
+            s = s.replaceAll("\\\\", "__ESCAPE_PLACEHOLDER__");
+            //s = "\'" + s.replaceAll("\'", "\\\\\'") + "\'";
+            s = s.replaceAll("__ESCAPE_PLACEHOLDER__", "\\\\\\\\");
+            s = s.replaceAll("__QUOTE_PLACEHOLDER__", "\\\\\"");
+            s = s.replaceAll("__BACKSPACE_PLACEHOLDER__", "\\\\b");
+            s = s.replaceAll("__FORMFEED_PLACEHOLDER__", "\\\\f");
+            s = s.replaceAll("__TAB_PLACEHOLDER__", "\\\\t");
+            s = s.replaceAll("__CR_PLACEHOLDER__", "\\\\r");
+            s = s.replaceAll("__NEWLINE_PLACEHOLDER__", "\\\\n");
+        }
+
+        if (!isWritten)
+        {
+            write(s);
+        }
+    }
+
+    //--------------------------------------------------------------------------
+    // Specific
+    //--------------------------------------------------------------------------
+
     public void emitIsAs(IExpressionNode left, IExpressionNode right,
             ASTNodeID id, boolean coercion)
     {
@@ -302,9 +367,18 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
     }
 
     @Override
-    public void emitMemberAccessExpression(IMemberAccessExpressionNode node)
+    protected void emitSelfReference(IFunctionNode node)
     {
-        memberAccessEmitter.emit(node);
+        // we don't want 'var self = this;' in FlexJS
+        // unless there are anonymous functions
+        if (node.containsAnonymousFunctions())
+        {
+            writeToken(ASEmitterTokens.VAR);
+            writeToken(JSGoogEmitterTokens.SELF);
+            writeToken(ASEmitterTokens.EQUAL);
+            write(ASEmitterTokens.THIS);
+            writeNewline(ASEmitterTokens.SEMICOLON);
+        }
     }
 
     @Override
@@ -434,65 +508,4 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
         else
             super.emitDefinePropertyFunction(node);
     }
-
-    @Override
-    public void emitForEachLoop(IForLoopNode node)
-    {
-        forEachEmitter.emit(node);
-    }
-
-    @Override
-    public void emitTypedExpression(ITypedExpressionNode node)
-    {
-        write(JSGoogEmitterTokens.ARRAY);
-    }
-
-    @Override
-    public void emitLiteral(ILiteralNode node)
-    {
-        boolean isWritten = false;
-
-        String s = node.getValue(true);
-        if (!(node instanceof RegExpLiteralNode))
-        {
-            if (node.getLiteralType() == LiteralType.XML)
-            {
-                // ToDo (erikdebruin): VF2JS -> handle XML output properly...
-
-                write("'" + s + "'");
-
-                isWritten = true;
-            }
-            s = s.replaceAll("\n", "__NEWLINE_PLACEHOLDER__");
-            s = s.replaceAll("\r", "__CR_PLACEHOLDER__");
-            s = s.replaceAll("\t", "__TAB_PLACEHOLDER__");
-            s = s.replaceAll("\f", "__FORMFEED_PLACEHOLDER__");
-            s = s.replaceAll("\b", "__BACKSPACE_PLACEHOLDER__");
-            s = s.replaceAll("\\\\\"", "__QUOTE_PLACEHOLDER__");
-            s = s.replaceAll("\\\\", "__ESCAPE_PLACEHOLDER__");
-            //s = "\'" + s.replaceAll("\'", "\\\\\'") + "\'";
-            s = s.replaceAll("__ESCAPE_PLACEHOLDER__", "\\\\\\\\");
-            s = s.replaceAll("__QUOTE_PLACEHOLDER__", "\\\\\"");
-            s = s.replaceAll("__BACKSPACE_PLACEHOLDER__", "\\\\b");
-            s = s.replaceAll("__FORMFEED_PLACEHOLDER__", "\\\\f");
-            s = s.replaceAll("__TAB_PLACEHOLDER__", "\\\\t");
-            s = s.replaceAll("__CR_PLACEHOLDER__", "\\\\r");
-            s = s.replaceAll("__NEWLINE_PLACEHOLDER__", "\\\\n");
-        }
-
-        if (!isWritten)
-        {
-            write(s);
-        }
-    }
-
-    @Override
-    public void emitE4XFilter(IMemberAccessExpressionNode node)
-    {
-        // ToDo (erikdebruin): implement E4X replacement !?!
-        write(ASEmitterTokens.SINGLE_QUOTE);
-        write("E4XFilter");
-        write(ASEmitterTokens.SINGLE_QUOTE);
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/e11ef01c/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 40453ec..df64740 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
@@ -640,6 +640,7 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
         emitDefaultParameterCodeBlock(node);
     }
 
+    // XXX Dead
     protected void emitSelfReference(IFunctionNode node)
     {
         writeToken(ASEmitterTokens.VAR);
@@ -649,6 +650,7 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
         writeNewline(ASEmitterTokens.SEMICOLON);
     }
 
+    // XXX Dead
     protected void emitSuperCall(IASNode node, String type)
     {
         IFunctionNode fnode = (node instanceof IFunctionNode) ? (IFunctionNode) node
@@ -874,6 +876,7 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
         getWalker().walk(node.getCollectionNode());
     }
 
+    // XXX Dead
     @Override
     public void emitForEachLoop(IForLoopNode node)
     {
@@ -999,6 +1002,7 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
         emitBinaryOperator(node);
     }
 
+    // XXX Dead
     @Override
     public void emitBinaryOperator(IBinaryOperatorNode node)
     {