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)
{