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 472c934  FieldEmitteR: uses Object.defineProperties() instead of 
Object.defineProperty() for fields with complex initializers because it plays 
nicer with Closure renaming (closes #169) (closes apache/royale-asjs#408) 
(closes apache/royale-asjs#831) (references matrix3d/spriteflexjs#21)
472c934 is described below

commit 472c934fd34423d79b37c328324ba3c42f28065a
Author: Josh Tynjala <[email protected]>
AuthorDate: Wed Dec 23 13:38:48 2020 -0800

    FieldEmitteR: uses Object.defineProperties() instead of 
Object.defineProperty() for fields with complex initializers because it plays 
nicer with Closure renaming (closes #169) (closes apache/royale-asjs#408) 
(closes apache/royale-asjs#831) (references matrix3d/spriteflexjs#21)
---
 .../compiler/internal/codegen/js/jx/FieldEmitter.java  | 18 +++++++++---------
 .../codegen/mxml/royale/TestRoyaleMXMLScript.java      |  6 +++---
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
index 7e81916..6a056bb 100644
--- 
a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
+++ 
b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/FieldEmitter.java
@@ -183,18 +183,18 @@ public class FieldEmitter extends JSSubEmitter implements
                 writeNewline(ASEmitterTokens.SEMICOLON);
                 write(IASLanguageConstants.Object);
                 write(ASEmitterTokens.MEMBER_ACCESS);
-                write(JSEmitterTokens.DEFINE_PROPERTY);
+                write(JSEmitterTokens.DEFINE_PROPERTIES);
                 write(ASEmitterTokens.PAREN_OPEN);
                 write(className);
                 writeToken(ASEmitterTokens.COMMA);
-                write(ASEmitterTokens.SINGLE_QUOTE);
+                writeToken(ASEmitterTokens.BLOCK_OPEN);
                    writeFieldName(node, fjs);
-                write(ASEmitterTokens.SINGLE_QUOTE);
-                writeToken(ASEmitterTokens.COMMA);
+                writeToken(ASEmitterTokens.COLON);
                 if (node.isConst())
                        write("{ value: value, writable: false }");
                 else
-                       write("{ value: value, writable: true }");
+                    write("{ value: value, writable: true }");
+                write(ASEmitterTokens.BLOCK_CLOSE);
                 write(ASEmitterTokens.PAREN_CLOSE);
                 writeNewline(ASEmitterTokens.SEMICOLON);
                 writeToken(ASEmitterTokens.RETURN);
@@ -217,15 +217,15 @@ public class FieldEmitter extends JSSubEmitter implements
                        writeNewline(ASEmitterTokens.BLOCK_OPEN, true);
                        write(IASLanguageConstants.Object);
                        write(ASEmitterTokens.MEMBER_ACCESS);
-                       write(JSEmitterTokens.DEFINE_PROPERTY);
+                       write(JSEmitterTokens.DEFINE_PROPERTIES);
                        write(ASEmitterTokens.PAREN_OPEN);
                        write(className);
                        writeToken(ASEmitterTokens.COMMA);
-                       write(ASEmitterTokens.SINGLE_QUOTE);
+                    writeToken(ASEmitterTokens.BLOCK_OPEN);
                            writeFieldName(node, fjs);
-                       write(ASEmitterTokens.SINGLE_QUOTE);
-                       writeToken(ASEmitterTokens.COMMA);
+                       writeToken(ASEmitterTokens.COLON);
                        write("{ value: value, writable: true }");
+                    write(ASEmitterTokens.BLOCK_CLOSE);
                        write(ASEmitterTokens.PAREN_CLOSE);
                        indentPop();
                        writeNewline(ASEmitterTokens.SEMICOLON);
diff --git 
a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/royale/TestRoyaleMXMLScript.java
 
b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/royale/TestRoyaleMXMLScript.java
index cfd5acf..2cea553 100644
--- 
a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/royale/TestRoyaleMXMLScript.java
+++ 
b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/mxml/royale/TestRoyaleMXMLScript.java
@@ -370,11 +370,11 @@ public class TestRoyaleMXMLScript extends RoyaleTestBase
                                "\n" +
                                "AppName.get__foo = function() {\n" +
                                "  var value = 
org.apache.royale.events.CloseEvent.CLOSE;\n" +
-                               "  Object.defineProperty(AppName, 'foo', { 
value: value, writable: true });\n" +
+                               "  Object.defineProperties(AppName, { foo: { 
value: value, writable: true }});\n" +
                                "  return value;\n" +
                                "};\n" +
                                "AppName.set__foo = function(value) {\n" +
-                               "  Object.defineProperty(AppName, 'foo', { 
value: value, writable: true });\n" +
+                               "  Object.defineProperties(AppName, { foo: { 
value: value, writable: true }});\n" +
                                "};\n" +
                                "/**\n" +
                                " * @type {string}\n" +
@@ -668,7 +668,7 @@ public class TestRoyaleMXMLScript extends RoyaleTestBase
                                "\n" +
                                "AppName.get__foo = function() {\n" +
                                "  var value = 
org.apache.royale.events.CloseEvent.CLOSE;\n" +
-                               "  Object.defineProperty(AppName, 'foo', { 
value: value, writable: false });\n" +
+                               "  Object.defineProperties(AppName, { foo: { 
value: value, writable: false }});\n" +
                                "  return value;\n" +
                                "};\n" +
                                "/**\n" +

Reply via email to