You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ca...@apache.org on 2021/01/03 11:19:47 UTC
[royale-compiler] branch develop updated: Fix quoting when
getProperty() is added for indexed array syntax ([]) on Proxy using an
already-quoted value.
This is an automated email from the ASF dual-hosted git repository.
carlosrovira 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 2c4462f Fix quoting when getProperty() is added for indexed array syntax ([]) on Proxy using an already-quoted value.
new cefb26b Merge pull request #172 from estanglerbm/proxy-getproperty-quoting
2c4462f is described below
commit 2c4462f04bc4cce78c951b4b5a2151b62074791b
Author: Edward Stangler <es...@bradmark.com>
AuthorDate: Sun Jan 3 00:14:48 2021 -0600
Fix quoting when getProperty() is added for indexed array syntax ([]) on Proxy using an already-quoted value.
---
.../internal/codegen/js/jx/MemberAccessEmitter.java | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java
index 274cd4f..1a18c26 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/jx/MemberAccessEmitter.java
@@ -265,21 +265,33 @@ public class MemberAccessEmitter extends JSSubEmitter implements
{
writeLeftSide(node, leftNode, rightNode);
if (child)
- write(".getProperty('");
+ write(".getProperty(");
String s = fjs.stringifyNode(rightNode);
int dot = s.indexOf('.');
if (dot != -1)
{
String name = s.substring(0, dot);
String afterDot = s.substring(dot);
+ write("'");
write(name);
- write("')");
+ write("'");
+ write(")");
write(afterDot);
}
else
{
- write(s);
- write("')");
+ if ((s.startsWith("'") && s.endsWith("'")) || (s.startsWith("\"") && s.endsWith("\"")))
+ {
+ // already quoted
+ write(s);
+ }
+ else
+ {
+ write("'");
+ write(s);
+ write("'");
+ }
+ write(")");
}
return;
}