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 2015/12/21 21:03:46 UTC

git commit: [flex-falcon] [refs/heads/develop] - FLEX-34985 - better handling of is/as scenarios

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 <ah...@apache.org>
Authored: Mon Dec 21 12:03:19 2015 -0800
Committer: Alex Harui <ah...@apache.org>
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);