compiler-jx: import statements are not output in JS (they were previously if they appeared in a function)
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/a9650946 Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/a9650946 Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/a9650946 Branch: refs/heads/develop Commit: a96509461b45e143baf52423552a0990a3821824 Parents: 680c335 Author: Josh Tynjala <joshtynj...@gmail.com> Authored: Fri Oct 14 10:42:26 2016 -0700 Committer: Josh Tynjala <joshtynj...@gmail.com> Committed: Fri Oct 14 10:42:26 2016 -0700 ---------------------------------------------------------------------- .../flex/compiler/internal/codegen/js/JSEmitter.java | 7 +++++++ .../internal/codegen/js/jx/StatementEmitter.java | 6 ++++++ .../codegen/js/flexjs/TestFlexJSStatements.java | 13 +++++++++++++ 3 files changed, 26 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a9650946/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java index 237c430..7824a87 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/JSEmitter.java @@ -69,6 +69,7 @@ import org.apache.flex.compiler.tree.as.IForLoopNode; 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.IImportNode; import org.apache.flex.compiler.tree.as.IIterationFlowNode; import org.apache.flex.compiler.tree.as.ILanguageIdentifierNode; import org.apache.flex.compiler.tree.as.ILiteralContainerNode; @@ -340,6 +341,12 @@ public class JSEmitter extends ASEmitter implements IJSEmitter } @Override + public void emitImport(IImportNode node) + { + // do nothing + } + + @Override public void emitWhileLoop(IWhileLoopNode node) { whileLoopEmitter.emit(node); http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a9650946/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/StatementEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/StatementEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/StatementEmitter.java index 1f4eb4d..40e933e 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/StatementEmitter.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/StatementEmitter.java @@ -39,6 +39,12 @@ public class StatementEmitter extends JSSubEmitter implements { getWalker().walk(node); + if(node.getNodeID() == ASTNodeID.ImportID) + { + //imports aren't emitted, so don't emit anything here either + return; + } + // XXX (mschmalle) this should be in the after handler? if (node.getParent().getNodeID() != ASTNodeID.LabledStatementID && node.getNodeID() != ASTNodeID.ConfigBlockID http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a9650946/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSStatements.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSStatements.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSStatements.java index 733973e..604d0f1 100644 --- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSStatements.java +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSStatements.java @@ -27,6 +27,7 @@ import org.apache.flex.compiler.internal.tree.as.LabeledStatementNode; import org.apache.flex.compiler.tree.as.IFileNode; import org.apache.flex.compiler.tree.as.IForLoopNode; import org.apache.flex.compiler.tree.as.IIfNode; +import org.apache.flex.compiler.tree.as.IImportNode; import org.apache.flex.compiler.tree.as.ILiteralNode; import org.apache.flex.compiler.tree.as.ISwitchNode; import org.apache.flex.compiler.tree.as.ITryNode; @@ -470,6 +471,18 @@ public class TestFlexJSStatements extends TestGoogStatements assertOut("with (a)\n b;"); } + //---------------------------------- + // import a.b.C + //---------------------------------- + + @Test + public void testVisitImport() + { + IImportNode node = (IImportNode) getNode("import flash.events.EventDispatcher;", IImportNode.class); + asBlockWalker.visitImport(node); + assertOut(""); + } + @Override @Test public void testVisit()