Repository: flex-falcon Updated Branches: refs/heads/develop 4cc081b01 -> 3bcbbffc8
added source mapping for language identifiers Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/3bcbbffc Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/3bcbbffc Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/3bcbbffc Branch: refs/heads/develop Commit: 3bcbbffc8b2b4c6107b0a531ca8d81826140c44a Parents: 4cc081b Author: Josh Tynjala <[email protected]> Authored: Fri Apr 8 17:00:08 2016 -0700 Committer: Josh Tynjala <[email protected]> Committed: Fri Apr 8 17:00:08 2016 -0700 ---------------------------------------------------------------------- .../compiler/internal/codegen/js/JSEmitter.java | 11 +++++ .../js/jx/LanguageIdentifierEmitter.java | 44 ++++++++++++++++++++ 2 files changed, 55 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3bcbbffc/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 2ab71b3..a50e288 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 @@ -36,6 +36,7 @@ import org.apache.flex.compiler.internal.codegen.js.jx.ForLoopEmitter; import org.apache.flex.compiler.internal.codegen.js.jx.FunctionCallArgumentsEmitter; import org.apache.flex.compiler.internal.codegen.js.jx.IfEmitter; import org.apache.flex.compiler.internal.codegen.js.jx.IterationFlowEmitter; +import org.apache.flex.compiler.internal.codegen.js.jx.LanguageIdentifierEmitter; import org.apache.flex.compiler.internal.codegen.js.jx.LiteralContainerEmitter; import org.apache.flex.compiler.internal.codegen.js.jx.MemberKeywordEmitter; import org.apache.flex.compiler.internal.codegen.js.jx.NumericLiteralEmitter; @@ -59,6 +60,7 @@ import org.apache.flex.compiler.tree.as.IFunctionNode; import org.apache.flex.compiler.tree.as.IFunctionObjectNode; import org.apache.flex.compiler.tree.as.IIfNode; import org.apache.flex.compiler.tree.as.IIterationFlowNode; +import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode; import org.apache.flex.compiler.tree.as.ILiteralContainerNode; import org.apache.flex.compiler.tree.as.INumericLiteralNode; import org.apache.flex.compiler.tree.as.IObjectLiteralValuePairNode; @@ -97,6 +99,7 @@ public class JSEmitter extends ASEmitter implements IJSEmitter public ForLoopEmitter forLoopEmitter; public IterationFlowEmitter interationFlowEmitter; public StatementEmitter statementEmitter; + public LanguageIdentifierEmitter languageIdentifierEmitter; public SourceMapDirectiveEmitter sourceMapDirectiveEmitter; @Override @@ -140,6 +143,7 @@ public class JSEmitter extends ASEmitter implements IJSEmitter forLoopEmitter = new ForLoopEmitter(this); interationFlowEmitter = new IterationFlowEmitter(this); statementEmitter = new StatementEmitter(this); + languageIdentifierEmitter = new LanguageIdentifierEmitter(this); sourceMapDirectiveEmitter = new SourceMapDirectiveEmitter(this); } @@ -258,6 +262,13 @@ public class JSEmitter extends ASEmitter implements IJSEmitter { ternaryOperatorEmitter.emit(node); } + + @Override + public void emitLanguageIdentifier(ILanguageIdentifierNode node) + { + languageIdentifierEmitter.emit(node); + } + @Override public void emitStatement(IASNode node) { http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/3bcbbffc/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/LanguageIdentifierEmitter.java ---------------------------------------------------------------------- diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/LanguageIdentifierEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/LanguageIdentifierEmitter.java new file mode 100644 index 0000000..8f01b71 --- /dev/null +++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/LanguageIdentifierEmitter.java @@ -0,0 +1,44 @@ +package org.apache.flex.compiler.internal.codegen.js.jx; + +import org.apache.flex.compiler.codegen.ISubEmitter; +import org.apache.flex.compiler.codegen.js.IJSEmitter; +import org.apache.flex.compiler.common.ISourceLocation; +import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens; +import org.apache.flex.compiler.internal.codegen.js.JSSubEmitter; +import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode; + +public class LanguageIdentifierEmitter extends JSSubEmitter implements + ISubEmitter<ILanguageIdentifierNode> +{ + public LanguageIdentifierEmitter(IJSEmitter emitter) + { + super(emitter); + } + + @Override + public void emit(ILanguageIdentifierNode node) + { + startMapping((ISourceLocation) node); + if (node.getKind() == ILanguageIdentifierNode.LanguageIdentifierKind.ANY_TYPE) + { + write(ASEmitterTokens.ANY_TYPE); + } + else if (node.getKind() == ILanguageIdentifierNode.LanguageIdentifierKind.REST) + { + write(ASEmitterTokens.ELLIPSIS); + } + else if (node.getKind() == ILanguageIdentifierNode.LanguageIdentifierKind.SUPER) + { + write(ASEmitterTokens.SUPER); + } + else if (node.getKind() == ILanguageIdentifierNode.LanguageIdentifierKind.THIS) + { + write(ASEmitterTokens.THIS); + } + else if (node.getKind() == ILanguageIdentifierNode.LanguageIdentifierKind.VOID) + { + write(ASEmitterTokens.VOID); + } + endMapping((ISourceLocation) node); + } +}
