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) {
