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

joshtynjala 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 8922a2a  AccessorEmitter: missing nocollapse annotation when an 
accessor is only a setter without a getter
8922a2a is described below

commit 8922a2a73039bee52d9bfd791fe2684912fc0067
Author: Josh Tynjala <[email protected]>
AuthorDate: Tue Dec 22 15:17:27 2020 -0800

    AccessorEmitter: missing nocollapse annotation when an accessor is only a 
setter without a getter
---
 .../royale/compiler/internal/codegen/js/jx/AccessorEmitter.java  | 9 +++++++++
 .../internal/codegen/js/royale/TestRoyaleAccessorMembers.java    | 2 +-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/AccessorEmitter.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/AccessorEmitter.java
index f4064aa..f5d43e6 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/AccessorEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/AccessorEmitter.java
@@ -815,12 +815,18 @@ public class AccessorEmitter extends JSSubEmitter 
implements
         boolean emitExports = true;
         boolean exportProtected = false;
         boolean exportInternal = false;
+        boolean preventRenamePublicSymbols = true;
+        boolean preventRenameProtectedSymbols = true;
+        boolean preventRenameInternalSymbols = true;
         RoyaleJSProject project = (RoyaleJSProject) getWalker().getProject();
         if (project != null && project.config != null)
         {
             emitExports = project.config.getExportPublicSymbols();
             exportProtected = project.config.getExportProtectedSymbols();
             exportInternal = project.config.getExportInternalSymbols();
+            preventRenamePublicSymbols = 
project.config.getPreventRenamePublicSymbols();
+            preventRenameProtectedSymbols = 
project.config.getPreventRenameProtectedSymbols();
+            preventRenameInternalSymbols = 
project.config.getPreventRenameInternalSymbols();
         }
                
         PropertyNodes p = map.get(key);
@@ -836,14 +842,17 @@ public class AccessorEmitter extends JSSubEmitter 
implements
         if(uri != null || def.isPublic())
         {
             p.resolvedExport = p.resolvedExport || emitExports;
+            p.preventRename = p.preventRename || preventRenamePublicSymbols;
         }
         else if(def.isInternal())
         {
             p.resolvedExport = p.resolvedExport || exportInternal;
+            p.preventRename = p.preventRename || preventRenameInternalSymbols;
         }
         else if(def.isProtected())
         {
             p.resolvedExport = p.resolvedExport || exportProtected;
+            p.preventRename = p.preventRename || preventRenameProtectedSymbols;
         }
         p.setter = node;
         if (!p.suppressExport) p.suppressExport = suppress;
diff --git 
a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleAccessorMembers.java
 
b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleAccessorMembers.java
index e88faee..574c406 100644
--- 
a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleAccessorMembers.java
+++ 
b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleAccessorMembers.java
@@ -158,7 +158,7 @@ public class TestRoyaleAccessorMembers extends 
TestGoogAccessorMembers
                        IClassNode.class, WRAP_LEVEL_CLASS);
         asBlockWalker.visitClass(node);
         assertOut("/**\n * @constructor\n */\nRoyaleTest_A = function() 
{\n};\n\n\n" +
-          "/**\n * @export\n * @type {number}\n */\nRoyaleTest_A.foo;\n\n\n" +
+          "/**\n * @nocollapse\n * @export\n * @type {number}\n 
*/\nRoyaleTest_A.foo;\n\n\n" +
           "RoyaleTest_A.set__foo = function(value) {\n};\n\n\n" +
           "Object.defineProperties(RoyaleTest_A, /** @lends {RoyaleTest_A} */ 
{\n/**\n * @type {number}\n */\nfoo: {\nset: RoyaleTest_A.set__foo}}\n);");
     }

Reply via email to