You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/04/12 19:44:14 UTC

git commit: [flex-falcon] [refs/heads/develop] - FLEX-35074 handle more XML cases

Repository: flex-falcon
Updated Branches:
  refs/heads/develop 33821939f -> 12b324767


FLEX-35074 handle more XML cases


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/12b32476
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/12b32476
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/12b32476

Branch: refs/heads/develop
Commit: 12b32476756adffee98a89c0efb65c03750e75aa
Parents: 3382193
Author: Alex Harui <ah...@apache.org>
Authored: Tue Apr 12 10:44:17 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Apr 12 10:44:17 2016 -0700

----------------------------------------------------------------------
 .../internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java  | 8 ++++++++
 .../compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java | 8 ++++++++
 2 files changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/12b32476/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
index d219506..0edd621 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
@@ -523,6 +523,14 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses
     }
     
     @Test
+    public void testXMLListSetAttribute()
+    {
+        IBinaryOperatorNode node = getBinaryNode("var a:XMLList;a[1].@bar = 'foo'");
+        asBlockWalker.visitBinaryOperator(node);
+        assertOut("a[1].setAttribute('bar', 'foo')");
+    }
+    
+    @Test
     public void testXMLSetChild()
     {
         IBinaryOperatorNode node = getBinaryNode("var a:XML = new XML(\"<top attr1='cat'><child attr2='dog'><grandchild attr3='fish'>text</grandchild></child></top>\");a.foo = a.child");

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/12b32476/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
index cde30e8..d345277 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
@@ -909,6 +909,14 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
 			if (fname.equals("XML") || fname.equals("XMLList"))
 				return true;
 		}
+		else if (leftID == ASTNodeID.ArrayIndexExpressionID)
+		{
+			leftNode = (IExpressionNode)(leftNode.getChild(0));
+			IDefinition leftDef = leftNode.resolveType(getWalker().getProject());
+			if (leftDef != null)
+				return IdentifierNode.isXMLish(leftDef, getWalker().getProject());
+
+		}
     	return false;
     }