This is an automated email from the ASF dual-hosted git repository.

gregdove pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git


The following commit(s) were added to refs/heads/develop by this push:
     new 24786cf  Fixed the implementation of @royalesuppressexport at the 
class level (applies to all members)
24786cf is described below

commit 24786cfba9a1eda8972327162c35b44e54104bc4
Author: greg-dove <[email protected]>
AuthorDate: Fri Aug 9 16:02:21 2019 +1200

    Fixed the implementation of @royalesuppressexport at the class level 
(applies to all members)
---
 .../royale/compiler/internal/codegen/js/JSSessionModel.java       | 6 ++++++
 .../royale/compiler/internal/codegen/js/jx/ClassEmitter.java      | 2 ++
 .../compiler/internal/codegen/js/royale/JSRoyaleDocEmitter.java   | 8 ++++++--
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/JSSessionModel.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/JSSessionModel.java
index 6155a37..55eb732 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/JSSessionModel.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/JSSessionModel.java
@@ -76,6 +76,7 @@ public class JSSessionModel
         public ArrayList<IFunctionNode> methods;
         public IClassDefinition classDefinition;
         public ImplicitBindableImplementation bindableImplementation;
+        public Boolean suppressExports;
     }
     
     public JSSessionModel()
@@ -93,6 +94,8 @@ public class JSSessionModel
 
     public boolean inStaticInitializer = false;
     
+    public boolean suppressExports = false;
+    
     private LinkedHashMap<String, PropertyNodes> propertyMap = new 
LinkedHashMap<String, PropertyNodes>();
 
     private List<String> interfacePropertyMap = new ArrayList<String>();
@@ -150,7 +153,9 @@ public class JSSessionModel
         context.vars = vars;
         context.methods = methods;
         context.bindableImplementation = implicitBindableImplementation;
+        context.suppressExports = suppressExports;
         stack.push(context);
+        suppressExports = false; //always defaults to false
         this.currentClass = currentClass;
         bindableVars = new HashMap<String, BindableVarInfo>();
         staticPropertyMap = new LinkedHashMap<String, PropertyNodes>();
@@ -174,6 +179,7 @@ public class JSSessionModel
         vars = context.vars;
         methods = context.methods;
         implicitBindableImplementation = context.bindableImplementation;
+        suppressExports = context.suppressExports;
     }
 
     public HashMap<String, PropertyNodes> getPropertyMap()
diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
index 3f6e13e..df85044 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/ClassEmitter.java
@@ -70,6 +70,8 @@ public class ClassEmitter extends JSSubEmitter implements
         
         boolean suppressExport = (asDoc != null && 
DocEmitterUtils.hasSuppressExport(fjs, asDoc.commentNoEnd()));
 
+        getModel().suppressExports = suppressExport;
+
         IClassDefinition definition = node.getDefinition();
 
         IFunctionDefinition ctorDefinition = definition.getConstructor();
diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleDocEmitter.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleDocEmitter.java
index 2d8379c..0c32ad3 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleDocEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleDocEmitter.java
@@ -131,10 +131,14 @@ public class JSRoyaleDocEmitter extends JSGoogDocEmitter
     {
        RoyaleJSProject fjp = (RoyaleJSProject)project;
         boolean keepASDoc = fjp.config != null && fjp.config.getKeepASDoc();
+        boolean suppressExports = false;
+        if (emitter instanceof JSRoyaleEmitter) {
+            suppressExports = ((JSRoyaleEmitter) 
emitter).getModel().suppressExports;
+        }
         if (fjp.config != null)
         {
-               emitExports = fjp.config.getExportPublicSymbols();
-               exportProtected = fjp.config.getExportProtectedSymbols();
+               emitExports = !suppressExports && 
fjp.config.getExportPublicSymbols();
+               exportProtected = !suppressExports && 
fjp.config.getExportProtectedSymbols();
         }
         
         coercionList = null;

Reply via email to