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;
}