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/10/30 07:53:04 UTC

[1/4] git commit: [flex-falcon] [refs/heads/develop] - suppress warning when we call super.getElementAt from . GCL currently thinks that is bad

Repository: flex-falcon
Updated Branches:
  refs/heads/develop 6c27fbe2b -> b288371af


suppress warning when we call super.getElementAt from .  GCL currently thinks that is bad


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

Branch: refs/heads/develop
Commit: fdef1577cf3b48312d0ea821864c0856dd637576
Parents: 6c27fbe
Author: Alex Harui <ah...@apache.org>
Authored: Thu Oct 29 23:24:14 2015 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Oct 29 23:24:14 2015 -0700

----------------------------------------------------------------------
 .../com/google/javascript/jscomp/FlexJSDiagnosticGroups.java  | 7 +++++++
 .../apache/flex/compiler/utils/JSClosureCompilerWrapper.java  | 1 +
 2 files changed, 8 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/fdef1577/compiler.jx/src/com/google/javascript/jscomp/FlexJSDiagnosticGroups.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/com/google/javascript/jscomp/FlexJSDiagnosticGroups.java b/compiler.jx/src/com/google/javascript/jscomp/FlexJSDiagnosticGroups.java
index c08f865..e28cfe7 100644
--- a/compiler.jx/src/com/google/javascript/jscomp/FlexJSDiagnosticGroups.java
+++ b/compiler.jx/src/com/google/javascript/jscomp/FlexJSDiagnosticGroups.java
@@ -34,6 +34,13 @@ public class FlexJSDiagnosticGroups {
 		DiagnosticGroups.registerGroup("flexjsNotAConstructor",
                 TypeCheck.NOT_A_CONSTRUCTOR);
 
+	/**
+	 * Flex code calls super.methodName from functions other than
+	 * overrides of the methodName.
+	 */
+	public static final DiagnosticGroup FLEXJS_SUPER_CALL_TO_DIFFERENT_NAME =
+		DiagnosticGroups.registerGroup("flexjsSuperCallToDifferentName",
+                ProcessClosurePrimitives.BASE_CLASS_ERROR);
 	/*
 	public static final DiagnosticGroup FLEXJS_REFERENCE_BEFORE_DECLARE =
 		DiagnosticGroups.registerGroup("flexjsReferenceBeforeDeclare",

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/fdef1577/compiler.jx/src/org/apache/flex/compiler/utils/JSClosureCompilerWrapper.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/utils/JSClosureCompilerWrapper.java b/compiler.jx/src/org/apache/flex/compiler/utils/JSClosureCompilerWrapper.java
index 456c7f7..f2d0fae 100644
--- a/compiler.jx/src/org/apache/flex/compiler/utils/JSClosureCompilerWrapper.java
+++ b/compiler.jx/src/org/apache/flex/compiler/utils/JSClosureCompilerWrapper.java
@@ -279,6 +279,7 @@ public class JSClosureCompilerWrapper
             // create custom DiagnosticGroups to shut off some individual warnings when we
             // still want warnings for others in the group.
             options_.setWarningLevel(FlexJSDiagnosticGroups.FLEXJS_NOT_A_CONSTRUCTOR, CheckLevel.OFF);
+            options_.setWarningLevel(FlexJSDiagnosticGroups.FLEXJS_SUPER_CALL_TO_DIFFERENT_NAME, CheckLevel.OFF);
 //            options_.setWarningLevel(FlexJSDiagnosticGroups.FLEXJS_REFERENCE_BEFORE_DECLARE, CheckLevel.OFF);
         }
         


[2/4] git commit: [flex-falcon] [refs/heads/develop] - fix package names

Posted by ah...@apache.org.
fix package names


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

Branch: refs/heads/develop
Commit: 5bc14625e213e6fb3f62f524b3b80671d063bd23
Parents: fdef157
Author: Alex Harui <ah...@apache.org>
Authored: Thu Oct 29 23:24:53 2015 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Oct 29 23:24:53 2015 -0700

----------------------------------------------------------------------
 .../flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java   | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/5bc14625/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java
index 52945de..ce9f1c6 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/InterfaceEmitter.java
@@ -21,6 +21,7 @@ package org.apache.flex.compiler.internal.codegen.js.jx;
 
 import org.apache.flex.compiler.codegen.ISubEmitter;
 import org.apache.flex.compiler.codegen.js.IJSEmitter;
+import org.apache.flex.compiler.definitions.ITypeDefinition;
 import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens;
 import org.apache.flex.compiler.internal.codegen.js.JSDocEmitterTokens;
 import org.apache.flex.compiler.internal.codegen.js.JSEmitterTokens;
@@ -85,7 +86,8 @@ public class InterfaceEmitter extends JSSubEmitter implements
                 	IAccessorNode accessor = (IAccessorNode)mnode;
                 	String propType = accessor.getVariableType();
                 	IExpressionNode typeNode = accessor.getVariableTypeNode();
-                	String packageName = typeNode.getPackageName();
+                	ITypeDefinition typeDef = typeNode.resolveType(project);
+                	String packageName = typeDef.getPackageName();
                 	packageName = project.getActualPackageName(packageName);
                     write(JSDocEmitterTokens.JSDOC_OPEN);
                     write(ASEmitterTokens.SPACE);


[4/4] git commit: [flex-falcon] [refs/heads/develop] - don't output jsdoc for @param and @return when @override

Posted by ah...@apache.org.
don't output jsdoc for @param and @return when @override


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

Branch: refs/heads/develop
Commit: b288371af8f00107c26899de7b50f4f960f3fca4
Parents: 17a7733
Author: Alex Harui <ah...@apache.org>
Authored: Thu Oct 29 23:54:54 2015 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Oct 29 23:54:54 2015 -0700

----------------------------------------------------------------------
 .../codegen/js/flexjs/TestFlexJSClass.java      |   4 +-
 .../js/flexjs/TestFlexJSMethodMembers.java      |   4 +-
 .../codegen/js/flexjs/JSFlexJSDocEmitter.java   | 106 ++++++++++---------
 3 files changed, 61 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b288371a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
index 6e029eb..801b9f6 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
@@ -135,7 +135,7 @@ public class TestFlexJSClass extends TestGoogClass
     {
         IClassNode node = getClassNode("public class B {public function B() {}; override public function foo(value:Object):void {baz = ''};}");
         asBlockWalker.visitClass(node);
-        String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @export\n * @param {Object} value\n * @override\n */\norg.apache.flex.B.prototype.foo = function(value) {\n  baz = '';\n};";
+        String expected = "/**\n * @constructor\n */\norg.apache.flex.B = function() {\n};\n\n\n/**\n * @export\n * @override\n */\norg.apache.flex.B.prototype.foo = function(value) {\n  baz = '';\n};";
         assertOut(expected);
     }
 
@@ -232,7 +232,7 @@ public class TestFlexJSClass extends TestGoogClass
                 + "public static function foo7(value:Object):void{}"
                 + "foo_bar static function foo7(value:Object):void{}" + "}");
         asBlockWalker.visitClass(node);
-        assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1 = function() {\n  return null;\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1a = function() {\n  return null;\n};\n\n\n/**\n * @export\n * @return {Object}\n * @override\n */\norg.apache.flex.A.prototype.foo1b = function() {\n  return org.apache.flex.A.base(this, 'foo1b');\n};\n\n\n/**\n * @protected\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo2 = function(value) {\n};\n\n\n/**\n * @private\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo3 = function(value) {\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo5 = function(value) {\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo6 = function(value) {\n};\n\n\n/**\n * @export\n * @param {Object} value\n */\norg.apache.flex.A.foo7 = function(value) {\n
 };\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.foo7 = function(value) {\n};");
+        assertOut("/**\n * @constructor\n */\norg.apache.flex.A = function() {\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1 = function() {\n  return null;\n};\n\n\n/**\n * @export\n * @return {Object}\n */\norg.apache.flex.A.prototype.foo1a = function() {\n  return null;\n};\n\n\n/**\n * @export\n * @override\n */\norg.apache.flex.A.prototype.foo1b = function() {\n  return org.apache.flex.A.base(this, 'foo1b');\n};\n\n\n/**\n * @protected\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo2 = function(value) {\n};\n\n\n/**\n * @private\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo3 = function(value) {\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo5 = function(value) {\n};\n\n\n/**\n * @param {Object} value\n */\norg.apache.flex.A.prototype.foo6 = function(value) {\n};\n\n\n/**\n * @export\n * @param {Object} value\n */\norg.apache.flex.A.foo7 = function(value) {\n};\n\n\n/**\n * @para
 m {Object} value\n */\norg.apache.flex.A.foo7 = function(value) {\n};");
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b288371a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSMethodMembers.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSMethodMembers.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSMethodMembers.java
index 33ffae0..5f6256d 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSMethodMembers.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSMethodMembers.java
@@ -178,7 +178,7 @@ public class TestFlexJSMethodMembers extends TestGoogMethodMembers
     {
         IFunctionNode node = getMethod("public override function foo(bar:String, baz:int = null):int{  return -1;}");
         asBlockWalker.visitFunction(node);
-        assertOut("/**\n * @export\n * @param {string} bar\n * @param {number=} baz\n * @return {number}\n * @override\n */\nFalconTest_A.prototype.foo = function(bar, baz) {\n  baz = typeof baz !== 'undefined' ? baz : null;\n  return -1;\n}");
+        assertOut("/**\n * @export\n * @override\n */\nFalconTest_A.prototype.foo = function(bar, baz) {\n  baz = typeof baz !== 'undefined' ? baz : null;\n  return -1;\n}");
     }
 
     @Override
@@ -187,7 +187,7 @@ public class TestFlexJSMethodMembers extends TestGoogMethodMembers
     {
         IFunctionNode node = getMethod("override public function foo(bar:String, baz:int = null):int{return -1;}");
         asBlockWalker.visitFunction(node);
-        assertOut("/**\n * @export\n * @param {string} bar\n * @param {number=} baz\n * @return {number}\n * @override\n */\nFalconTest_A.prototype.foo = function(bar, baz) {\n  baz = typeof baz !== 'undefined' ? baz : null;\n  return -1;\n}");
+        assertOut("/**\n * @export\n * @override\n */\nFalconTest_A.prototype.foo = function(bar, baz) {\n  baz = typeof baz !== 'undefined' ? baz : null;\n  return -1;\n}");
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b288371a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
index 4bae36d..5c555a1 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
@@ -110,7 +110,8 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
         if (node instanceof IFunctionNode)
         {
             boolean hasDoc = false;
-
+            Boolean override = false;
+            
             if (node.isConstructor())
             {
                 if (asDoc != null && MXMLJSC.keepASDoc)
@@ -149,6 +150,9 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
             }
             else
             {
+                // @override
+                override = node.hasModifier(ASModifier.OVERRIDE);
+
                 String ns = node.getNamespace();
                 if (ns != null)
                 {
@@ -168,58 +172,62 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
                 }
             }
 
-            // @param
-            IParameterNode[] parameters = node.getParameterNodes();
-            for (IParameterNode pnode : parameters)
+            if (!override)
             {
-                if (!hasDoc)
-                {
-                    if (asDoc != null && MXMLJSC.keepASDoc)
-                        write(changeAnnotations(asDoc.commentNoEnd()));
-                    else
-                        begin();
-                    emitMethodAccess(node);
-                    hasDoc = true;
-                }
-
-                IExpressionNode enode = pnode.getNameExpressionNode();
-
-                // ToDo (erikdebruin): add VF2JS conditional -> only use check during full SDK compilation
-                ITypeDefinition tdef = enode.resolveType(project);
-                if (tdef == null)
-                    continue;
-
-                emitParam(pnode, project.getActualPackageName(tdef.getPackageName()));
+	            // @param
+	            IParameterNode[] parameters = node.getParameterNodes();
+	            for (IParameterNode pnode : parameters)
+	            {
+	                if (!hasDoc)
+	                {
+	                    if (asDoc != null && MXMLJSC.keepASDoc)
+	                        write(changeAnnotations(asDoc.commentNoEnd()));
+	                    else
+	                        begin();
+	                    emitMethodAccess(node);
+	                    hasDoc = true;
+	                }
+	
+	                IExpressionNode enode = pnode.getNameExpressionNode();
+	
+	                // ToDo (erikdebruin): add VF2JS conditional -> only use check during full SDK compilation
+	                ITypeDefinition tdef = enode.resolveType(project);
+	                if (tdef == null)
+	                    continue;
+	
+	                emitParam(pnode, project.getActualPackageName(tdef.getPackageName()));
+	            }
             }
-
+            
             if (!node.isConstructor())
             {
-                // @return
-                String returnType = node.getReturnType();
-                if (returnType != ""
-                        && returnType != ASEmitterTokens.VOID.getToken())
-                {
-                    if (!hasDoc)
-                    {
-                        if (asDoc != null && MXMLJSC.keepASDoc)
-                            write(changeAnnotations(asDoc.commentNoEnd()));
-                        else
-                            begin();
-                        emitMethodAccess(node);
-                        hasDoc = true;
-                    }
-
-                    ITypeDefinition tdef = ((IFunctionDefinition) node
-                            .getDefinition()).resolveReturnType(project);
-
-                    String packageName = "";
-                    packageName = tdef != null ? tdef.getPackageName() : "";
-
-                    emitReturn(node, project.getActualPackageName(packageName));
-                }
-
-                // @override
-                Boolean override = node.hasModifier(ASModifier.OVERRIDE);
+            	if (!override)
+            	{
+	                // @return
+	                String returnType = node.getReturnType();
+	                if (returnType != ""
+	                        && returnType != ASEmitterTokens.VOID.getToken())
+	                {
+	                    if (!hasDoc)
+	                    {
+	                        if (asDoc != null && MXMLJSC.keepASDoc)
+	                            write(changeAnnotations(asDoc.commentNoEnd()));
+	                        else
+	                            begin();
+	                        emitMethodAccess(node);
+	                        hasDoc = true;
+	                    }
+	
+	                    ITypeDefinition tdef = ((IFunctionDefinition) node
+	                            .getDefinition()).resolveReturnType(project);
+	
+	                    String packageName = "";
+	                    packageName = tdef != null ? tdef.getPackageName() : "";
+	
+	                    emitReturn(node, project.getActualPackageName(packageName));
+	                }
+            	}
+            	
                 if (override)
                 {
                     if (!hasDoc)


[3/4] git commit: [flex-falcon] [refs/heads/develop] - swap out Vector for Array

Posted by ah...@apache.org.
swap out Vector for Array


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

Branch: refs/heads/develop
Commit: 17a773303b9a334a62b09bb8b4d70d412e4f7293
Parents: 5bc1462
Author: Alex Harui <ah...@apache.org>
Authored: Thu Oct 29 23:25:07 2015 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Thu Oct 29 23:25:07 2015 -0700

----------------------------------------------------------------------
 .../internal/codegen/js/flexjs/TestFlexJSExpressions.java    | 2 +-
 .../internal/codegen/js/flexjs/TestFlexJSFieldMembers.java   | 4 ++--
 .../internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java  | 8 ++++----
 .../codegen/js/flexjs/TestFlexJSGlobalFunctions.java         | 2 +-
 .../internal/codegen/js/flexjs/JSFlexJSDocEmitter.java       | 3 +++
 5 files changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/17a77330/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 f880cf3..fdb40ec 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
@@ -694,7 +694,7 @@ public class TestFlexJSExpressions extends TestGoogExpressions
                 IFunctionNode.class, WRAP_LEVEL_PACKAGE, true);
         asBlockWalker.visitFunction(node);
         // String.length is a getter but is a property in JS, so don't generate set_length() call.
-        assertOut("/**\n * @export\n * @return {number}\n */\nfoo.bar.B.prototype.b = function() {\n  var /** @type {Vector.<string>} */ a;\n  return a.length;\n}");
+        assertOut("/**\n * @export\n * @return {number}\n */\nfoo.bar.B.prototype.b = function() {\n  var /** @type {Array} */ a;\n  return a.length;\n}");
     }
 
     //----------------------------------

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/17a77330/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSFieldMembers.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSFieldMembers.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSFieldMembers.java
index 820cd51..84f652e 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSFieldMembers.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSFieldMembers.java
@@ -98,7 +98,7 @@ public class TestFlexJSFieldMembers extends TestGoogFieldMembers
     {
         IVariableNode node = getField("protected var foo:Vector.<Foo>;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @protected\n * @type {Vector.<Foo>}\n */\nFalconTest_A.prototype.foo");
+        assertOut("/**\n * @protected\n * @type {Array}\n */\nFalconTest_A.prototype.foo");
     }
 
     @Override
@@ -107,7 +107,7 @@ public class TestFlexJSFieldMembers extends TestGoogFieldMembers
     {
         IVariableNode node = getField("protected var foo:Vector.<Vector.<Vector.<Foo>>>;");
         asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @protected\n * @type {Vector.<Vector.<Vector.<Foo>>>}\n */\nFalconTest_A.prototype.foo");
+        assertOut("/**\n * @protected\n * @type {Array}\n */\nFalconTest_A.prototype.foo");
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/17a77330/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
index 8b70393..37529e9 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalClasses.java
@@ -53,7 +53,7 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses
     {
         IVariableNode node = getVariable("var a:Vector.<String> = new Vector.<String>(['Hello', 'World']);");
         asBlockWalker.visitVariable(node);
-        assertOut("var /** @type {Vector.<string>} */ a = new Array(['Hello', 'World'])");
+        assertOut("var /** @type {Array} */ a = new Array(['Hello', 'World'])");
     }
 
     @Test
@@ -61,7 +61,7 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses
     {
         IVariableNode node = getVariable("var a:Vector.<String> = new <String>[];");
         asBlockWalker.visitVariable(node);
-        assertOut("var /** @type {Vector.<string>} */ a = []");
+        assertOut("var /** @type {Array} */ a = []");
     }
 
     @Test
@@ -69,7 +69,7 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses
     {
         IVariableNode node = getVariable("var a:Vector.<int> = new <int>[0, 1, 2, 3];");
         asBlockWalker.visitVariable(node);
-        assertOut("var /** @type {Vector.<int>} */ a = [0, 1, 2, 3]");
+        assertOut("var /** @type {Array} */ a = [0, 1, 2, 3]");
     }
 
     @Test
@@ -77,6 +77,6 @@ public class TestFlexJSGlobalClasses extends TestGoogGlobalClasses
     {
         IVariableNode node = getVariable("var a:Vector.<String> = new <String>[\"one\", \"two\", \"three\";");
         asBlockWalker.visitVariable(node);
-        assertOut("var /** @type {Vector.<string>} */ a = [\"one\", \"two\", \"three\"]");
+        assertOut("var /** @type {Array} */ a = [\"one\", \"two\", \"three\"]");
     }
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/17a77330/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java
index 298ef08..0ba898e 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSGlobalFunctions.java
@@ -84,7 +84,7 @@ public class TestFlexJSGlobalFunctions extends TestGoogGlobalFunctions
     {
         IVariableNode node = getVariable("var a:Vector.<String> = Vector.<String>(['Hello', 'World']);");
         asBlockWalker.visitVariable(node);
-        assertOut("var /** @type {Vector.<string>} */ a = Array(['Hello', 'World'])");
+        assertOut("var /** @type {Array} */ a = Array(['Hello', 'World'])");
     }
 
     @Ignore

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/17a77330/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
index 4a3a613..4bae36d 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
@@ -78,6 +78,9 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
             if (classIgnoreList.contains(pname + "." + name))
                 return IASLanguageConstants.Object;
         }
+        if (name.matches("Vector\\.<.*>"))
+        	return IASLanguageConstants.Array;
+        
         name = super.convertASTypeToJS(name, pname);
         return formatQualifiedName(name);
     }