Repository: flex-falcon
Updated Branches:
  refs/heads/develop 9107d0682 -> fa2f16f5c


FLEX-34995 handle fully qualified references to static methods


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

Branch: refs/heads/develop
Commit: fa2f16f5c444e8f57e41ec05a3b1af02bc6efa63
Parents: 9107d06
Author: Alex Harui <[email protected]>
Authored: Wed Dec 23 22:30:20 2015 -0800
Committer: Alex Harui <[email protected]>
Committed: Wed Dec 23 22:30:20 2015 -0800

----------------------------------------------------------------------
 .../internal/codegen/js/flexjs/TestFlexJSExpressions.java | 10 ++++++++++
 .../compiler/internal/codegen/js/goog/JSGoogEmitter.java  |  1 +
 2 files changed, 11 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/fa2f16f5/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
 
b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
index 3ae3c4b..c1804cf 100644
--- 
a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
+++ 
b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
@@ -627,6 +627,16 @@ public class TestFlexJSExpressions extends 
TestGoogExpressions
     }
     
     @Test
+    public void testStaticMethodAsVariableFullyQualified()
+    {
+        IFunctionNode node = (IFunctionNode) getNode(
+                "public class B {static public function b() { function 
c(f:Function):void {}; var f:Function = foo.bar.B.b; c(f); }}",
+                IFunctionNode.class, WRAP_LEVEL_PACKAGE, true);
+        asBlockWalker.visitFunction(node);
+        assertOut("/**\n * @export\n */\nfoo.bar.B.b = function() {\n  
function c(f) {\n  };\n  var /** @type {Function} */ f = foo.bar.B.b;\n  
c(f);\n}");
+    }
+    
+    @Test
     public void testMethodAsAssign()
     {
         IFunctionNode node = (IFunctionNode) getNode(

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/fa2f16f5/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
index 7354ef6..152d7be 100644
--- 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
+++ 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
@@ -871,6 +871,7 @@ public class JSGoogEmitter extends JSEmitter implements 
IJSGoogEmitter
                        // AJH need Language.bind here and maybe not require
                // that the node is a MemberAccessExpression
                if (definition instanceof FunctionDefinition &&
+                               !((FunctionDefinition)definition).isStatic() &&
                                (!(definition instanceof AccessorDefinition)) &&
                                node instanceof MemberAccessExpressionNode)
                {

Reply via email to