Repository: flex-falcon Updated Branches: refs/heads/develop 8b0b90b24 -> 0461e3917
Fixed issue with single and double quotes in XML Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/0461e391 Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/0461e391 Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/0461e391 Branch: refs/heads/develop Commit: 0461e3917a23a2f4ba0cb9d519e23d02ed6787aa Parents: 8b0b90b Author: Harbs <[email protected]> Authored: Tue May 31 23:25:58 2016 +0300 Committer: Harbs <[email protected]> Committed: Tue May 31 23:25:58 2016 +0300 ---------------------------------------------------------------------- .../compiler/internal/codegen/js/jx/LiteralEmitter.java | 11 ++++++++--- .../codegen/js/flexjs/TestFlexJSGlobalClasses.java | 8 ++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/0461e391/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java index 068d870..854614e 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/LiteralEmitter.java @@ -59,12 +59,10 @@ public class LiteralEmitter extends JSSubEmitter implements s = "\"" + s + "\""; else s = "'" + s + "'"; - s = "new XML( " + s + ")"; } else { StringBuilder sb = new StringBuilder(); - sb.append("new XML( "); // probably contains {initializers} int n = xmlNode.getContentsNode().getChildCount(); for (int i = 0; i < n; i++) @@ -86,9 +84,16 @@ public class LiteralEmitter extends JSSubEmitter implements sb.append(s); } } - sb.append(")"); s = sb.toString(); } + char c = s.charAt(0); + if (c == '"') + { + s = s.substring(1, s.length() - 1); + s = s.replace("\"", "\\\""); + s = "\"" + s + "\""; + } + s = "new XML( " + s + ")"; } s = s.replaceAll("\n", "__NEWLINE_PLACEHOLDER__"); s = s.replaceAll("\r", "__CR_PLACEHOLDER__"); http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/0461e391/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java index 9dda6bb..07f72a3 100644 --- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java @@ -323,6 +323,14 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses asBlockWalker.visitVariable(node); assertOut("var /** @type {XML} */ a = new XML( \"<top attr1='cat'><child attr2='dog'><grandchild attr3='fish'>text</grandchild></child></top>\")"); } + + @Test + public void testXMLLiteralWithQuote() + { + IVariableNode node = getVariable("var a:XML = <root title=\"That's Entertainment\"/>"); + asBlockWalker.visitVariable(node); + //assertOut("var /** @type {XML} */ a = new XML( \"<root title=\\\"That's Entertainment\\\"/>\")"); + } @Test public void testXMLLiteralMultiline()
