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;
+ }
+
+
+
}