You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pi...@apache.org on 2017/08/13 22:03:44 UTC

[06/13] git commit: [flex-falcon] [refs/heads/feature/amf] - option to skip @export statements in most JS output

option to skip @export statements in most JS output


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

Branch: refs/heads/feature/amf
Commit: d69cf6c7fd18bdc2332cea8a8f84f1ff47199272
Parents: 42516a8
Author: Alex Harui <ah...@apache.org>
Authored: Tue Aug 8 13:53:42 2017 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Aug 8 13:53:42 2017 -0700

----------------------------------------------------------------------
 .../codegen/js/flexjs/JSFlexJSDocEmitter.java   | 12 +++++++++++
 .../codegen/mxml/flexjs/MXMLFlexJSEmitter.java  | 16 +++++++++++----
 .../js/goog/JSGoogCompcConfiguration.java       | 20 +++++++++++++++++++
 .../driver/js/goog/JSGoogConfiguration.java     | 21 ++++++++++++++++++++
 4 files changed, 65 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d69cf6c7/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 0cb1309..6077953 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
@@ -37,10 +37,12 @@ import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens;
 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.goog.JSGoogDocEmitterTokens;
 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.IASNode;
 import org.apache.flex.compiler.tree.as.IDefinitionNode;
 import org.apache.flex.compiler.tree.as.IExpressionNode;
 import org.apache.flex.compiler.tree.as.IFunctionNode;
@@ -53,6 +55,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
     private List<String> ignoreList;
     private List<String> coercionList;
     public boolean emitStringConversions = true;
+    private boolean emitExports = true;
 
     public JSFlexJSDocEmitter(IJSEmitter emitter)
     {
@@ -107,6 +110,8 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
     {
     	FlexJSProject fjp = (FlexJSProject)project;
         boolean keepASDoc = fjp.config != null && fjp.config.getKeepASDoc();
+        if (fjp.config != null)
+        	emitExports = fjp.config.getExportPublicSymbols();
         
         coercionList = null;
         ignoreList = null;
@@ -432,4 +437,11 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
         end();
     }
 
+    @Override
+    public void emitPublic(IASNode node)
+    {
+    	if (emitExports)
+    		super.emitPublic(node);
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d69cf6c7/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
index 77377c9..c42c3f5 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
@@ -122,6 +122,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
     private StringBuilder subDocuments = new StringBuilder();
     private ArrayList<String> subDocumentNames = new ArrayList<String>();
     private String interfaceList;
+    private boolean emitExports = true;
     
     /**
      * This keeps track of the entries in our temporary array of 
@@ -510,6 +511,10 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
     @Override
     public void emitDocument(IMXMLDocumentNode node)
     {
+        FlexJSProject fjp = (FlexJSProject) getMXMLWalker().getProject();
+    	if (fjp.config != null)
+    		emitExports = fjp.config.getExportPublicSymbols();
+    	
         descriptorTree = new ArrayList<MXMLDescriptorSpecifier>();
         propertiesTree = new MXMLDescriptorSpecifier();
 
@@ -749,7 +754,8 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
             root.isTopNode = true;
     
 	        writeNewline("/**");
-	        writeNewline(" * @export");
+	        if (emitExports)
+	        	writeNewline(" * @export");
 	        writeNewline(" * @type {Array}");
 	        writeNewline(" */");
 	        writeNewline("this.mxmlsd = " + ASEmitterTokens.SQUARE_OPEN.getToken());
@@ -1135,7 +1141,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
         .getASEmitter();
 
         writeNewline("/**");
-        writeNewline(" * @export");
+        writeNewline(" * @export"); // must export or else GCC will remove it
         writeNewline(" */");
         writeNewline(formatQualifiedName(cname)
                 + ".prototype._bindings = [");
@@ -1536,7 +1542,8 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
         for (MXMLEventSpecifier event : events)
         {
             writeNewline("/**");
-            writeNewline(" * @export");
+	        if (emitExports)
+	        	writeNewline(" * @export");
             writeNewline(" * @param {" + formatQualifiedName(event.type) + "} event");
             writeNewline(" */");
             writeNewline(formatQualifiedName(cname)
@@ -1598,7 +1605,8 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements
                     .getToken()))
             {
                 indentPush();
-                writeNewline("/** @export */");
+    	        if (emitExports)
+    	        	writeNewline("/** @export */");
                 writeNewline(instance.id + ": {");
                 writeNewline("/** @this {" + formattedCName + "} */");
                 indentPush();

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d69cf6c7/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/JSGoogCompcConfiguration.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/JSGoogCompcConfiguration.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/JSGoogCompcConfiguration.java
index ab690e4..ebf3a21 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/JSGoogCompcConfiguration.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/JSGoogCompcConfiguration.java
@@ -403,5 +403,25 @@ public class JSGoogCompcConfiguration extends JSConfiguration
         keepCodeWithMetadata.addAll(values);
     }
 
+    //
+    // 'export-public-symbols'
+    //
+
+    private boolean exportPublicSymbols = true;
+
+    public boolean getExportPublicSymbols()
+    {
+        return exportPublicSymbols;
+    }
+
+    @Config
+    @Mapping("export-public-symbols")
+    public void setExportPublicSymbols(ConfigurationValue cv, boolean value)
+            throws ConfigurationException
+    {
+    	exportPublicSymbols = value;
+    }
+
+    
 
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d69cf6c7/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/JSGoogConfiguration.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/JSGoogConfiguration.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/JSGoogConfiguration.java
index 318c90b..f1ccd4d 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/JSGoogConfiguration.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/driver/js/goog/JSGoogConfiguration.java
@@ -402,5 +402,26 @@ public class JSGoogConfiguration extends JSConfiguration
         keepCodeWithMetadata.addAll(values);
     }
 
+    //
+    // 'export-public-symbols'
+    //
+
+    private boolean exportPublicSymbols = true;
+
+    public boolean getExportPublicSymbols()
+    {
+        return exportPublicSymbols;
+    }
+
+    @Config
+    @Mapping("export-public-symbols")
+    public void setExportPublicSymbols(ConfigurationValue cv, boolean value)
+            throws ConfigurationException
+    {
+    	exportPublicSymbols = value;
+    }
+
+    
+    
 
 }