You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2017/01/03 05:35:27 UTC

git commit: [flex-falcon] [refs/heads/develop] - fix inject_html

Repository: flex-falcon
Updated Branches:
  refs/heads/develop d66093a73 -> dfa081565


fix inject_html


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

Branch: refs/heads/develop
Commit: dfa0815652a3172a92a8068075a8fd5067fc1e18
Parents: d66093a
Author: Alex Harui <ah...@apache.org>
Authored: Mon Jan 2 21:35:27 2017 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Jan 2 21:35:27 2017 -0800

----------------------------------------------------------------------
 .../apache/flex/compiler/clients/MXMLJSC.java   |  4 -
 .../codegen/js/flexjs/JSFlexJSDocEmitter.java   | 20 +++--
 .../internal/codegen/js/jx/ClassEmitter.java    |  7 +-
 .../codegen/js/flexjs/TestFlexJSEmitter.java    | 79 +++++++++++++++++++-
 .../js/flexjs/TestFlexJSExpressions.java        |  1 -
 5 files changed, 97 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dfa08156/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java
index 54b1bad..bb10a06 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java
@@ -152,7 +152,6 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
     }
 
     public static JSOutputType jsOutputType;
-    public static boolean keepASDoc;
 
     @Override
     public String getName()
@@ -305,9 +304,6 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
         {
             final boolean continueCompilation = configure(args);
 
-            // ToDo (erikdebruin): use JSSharedData for globals ...
-//            keepASDoc = ((JSGoogConfiguration) config).getKeepASDoc();
-
 /*            if (outProblems != null && !config.isVerbose())
                 JSSharedData.STDOUT = JSSharedData.STDERR = null;*/
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dfa08156/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
index 71306d4..2c49b25 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
@@ -39,6 +39,7 @@ import org.apache.flex.compiler.internal.codegen.js.JSEmitterTokens;
 import org.apache.flex.compiler.internal.codegen.js.JSSessionModel;
 import org.apache.flex.compiler.internal.codegen.js.goog.JSGoogDocEmitter;
 import org.apache.flex.compiler.internal.codegen.js.jx.BindableEmitter;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.internal.scopes.ASScope;
 import org.apache.flex.compiler.projects.ICompilerProject;
 import org.apache.flex.compiler.tree.as.IDefinitionNode;
@@ -105,6 +106,9 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
     @Override
     public void emitMethodDoc(IFunctionNode node, ICompilerProject project)
     {
+    	FlexJSProject fjp = (FlexJSProject)project;
+        boolean keepASDoc = fjp.config != null && fjp.config.getKeepASDoc();
+        
         coercionList = null;
         ignoreList = null;
         emitStringConversions = true;
@@ -120,7 +124,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
             
             if (node.isConstructor())
             {
-                if (asDoc != null && MXMLJSC.keepASDoc)
+                if (asDoc != null && keepASDoc)
                     write(changeAnnotations(asDoc.commentNoEnd()));
                 else
                     begin();
@@ -192,7 +196,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
                 String ns = node.getNamespace();
                 if (ns != null)
                 {
-                    if (asDoc != null && MXMLJSC.keepASDoc)
+                    if (asDoc != null && keepASDoc)
                     {
                         String docText = asDoc.commentNoEnd();
                         String keepToken = JSFlexJSEmitterTokens.EMIT_COERCION
@@ -224,7 +228,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
 	            {
 	                if (!hasDoc)
 	                {
-	                    if (asDoc != null && MXMLJSC.keepASDoc)
+	                    if (asDoc != null && keepASDoc)
 	                        write(changeAnnotations(asDoc.commentNoEnd()));
 	                    else
 	                        begin();
@@ -253,7 +257,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
 	                {
 	                    if (!hasDoc)
 	                    {
-	                        if (asDoc != null && MXMLJSC.keepASDoc)
+	                        if (asDoc != null && keepASDoc)
 	                            write(changeAnnotations(asDoc.commentNoEnd()));
 	                        else
 	                            begin();
@@ -275,7 +279,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
                 {
                     if (!hasDoc)
                     {
-                        if (asDoc != null && MXMLJSC.keepASDoc)
+                        if (asDoc != null && keepASDoc)
                             write(changeAnnotations(asDoc.commentNoEnd()));
                         else
                             begin();
@@ -337,6 +341,8 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
     public void emitInterfaceMemberDoc(IDefinitionNode node,
             ICompilerProject project)
     {
+    	FlexJSProject fjp =  (FlexJSProject)project;
+        boolean keepASDoc = fjp.config != null && fjp.config.getKeepASDoc();
         boolean hasDoc = false;
 
         ASDocComment asDoc = (ASDocComment) ((IFunctionNode) node)
@@ -345,7 +351,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
         String returnType = ((IFunctionNode) node).getReturnType();
         if (returnType != "" && returnType != ASEmitterTokens.VOID.getToken()) // has return
         {
-            if (asDoc != null && MXMLJSC.keepASDoc)
+            if (asDoc != null && keepASDoc)
                 write(changeAnnotations(asDoc.commentNoEnd()));
             else
                 begin();
@@ -363,7 +369,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
         {
             if (!hasDoc)
             {
-                if (asDoc != null && MXMLJSC.keepASDoc)
+                if (asDoc != null && keepASDoc)
                     write(changeAnnotations(asDoc.commentNoEnd()));
                 else
                     begin();

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dfa08156/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
index 5cb397c..5a3dcc3 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
@@ -31,6 +31,7 @@ import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSEmitter;
 import org.apache.flex.compiler.internal.codegen.js.goog.JSGoogEmitterTokens;
 import org.apache.flex.compiler.internal.codegen.js.utils.DocEmitterUtils;
 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.IdentifierNode;
 import org.apache.flex.compiler.tree.ASTNodeID;
 import org.apache.flex.compiler.tree.as.IASNode;
@@ -53,13 +54,17 @@ public class ClassEmitter extends JSSubEmitter implements
     @Override
     public void emit(IClassNode node)
     {
+    	boolean keepASDoc = false;
+        FlexJSProject project = (FlexJSProject)getEmitter().getWalker().getProject();
+        keepASDoc = project.config != null && project.config.getKeepASDoc();
+    	
         getModel().pushClass(node.getDefinition());
 
         // TODO (mschmalle) will remove this cast as more things get abstracted
         JSFlexJSEmitter fjs = (JSFlexJSEmitter) getEmitter();
         
         ASDocComment asDoc = (ASDocComment) node.getASDocComment();
-        if (asDoc != null && MXMLJSC.keepASDoc)
+        if (asDoc != null && keepASDoc)
             DocEmitterUtils.loadImportIgnores(fjs, asDoc.commentNoEnd());
 
         IClassDefinition definition = node.getDefinition();

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dfa08156/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
index 62d5265..5d1c5bf 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
@@ -21,8 +21,10 @@ package org.apache.flex.compiler.internal.codegen.js.flexjs;
 
 import org.apache.flex.compiler.clients.MXMLJSC;
 import org.apache.flex.compiler.driver.IBackend;
+import org.apache.flex.compiler.exceptions.ConfigurationException;
 import org.apache.flex.compiler.internal.codegen.js.goog.TestGoogEmitter;
 import org.apache.flex.compiler.internal.driver.js.flexjs.FlexJSBackend;
+import org.apache.flex.compiler.internal.driver.js.goog.JSGoogConfiguration;
 import org.apache.flex.compiler.internal.parsing.as.FlexJSASDocDelegate;
 import org.apache.flex.compiler.internal.projects.FlexJSProject;
 import org.apache.flex.compiler.tree.as.IFileNode;
@@ -254,6 +256,74 @@ public class TestFlexJSEmitter extends TestGoogEmitter
 				"};\n");
     }
     
+    @Test
+    public void testInjectHTML()
+    {
+        String code = "package com.example.components {\n"
+        		+ "public class TestClass {"
+        	    + "/**\n"
+        	    + " * <inject_html>\n"
+        		+ " * This will be injected.\n"
+        		+ " * </inject_html>\n"
+        		+ " */\n"
+                + "public function TestClass() { } } }";
+        IFileNode node = compileAS(code);
+        asBlockWalker.visitFile(node);
+		assertOutWithMetadata("/**\n" +
+				" * com.example.components.TestClass\n" +
+				" *\n" +
+				" * @fileoverview\n" +
+				" *\n" +
+				" * @suppress {checkTypes|accessControls}\n" +
+				" */\n" +
+				"\n" +
+				"goog.provide('com.example.components.TestClass');\n" +
+				"\n" +
+				"\n" +
+				"\n" +
+				"/**\n" +
+        	    " * <inject_html>\n" +
+				" * This will be injected.\n" +
+        		" * </inject_html>\n" +
+				" * @constructor\n" +
+				" */\n" +
+				"com.example.components.TestClass = function() {\n" +
+				"};\n" +
+				"\n" +
+				"\n" +
+				"/**\n" +
+				" * Metadata\n" +
+				" *\n" +
+				" * @type {Object.<string, Array.<Object>>}\n" +
+				" */\n" +
+				"com.example.components.TestClass.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'TestClass', qName: 'com.example.components.TestClass', kind: 'class' }] };\n" +
+				"\n" +
+				"\n" +
+				"/**\n" +
+				" * Prevent renaming of class. Needed for reflection.\n" +
+				" */\n" +
+				"goog.exportSymbol('com.example.components.TestClass', com.example.components.TestClass);\n" +
+				"\n" +
+				"\n" +
+				"\n" +
+				"/**\n" +
+				" * Reflection\n" +
+				" *\n" +
+				" * @return {Object.<string, Function>}\n" +
+				" */\n" +
+				"com.example.components.TestClass.prototype.FLEXJS_REFLECTION_INFO = function () {\n" +
+				"  return {\n" +
+				"    variables: function () {return {};},\n" +
+				"    accessors: function () {return {};},\n" +
+				"    methods: function () {\n" +
+				"      return {\n" +
+				"        'TestClass': { type: '', declaredBy: 'com.example.components.TestClass'}\n" +
+				"      };\n" +
+				"    }\n" +
+				"  };\n" +
+				"};\n");
+    }
+    
 
     @Override
     @Test
@@ -343,7 +413,14 @@ public class TestFlexJSEmitter extends TestGoogEmitter
     {
         super.addDependencies();
         workspace.setASDocDelegate(new FlexJSASDocDelegate());
-        MXMLJSC.keepASDoc = true;
+        if (project.config == null)
+        	project.config = new JSGoogConfiguration();
+        try {
+			project.config.setKeepASDoc(null, true);
+		} catch (ConfigurationException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
     }
 
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dfa08156/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
index 29c6ff6..4791f1e 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
@@ -59,7 +59,6 @@ public class TestFlexJSExpressions extends TestGoogExpressions
 			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
-		MXMLJSC.keepASDoc = true;
     	((FlexJSProject)project).config = config;
         super.setUp();
     }