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);");
}