Repository: flex-falcon Updated Branches: refs/heads/develop 3b19a0737 -> 24bc50946
FLEX-34985 - better handling of is/as scenarios Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/24bc5094 Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/24bc5094 Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/24bc5094 Branch: refs/heads/develop Commit: 24bc509464a72dadc8fd35ceecd30976a0233151 Parents: 3b19a07 Author: Alex Harui <[email protected]> Authored: Mon Dec 21 12:03:19 2015 -0800 Committer: Alex Harui <[email protected]> Committed: Mon Dec 21 12:03:19 2015 -0800 ---------------------------------------------------------------------- .../internal/codegen/js/flexjs/TestFlexJSExpressions.java | 10 ++++++++++ .../flex/compiler/internal/codegen/js/jx/AsIsEmitter.java | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/24bc5094/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 bae2d0c..21d65a1 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 @@ -833,6 +833,16 @@ public class TestFlexJSExpressions extends TestGoogExpressions } @Test + public void testVisitAsMemberVariable() + { + IFunctionNode node = (IFunctionNode) getNode( + "public class B {private var memberVar:Class; public function b(o:Object):int { var a:B; a = o as memberVar; }}", + IFunctionNode.class, WRAP_LEVEL_PACKAGE, true); + asBlockWalker.visitFunction(node); + assertOut("/**\n * @export\n * @param {Object} o\n * @return {number}\n */\nfoo.bar.B.prototype.b = function(o) {\n var /** @type {foo.bar.B} */ a;\n a = org.apache.flex.utils.Language.as(o, this.memberVar);\n}"); + } + + @Test public void testVisitJSDoc() { IFunctionNode node = (IFunctionNode) getNode( http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/24bc5094/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/AsIsEmitter.java ---------------------------------------------------------------------- diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/AsIsEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/AsIsEmitter.java index 3ee2fb8..540f558 100644 --- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/AsIsEmitter.java +++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/AsIsEmitter.java @@ -25,6 +25,7 @@ import org.apache.flex.compiler.definitions.IDefinition; import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens; import org.apache.flex.compiler.internal.codegen.js.JSSubEmitter; import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSEmitterTokens; +import org.apache.flex.compiler.internal.definitions.ClassDefinition; import org.apache.flex.compiler.internal.projects.FlexJSProject; import org.apache.flex.compiler.projects.ICompilerProject; import org.apache.flex.compiler.tree.ASTNodeID; @@ -103,7 +104,7 @@ public class AsIsEmitter extends JSSubEmitter getWalker().walk(left); writeToken(ASEmitterTokens.COMMA); - if (dnode != null) + if (dnode instanceof ClassDefinition) write(getEmitter().formatQualifiedName(dnode.getQualifiedName())); else getWalker().walk(right);
