Repository: flex-falcon Updated Branches: refs/heads/master 3ff63e3ec -> 6b2d67420
improve handling of XML function Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/daf3a340 Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/daf3a340 Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/daf3a340 Branch: refs/heads/master Commit: daf3a340bc220a17e0a1df94be789f827ff9fcb1 Parents: f5d0e2a Author: Alex Harui <aha...@apache.org> Authored: Fri Aug 5 22:28:18 2016 -0700 Committer: Alex Harui <aha...@apache.org> Committed: Fri Aug 5 22:28:18 2016 -0700 ---------------------------------------------------------------------- .../internal/codegen/js/jx/FunctionCallEmitter.java | 4 +++- .../codegen/js/flexjs/TestFlexJSGlobalClasses.java | 4 ++-- .../codegen/js/flexjs/TestFlexJSGlobalFunctions.java | 13 +++++++++++-- 3 files changed, 16 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/daf3a340/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/FunctionCallEmitter.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/FunctionCallEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/FunctionCallEmitter.java index 19d35d8..0d34a3d 100644 --- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/FunctionCallEmitter.java +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/FunctionCallEmitter.java @@ -101,7 +101,9 @@ public class FunctionCallEmitter extends JSSubEmitter implements ISubEmitter<IFu def = node.getNameNode().resolve(getProject()); isClassCast = (def instanceof ClassDefinition || def instanceof InterfaceDefinition) - && !(NativeUtils.isJSNative(def.getBaseName())); + && !(NativeUtils.isJSNative(def.getBaseName())) + && !def.getBaseName().equals(IASLanguageConstants.XML) + && !def.getBaseName().equals(IASLanguageConstants.XMLList); } if (node.isNewExpression()) http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/daf3a340/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 504674f..5e2d3a9 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 @@ -421,7 +421,7 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses { IUnaryOperatorNode node = getUnaryNode("var a:XML = new XML(\"<top attr1='cat'><child attr2='dog'><grandchild attr3='fish'>text</grandchild></child></top>\");var b:Object = { xml: a};delete XML(b.xml).child.grandchild;"); asBlockWalker.visitUnaryOperator(node); - assertOut("org.apache.flex.utils.Language.as(b.xml, XML, true).child('child').removeChild('grandchild')"); + assertOut("XML(b.xml).child('child').removeChild('grandchild')"); } @Test @@ -462,7 +462,7 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses { IUnaryOperatorNode node = getUnaryNode("var a:XML = new XML(\"<top attr1='cat'><child attr2='dog'><grandchild attr3='fish'>text</grandchild></child></top>\");var b:Object = { xml: a};delete XML(b.xml).child.grandchild[0];"); asBlockWalker.visitUnaryOperator(node); - assertOut("org.apache.flex.utils.Language.as(b.xml, XML, true).child('child').child('grandchild').removeChildAt(0)"); + assertOut("XML(b.xml).child('child').child('grandchild').removeChildAt(0)"); } @Test http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/daf3a340/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java ---------------------------------------------------------------------- diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java index f1be070..578ecfc 100644 --- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java @@ -22,6 +22,8 @@ package org.apache.flex.compiler.internal.codegen.js.flexjs; import org.apache.flex.compiler.driver.IBackend; import org.apache.flex.compiler.internal.codegen.js.goog.TestGoogGlobalFunctions; import org.apache.flex.compiler.internal.driver.js.flexjs.FlexJSBackend; +import org.apache.flex.compiler.internal.driver.js.goog.JSGoogConfiguration; +import org.apache.flex.compiler.internal.projects.FlexJSProject; import org.apache.flex.compiler.tree.as.IBinaryOperatorNode; import org.apache.flex.compiler.tree.as.IFunctionCallNode; import org.apache.flex.compiler.tree.as.IVariableNode; @@ -34,6 +36,15 @@ import org.junit.Test; public class TestFlexJSGlobalFunctions extends TestGoogGlobalFunctions { @Override + public void setUp() + { + project = new FlexJSProject(workspace); + ((FlexJSProject)project).config = new JSGoogConfiguration(); + project.setProxyBaseClass("flash.utils.Proxy"); + super.setUp(); + } + + @Override @Test public void testArray() { @@ -183,7 +194,6 @@ public class TestFlexJSGlobalFunctions extends TestGoogGlobalFunctions assertOut("var /** @type {Array} */ a = ['Hello', 'World'].slice()"); } - @Ignore @Override @Test public void testXML() @@ -201,7 +211,6 @@ public class TestFlexJSGlobalFunctions extends TestGoogGlobalFunctions assertOut("var /** @type {XML} */ a = XML('@')"); } - @Ignore @Override @Test public void testXMLList()