You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by jo...@apache.org on 2020/09/16 18:40:52 UTC

[royale-compiler] branch develop updated (f23844f -> 458eb74)

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

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


    from f23844f  RenamePropertiesWithModuleSupport: break should have been continue
     new e66da18  RenamePropertiesWithModuleSupport: better null handling for propertyNamesToKeep
     new 458eb74  RoyaleClosurePassConfig: restore previous prevent-rename-* behavior because the newer alternative seems to have broken some things (closes #159)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../jscomp/RenamePropertiesWithModuleSupport.java  |  8 ++--
 .../javascript/jscomp/RoyaleClosurePassConfig.java | 47 +++++++++++++++++++++-
 2 files changed, 50 insertions(+), 5 deletions(-)


[royale-compiler] 01/02: RenamePropertiesWithModuleSupport: better null handling for propertyNamesToKeep

Posted by jo...@apache.org.
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

commit e66da18f9e8b33a7d7c6aa5ff6805cf884806549
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Wed Sep 16 11:34:56 2020 -0700

    RenamePropertiesWithModuleSupport: better null handling for propertyNamesToKeep
---
 .../javascript/jscomp/RenamePropertiesWithModuleSupport.java      | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/compiler-jx/src/main/java/com/google/javascript/jscomp/RenamePropertiesWithModuleSupport.java b/compiler-jx/src/main/java/com/google/javascript/jscomp/RenamePropertiesWithModuleSupport.java
index c6e6746..7e81f91 100644
--- a/compiler-jx/src/main/java/com/google/javascript/jscomp/RenamePropertiesWithModuleSupport.java
+++ b/compiler-jx/src/main/java/com/google/javascript/jscomp/RenamePropertiesWithModuleSupport.java
@@ -371,7 +371,7 @@ class RenamePropertiesWithModuleSupport implements CompilerPass {
                 propNode.getString())) {
               externedNames.add(propNode.getString());
               break;
-            } else if(propertyNamesToKeep.contains(propNode.getString())) {
+            } else if(propertyNamesToKeep != null && propertyNamesToKeep.contains(propNode.getString())) {
               break;
             }
             maybeMarkCandidate(propNode);
@@ -388,7 +388,7 @@ class RenamePropertiesWithModuleSupport implements CompilerPass {
               quotedNames.add(key.getString());
             } else if (compiler.getCodingConvention().blockRenamingForProperty(key.getString())) {
               externedNames.add(key.getString()); 
-            } else if(propertyNamesToKeep.contains(key.getString())) {
+            } else if(propertyNamesToKeep != null && propertyNamesToKeep.contains(key.getString())) {
                 continue;
             } else {
               maybeMarkCandidate(key);
@@ -407,7 +407,7 @@ class RenamePropertiesWithModuleSupport implements CompilerPass {
               quotedNames.add(key.getString());
             } else if (compiler.getCodingConvention().blockRenamingForProperty(key.getString())) {
               externedNames.add(key.getString());
-            } else if(propertyNamesToKeep.contains(key.getString())) {
+            } else if(propertyNamesToKeep != null && propertyNamesToKeep.contains(key.getString())) {
                 continue;
             } else {
               maybeMarkCandidate(key);
@@ -450,7 +450,7 @@ class RenamePropertiesWithModuleSupport implements CompilerPass {
                   Node fnName = member.getFirstChild();
                   if (compiler.getCodingConvention().blockRenamingForProperty(memberDefName)) {
                     externedNames.add(fnName.getString());
-                  } else if(propertyNamesToKeep.contains(memberDefName)) {
+                  } else if(propertyNamesToKeep != null && propertyNamesToKeep.contains(memberDefName)) {
                       continue;
                   } else if (memberDefName.equals("constructor")
                       || memberDefName.equals("superClass_")) {


Re: [royale-compiler] 02/02: RoyaleClosurePassConfig: restore previous prevent-rename-* behavior because the newer alternative seems to have broken some things (closes #159)

Posted by Piotr Zarzycki <pi...@gmail.com>.
Thanks Josh! It brings our app back on feet. Yesterday we have issue where
in release mode one of the object was renamed probably where it shouldn't
be..

śr., 16 wrz 2020 o 20:40 <jo...@apache.org> napisał(a):

> 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
>
> commit 458eb74cd1aba9ee6573d635e19b47b7670539b5
> Author: Josh Tynjala <jo...@apache.org>
> AuthorDate: Wed Sep 16 11:36:25 2020 -0700
>
>     RoyaleClosurePassConfig: restore previous prevent-rename-* behavior
> because the newer alternative seems to have broken some things (closes #159)
> ---
>  .../javascript/jscomp/RoyaleClosurePassConfig.java | 47
> +++++++++++++++++++++-
>  1 file changed, 46 insertions(+), 1 deletion(-)
>
> diff --git
> a/compiler-jx/src/main/java/com/google/javascript/jscomp/RoyaleClosurePassConfig.java
> b/compiler-jx/src/main/java/com/google/javascript/jscomp/RoyaleClosurePassConfig.java
> index c332a81..dee46a3 100644
> ---
> a/compiler-jx/src/main/java/com/google/javascript/jscomp/RoyaleClosurePassConfig.java
> +++
> b/compiler-jx/src/main/java/com/google/javascript/jscomp/RoyaleClosurePassConfig.java
> @@ -344,6 +344,10 @@ public final class RoyaleClosurePassConfig extends
> PassConfig {
>        checks.add(angularPass);
>      }
>
> +    if (propertyNamesToKeep != null && propertyNamesToKeep.size() > 0) {
> +      checks.add(keepPropertyNamesPass);
> +    }
> +
>      if (extraSymbolNamesToExport != null) {
>        checks.add(generateRoyaleExports);
>      }
> @@ -1287,6 +1291,47 @@ public final class RoyaleClosurePassConfig extends
> PassConfig {
>        }
>      };
>
> +    private final PassFactory keepPropertyNamesPass =
> +        new PassFactory("keep-property-names", true) {
> +          @Override
> +          protected CompilerPass create(final AbstractCompiler compiler) {
> +            return new CompilerPass() {
> +              @Override
> +              public void process(Node externs, Node root) {
> +
> +                Node propsObj = new Node(Token.OBJECTLIT);
> +                for(String nameToKeep : propertyNamesToKeep)
> +                {
> +                  Node nameStringKey = IR.stringKey(nameToKeep);
> +                  JSDocInfoBuilder builder = new JSDocInfoBuilder(true);
> +                  builder.recordExport();
> +                  JSDocInfo jsDocInfo = builder.build();
> +                  nameStringKey.setJSDocInfo(jsDocInfo);
> +
> +                  Node propertyDescriptor = new Node(Token.OBJECTLIT);
> +
> propertyDescriptor.addChildToBack(IR.propdef(IR.stringKey("get"),
> NodeUtil.emptyFunction()));
> +
> +                  Node prop = IR.propdef(nameStringKey,
> propertyDescriptor);
> +                  propsObj.addChildToBack(prop);
> +                }
> +
> +                Node definePropertiesTarget = NodeUtil.newQName(compiler,
> "Object.defineProperties");
> +                Node definePropertiesCall =
> IR.call(definePropertiesTarget, IR.objectlit(), propsObj);
> +                Node expression = IR.exprResult(definePropertiesCall);
> +
> +                Node scriptNode = compiler.getScriptNode(sourceFileName);
> +                scriptNode.addChildToBack(expression);
> +                compiler.reportChangeToEnclosingScope(expression);
> +              }
> +            };
> +          }
> +
> +          @Override
> +          protected FeatureSet featureSet() {
> +            return ES_NEXT;
> +          }
> +        };
> +
>    /** Raw exports processing pass. */
>    private final PassFactory gatherRawExports =
>        new PassFactory(PassNames.GATHER_RAW_EXPORTS, true) {
> @@ -3067,7 +3112,7 @@ public final class RoyaleClosurePassConfig extends
> PassConfig {
>                        options.getPropertyReservedNamingFirstChars(),
>                        options.getPropertyReservedNamingNonFirstChars(),
>                        options.nameGenerator,
> -                      propertyNamesToKeep);
> +                      null);
>                rprop.process(externs, root);
>                compiler.setPropertyMap(rprop.getPropertyMap());
>              }
>
>

-- 

Piotr Zarzycki

[royale-compiler] 02/02: RoyaleClosurePassConfig: restore previous prevent-rename-* behavior because the newer alternative seems to have broken some things (closes #159)

Posted by jo...@apache.org.
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

commit 458eb74cd1aba9ee6573d635e19b47b7670539b5
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Wed Sep 16 11:36:25 2020 -0700

    RoyaleClosurePassConfig: restore previous prevent-rename-* behavior because the newer alternative seems to have broken some things (closes #159)
---
 .../javascript/jscomp/RoyaleClosurePassConfig.java | 47 +++++++++++++++++++++-
 1 file changed, 46 insertions(+), 1 deletion(-)

diff --git a/compiler-jx/src/main/java/com/google/javascript/jscomp/RoyaleClosurePassConfig.java b/compiler-jx/src/main/java/com/google/javascript/jscomp/RoyaleClosurePassConfig.java
index c332a81..dee46a3 100644
--- a/compiler-jx/src/main/java/com/google/javascript/jscomp/RoyaleClosurePassConfig.java
+++ b/compiler-jx/src/main/java/com/google/javascript/jscomp/RoyaleClosurePassConfig.java
@@ -344,6 +344,10 @@ public final class RoyaleClosurePassConfig extends PassConfig {
       checks.add(angularPass);
     }
 
+    if (propertyNamesToKeep != null && propertyNamesToKeep.size() > 0) {
+      checks.add(keepPropertyNamesPass);
+    }
+
     if (extraSymbolNamesToExport != null) {
       checks.add(generateRoyaleExports);
     }
@@ -1287,6 +1291,47 @@ public final class RoyaleClosurePassConfig extends PassConfig {
       }
     };
 
+    private final PassFactory keepPropertyNamesPass = 
+        new PassFactory("keep-property-names", true) {
+          @Override
+          protected CompilerPass create(final AbstractCompiler compiler) {
+            return new CompilerPass() {
+              @Override
+              public void process(Node externs, Node root) {
+
+                Node propsObj = new Node(Token.OBJECTLIT);
+                for(String nameToKeep : propertyNamesToKeep)
+                {
+                  Node nameStringKey = IR.stringKey(nameToKeep);
+                  JSDocInfoBuilder builder = new JSDocInfoBuilder(true);
+                  builder.recordExport();
+                  JSDocInfo jsDocInfo = builder.build();
+                  nameStringKey.setJSDocInfo(jsDocInfo);
+
+                  Node propertyDescriptor = new Node(Token.OBJECTLIT);
+                  propertyDescriptor.addChildToBack(IR.propdef(IR.stringKey("get"), NodeUtil.emptyFunction()));
+
+                  Node prop = IR.propdef(nameStringKey, propertyDescriptor);
+                  propsObj.addChildToBack(prop);
+                }
+
+                Node definePropertiesTarget = NodeUtil.newQName(compiler, "Object.defineProperties");
+                Node definePropertiesCall = IR.call(definePropertiesTarget, IR.objectlit(), propsObj);
+                Node expression = IR.exprResult(definePropertiesCall);
+
+                Node scriptNode = compiler.getScriptNode(sourceFileName);
+                scriptNode.addChildToBack(expression);
+                compiler.reportChangeToEnclosingScope(expression);
+              }
+            };
+          }
+
+          @Override
+          protected FeatureSet featureSet() {
+            return ES_NEXT;
+          }
+        };
+
   /** Raw exports processing pass. */
   private final PassFactory gatherRawExports =
       new PassFactory(PassNames.GATHER_RAW_EXPORTS, true) {
@@ -3067,7 +3112,7 @@ public final class RoyaleClosurePassConfig extends PassConfig {
                       options.getPropertyReservedNamingFirstChars(),
                       options.getPropertyReservedNamingNonFirstChars(),
                       options.nameGenerator,
-                      propertyNamesToKeep);
+                      null);
               rprop.process(externs, root);
               compiler.setPropertyMap(rprop.getPropertyMap());
             }