Hi Alex,

I'm wondering why you have switched to version "v20170626" instead of
newest "v20170806" ?

Thanks,
Piotr

2017-08-12 5:55 GMT+02:00 <aha...@apache.org>:

> Repository: flex-falcon
> Updated Branches:
>   refs/heads/develop 8d7e14740 -> 207a95872
>
>
> upgrade to Google Closure Compiler 20170626.  They deprecated a lot of
> APIs so lots of changes were required.  The primary change is that GCC is
> being more careful about checking that types match in the superclasses, so
> that required adding @type to the accessors
>
>
> Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
> Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/6331b80d
> Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/6331b80d
> Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/6331b80d
>
> Branch: refs/heads/develop
> Commit: 6331b80de71706429d3a73d3d103537efdd0943e
> Parents: 8d7e147
> Author: Alex Harui <aha...@apache.org>
> Authored: Thu Aug 10 22:48:16 2017 -0700
> Committer: Alex Harui <aha...@apache.org>
> Committed: Thu Aug 10 22:48:16 2017 -0700
>
> ----------------------------------------------------------------------
>  .../externals/pass/AbstractCompilerPass.java    |  2 +-
>  .../codegen/externals/pass/AddMemberPass.java   |  2 +-
>  .../externals/pass/CollectTypesPass.java        |  2 +-
>  .../externals/pass/NamespaceResolutionPass.java |  2 +-
>  .../externals/pass/ReferenceCompiler.java       |  5 ++-
>  .../internal/codegen/js/JSSessionModel.java     |  2 +
>  .../codegen/js/goog/JSGoogDocEmitter.java       |  7 +++-
>  .../internal/codegen/js/goog/JarSourceFile.java |  5 ---
>  .../internal/codegen/js/jx/AccessorEmitter.java | 44 ++++++++++++++------
>  compiler-jx/src/main/resources/downloads.xml    |  4 +-
>  .../codegen/externals/TestExternChrome.java     |  2 +-
>  .../js/flexjs/TestFlexJSAccessorMembers.java    | 24 +++++------
>  .../codegen/js/flexjs/TestFlexJSAccessors.java  | 14 +++----
>  .../codegen/js/flexjs/TestFlexJSClass.java      | 14 +++----
>  .../js/flexjs/TestFlexJSExpressions.java        |  2 +-
>  .../codegen/js/flexjs/TestFlexJSPackage.java    |  4 +-
>  .../flexjs/files/MyInitialView_result.js        | 16 +++++--
>  .../flexjs/files/models/MyModel_result.js       | 12 ++++--
>  .../flexjs/projects/super/Base_result.js        |  4 +-
>  .../flexjs/projects/super/Super_result.js       |  4 +-
>  20 files changed, 105 insertions(+), 66 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/AbstractCompilerPass.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/AbstractCompilerPass.java
> b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/AbstractCompilerPass.java
> index 9903fc2..0bf5966 100644
> --- a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/AbstractCompilerPass.java
> +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/AbstractCompilerPass.java
> @@ -52,7 +52,7 @@ public abstract class AbstractCompilerPass implements
> CompilerPass, Callback
>      public void process(Node externs, Node root)
>      {
>          //NodeTraversal.traverse(compiler, root, this);
> -        NodeTraversal.traverseRoots(compiler, this, externs, root);
> +        NodeTraversal.traverseRootsEs6(compiler, this, externs, root);
>      }
>
>      protected void log(Node n)
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/AddMemberPass.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/AddMemberPass.java
> b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/AddMemberPass.java
> index 732b9e9..64fc9a9 100644
> --- a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/AddMemberPass.java
> +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/AddMemberPass.java
> @@ -38,7 +38,7 @@ public class AddMemberPass extends AbstractCompilerPass
>      public boolean shouldTraverse(NodeTraversal nodeTraversal, Node n,
>              Node parent)
>      {
> -        return n.isBlock() || n.isScript();
> +        return n.isRoot() || n.isNormalBlock() || n.isScript();
>      }
>
>      @Override
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/CollectTypesPass.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/CollectTypesPass.java
> b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/CollectTypesPass.java
> index 44a9cc4..81e2ae2 100644
> --- a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/CollectTypesPass.java
> +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/CollectTypesPass.java
> @@ -37,7 +37,7 @@ public class CollectTypesPass extends
> AbstractCompilerPass
>      public boolean shouldTraverse(NodeTraversal nodeTraversal, Node n,
>              Node parent)
>      {
> -        return n.isBlock() || n.isScript();
> +        return n.isRoot() || n.isNormalBlock() || n.isScript();
>      }
>
>      @Override
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/NamespaceResolutionPass.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/NamespaceResolutionPass.java
> b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/NamespaceResolutionPass.java
> index 6270227..8a8ec24 100644
> --- a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/NamespaceResolutionPass.java
> +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/NamespaceResolutionPass.java
> @@ -42,7 +42,7 @@ public class NamespaceResolutionPass extends
> AbstractCompilerPass
>      public boolean shouldTraverse(NodeTraversal nodeTraversal, Node n,
>              Node parent)
>      {
> -        return n.isBlock() || n.isScript();
> +        return n.isRoot() || n.isNormalBlock() || n.isScript();
>      }
>
>      @Override
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/ReferenceCompiler.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/ReferenceCompiler.java
> b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/ReferenceCompiler.java
> index e941944..b2b6bdc 100644
> --- a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/ReferenceCompiler.java
> +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/externals/pass/ReferenceCompiler.java
> @@ -32,6 +32,7 @@ import org.apache.flex.compiler.
> internal.codegen.externals.reference.ReferenceMo
>  import com.google.javascript.jscomp.*;
>  import com.google.javascript.jscomp.Compiler;
>  import com.google.javascript.jscomp.CompilerOptions.LanguageMode;
> +import com.google.javascript.jscomp.parsing.Config;
>
>  public class ReferenceCompiler
>  {
> @@ -67,10 +68,10 @@ public class ReferenceCompiler
>          options.setLineLengthThreshold(80);
>          options.setPreferSingleQuotes(true);
>          options.setIdeMode(true);
> -        options.setParseJsDocDocumentation(true);
> +        options.setParseJsDocDocumentation(Config.JsDocParsing.INCLUDE_
> DESCRIPTIONS_NO_WHITESPACE);
>          options.setExternExports(false);
>          options.setExtraAnnotationNames(Arrays.asList(asdocTags));
> -        options.setLanguageIn(LanguageMode.ECMASCRIPT6_STRICT);
> +        options.setLanguageIn(LanguageMode.ECMASCRIPT_2015);
>          options.setLanguageIn(LanguageMode.ECMASCRIPT5_STRICT);
>
>          options.addCustomPass(CustomPassExecutionTime.BEFORE_OPTIMIZATIONS,
> new NamespaceResolutionPass(model,
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/JSSessionModel.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/JSSessionModel.java b/compiler-jx/src/main/java/
> org/apache/flex/compiler/internal/codegen/js/JSSessionModel.java
> index 3ace9e5..8ceb44d 100644
> --- a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/JSSessionModel.java
> +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/JSSessionModel.java
> @@ -26,6 +26,7 @@ import java.util.List;
>  import java.util.Stack;
>
>  import org.apache.flex.compiler.definitions.IClassDefinition;
> +import org.apache.flex.compiler.definitions.ITypeDefinition;
>  import org.apache.flex.compiler.tree.as.IFunctionNode;
>  import org.apache.flex.compiler.tree.as.IGetterNode;
>  import org.apache.flex.compiler.tree.as.ISetterNode;
> @@ -47,6 +48,7 @@ public class JSSessionModel
>      {
>          public IGetterNode getter;
>          public ISetterNode setter;
> +        public ITypeDefinition type;
>      }
>
>      public static class BindableVarInfo
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/goog/JSGoogDocEmitter.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/goog/JSGoogDocEmitter.java
> b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/goog/JSGoogDocEmitter.java
> index cd57e7a..332bc17 100644
> --- a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/goog/JSGoogDocEmitter.java
> +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/goog/JSGoogDocEmitter.java
> @@ -469,6 +469,11 @@ public class JSGoogDocEmitter extends JSDocEmitter
> implements IJSGoogDocEmitter
>
>      protected String convertASTypeToJS(String name, String pname)
>      {
> +       return convertASTypeToJSType(name, pname);
> +    }
> +
> +    public static String convertASTypeToJSType(String name, String pname)
> +    {
>          String result = "";
>
>          if (name.equals(""))
> @@ -488,7 +493,7 @@ public class JSGoogDocEmitter extends JSDocEmitter
> implements IJSGoogDocEmitter
>          {
>                 // is a vector so convert the element type
>                 String elementType = name.substring(8, name.length() - 1);
> -               elementType = convertASTypeToJS(elementType, pname);
> +               elementType = convertASTypeToJSType(elementType, pname);
>                 name = "Vector.<" + elementType + ">";
>          }
>          IASGlobalFunctionConstants.BuiltinType[] builtinTypes =
> IASGlobalFunctionConstants.BuiltinType
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/goog/JarSourceFile.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/goog/JarSourceFile.java b/compiler-jx/src/main/java/
> org/apache/flex/compiler/internal/codegen/js/goog/JarSourceFile.java
> index 5155aa0..ee0a89b 100644
> --- a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/goog/JarSourceFile.java
> +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/goog/JarSourceFile.java
> @@ -54,11 +54,6 @@ public class JarSourceFile extends SourceFile {
>      }
>
>      @Override
> -    public CharSource getCodeCharSource() {
> -        return CharSource.wrap(code);
> -    }
> -
> -    @Override
>      public Reader getCodeReader() throws IOException {
>          return new StringReader(code);
>      }
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/jx/AccessorEmitter.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/jx/AccessorEmitter.java b/compiler-jx/src/main/java/
> org/apache/flex/compiler/internal/codegen/js/jx/AccessorEmitter.java
> index c060381..19c16ae 100644
> --- a/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/jx/AccessorEmitter.java
> +++ b/compiler-jx/src/main/java/org/apache/flex/compiler/
> internal/codegen/js/jx/AccessorEmitter.java
> @@ -31,6 +31,7 @@ import org.apache.flex.compiler.definitions.
> IAccessorDefinition;
>  import org.apache.flex.compiler.definitions.IClassDefinition;
>  import org.apache.flex.compiler.definitions.IFunctionDefinition;
>  import org.apache.flex.compiler.definitions.INamespaceDefinition;
> +import org.apache.flex.compiler.definitions.IParameterDefinition;
>  import org.apache.flex.compiler.definitions.ITypeDefinition;
>  import org.apache.flex.compiler.definitions.metadata.IMetaTag;
>  import org.apache.flex.compiler.internal.codegen.as.ASEmitterTokens;
> @@ -40,7 +41,9 @@ import org.apache.flex.compiler.internal.codegen.js.
> JSSubEmitter;
>  import org.apache.flex.compiler.internal.codegen.js.flexjs.
> JSFlexJSDocEmitter;
>  import org.apache.flex.compiler.internal.codegen.js.flexjs.
> JSFlexJSEmitter;
>  import org.apache.flex.compiler.internal.codegen.js.flexjs.
> JSFlexJSEmitterTokens;
> +import org.apache.flex.compiler.internal.codegen.js.goog.
> JSGoogDocEmitter;
>  import org.apache.flex.compiler.internal.codegen.js.goog.
> JSGoogEmitterTokens;
> +import org.apache.flex.compiler.internal.projects.FlexJSProject;
>  import org.apache.flex.compiler.internal.semantics.SemanticUtils;
>  import org.apache.flex.compiler.internal.tree.as.FunctionNode;
>  import org.apache.flex.compiler.internal.tree.as.SetterNode;
> @@ -77,6 +80,10 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>      {
>          // TODO (mschmalle) will remove this cast as more things get
> abstracted
>          JSFlexJSEmitter fjs = (JSFlexJSEmitter) getEmitter();
> +        FlexJSProject project = (FlexJSProject)getWalker().getProject();
> +        boolean emitExports = true;
> +        if (project != null && project.config != null)
> +               emitExports = project.config.getExportPublicSymbols();
>
>          if (!getModel().getPropertyMap().isEmpty())
>          {
> @@ -98,7 +105,6 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                      if (fjs.isCustomNamespace((FunctionNode)getterNode))
>                      {
>                                 INamespaceDecorationNode ns =
> ((FunctionNode)getterNode).getActualNamespaceNode();
> -                        ICompilerProject project =
> getWalker().getProject();
>                                 INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                 
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                 String s = nsDef.getURI();
> @@ -161,7 +167,6 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                      if (fjs.isCustomNamespace((FunctionNode)setterNode))
>                      {
>                                 INamespaceDecorationNode ns =
> ((FunctionNode)setterNode).getActualNamespaceNode();
> -                        ICompilerProject project =
> getWalker().getProject();
>                                 INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                 
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                 String s = nsDef.getURI();
> @@ -276,12 +281,17 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                  PropertyNodes p = getModel().getPropertyMap().
> get(propName);
>                  IGetterNode getterNode = p.getter;
>                  ISetterNode setterNode = p.setter;
> -                writeNewline("/** @export */");
> +               writeNewline("/**");
> +                if (emitExports)
> +                       writeNewline("  * @export");
> +                if (p.type != null)
> +                       writeNewline("  * @type {"+JSGoogDocEmitter.
> convertASTypeToJSType(p.type.getBaseName(), p.type.getPackageName()) + "}
> */");
> +                else
> +                       writeNewline("  */");
>                  FunctionNode fnNode = getterNode != null ? (FunctionNode)
> getterNode : (FunctionNode) setterNode;
>                  if (fjs.isCustomNamespace(fnNode))
>                  {
>                                 INamespaceDecorationNode ns =
> fnNode.getActualNamespaceNode();
> -                    ICompilerProject project = getWalker().getProject();
>                                 INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                 
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                 String s = nsDef.getURI();
> @@ -304,7 +314,6 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                      if (fjs.isCustomNamespace((FunctionNode)getterNode))
>                      {
>                                 INamespaceDecorationNode ns =
> ((FunctionNode)getterNode).getActualNamespaceNode();
> -                        ICompilerProject project =
> getWalker().getProject();
>                                 INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                 
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                 String s = nsDef.getURI();
> @@ -338,7 +347,6 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                          if (fjs.isCustomNamespace((
> FunctionNode)setterNode))
>                          {
>                                         INamespaceDecorationNode ns =
> ((FunctionNode)setterNode).getActualNamespaceNode();
> -                            ICompilerProject project =
> getWalker().getProject();
>                                         INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                         
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                         String s = nsDef.getURI();
> @@ -367,7 +375,6 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                      if (fjs.isCustomNamespace((FunctionNode)setterNode))
>                      {
>                                 INamespaceDecorationNode ns =
> ((FunctionNode)setterNode).getActualNamespaceNode();
> -                        ICompilerProject project =
> getWalker().getProject();
>                                 INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                 
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                 String s = nsDef.getURI();
> @@ -402,7 +409,6 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                          if (fjs.isCustomNamespace((
> FunctionNode)getterNode))
>                          {
>                                         INamespaceDecorationNode ns =
> ((FunctionNode)getterNode).getActualNamespaceNode();
> -                            ICompilerProject project =
> getWalker().getProject();
>                                         INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                         
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                         String s = nsDef.getURI();
> @@ -440,7 +446,6 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                      if (fjs.isCustomNamespace((FunctionNode)getterNode))
>                      {
>                                 INamespaceDecorationNode ns =
> ((FunctionNode)getterNode).getActualNamespaceNode();
> -                        ICompilerProject project =
> getWalker().getProject();
>                                 INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                 
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                 String s = nsDef.getURI();
> @@ -471,7 +476,6 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                      if (fjs.isCustomNamespace((FunctionNode)setterNode))
>                      {
>                                 INamespaceDecorationNode ns =
> ((FunctionNode)setterNode).getActualNamespaceNode();
> -                        ICompilerProject project =
> getWalker().getProject();
>                                 INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                 
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                 String s = nsDef.getURI();
> @@ -526,7 +530,13 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                          propName);
>                  IGetterNode getterNode = p.getter;
>                  ISetterNode setterNode = p.setter;
> -                writeNewline("/** @export */");
> +               writeNewline("/**");
> +                if (emitExports)
> +                       writeNewline("  * @export");
> +                if (p.type != null)
> +                       writeNewline("  * @type {"+JSGoogDocEmitter.
> convertASTypeToJSType(p.type.getBaseName(), p.type.getPackageName()) + "}
> */");
> +                else
> +                       writeNewline("  */");
>                  write(propName);
>                  write(ASEmitterTokens.COLON);
>                  write(ASEmitterTokens.SPACE);
> @@ -541,7 +551,6 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                      if (fjs.isCustomNamespace((FunctionNode)getterNode))
>                      {
>                                 INamespaceDecorationNode ns =
> ((FunctionNode)getterNode).getActualNamespaceNode();
> -                        ICompilerProject project =
> getWalker().getProject();
>                                 INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                 
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                 String s = nsDef.getURI();
> @@ -566,7 +575,6 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>                      if (fjs.isCustomNamespace((FunctionNode)setterNode))
>                      {
>                                 INamespaceDecorationNode ns =
> ((FunctionNode)setterNode).getActualNamespaceNode();
> -                        ICompilerProject project =
> getWalker().getProject();
>                                 INamespaceDefinition nsDef =
> (INamespaceDefinition)ns.resolve(project);
>                                 
> fjs.formatQualifiedName(nsDef.getQualifiedName());
> // register with used names
>                                 String s = nsDef.getURI();
> @@ -605,6 +613,9 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>              map.put(name, p);
>          }
>          p.getter = node;
> +        ICompilerProject project = (ICompilerProject)getWalker().
> getProject();
> +        if (project != null)
> +               p.type = node.getDefinition().resolveReturnType(project);
>          FunctionNode fn = (FunctionNode) node;
>          fn.parseFunctionBody(fjs.getProblems());
>      }
> @@ -628,6 +639,13 @@ public class AccessorEmitter extends JSSubEmitter
> implements
>              map.put(name, p);
>          }
>          p.setter = node;
> +        ICompilerProject project = (ICompilerProject)getWalker().
> getProject();
> +        if (project != null)
> +        {
> +               IFunctionDefinition def = node.getDefinition();
> +               IParameterDefinition[] params = def.getParameters();
> +               p.type = params[0].resolveType(project);
> +        }
>          FunctionNode fn = (FunctionNode) node;
>          fn.parseFunctionBody(fjs.getProblems());
>
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/main/resources/downloads.xml
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/main/resources/downloads.xml
> b/compiler-jx/src/main/resources/downloads.xml
> index 9885ede..5e78c35 100644
> --- a/compiler-jx/src/main/resources/downloads.xml
> +++ b/compiler-jx/src/main/resources/downloads.xml
> @@ -80,7 +80,7 @@
>      </antcall>
>
>      <!--  closure -->
> -    <property name="closure.version" value="20161201"/>
> +    <property name="closure.version" value="20170626"/>
>      <property name="closure.name" value="closure-compiler-v${
> closure.version}"/>
>      <property name="closure.dest.name" value="compiler"/>
>      <property name="closure.dest.folder" value="google/closure-
> compiler"/>
> @@ -90,7 +90,7 @@
>        <param name="src.server" value="http://dl.google.com"/>
>        <param name="src.folder" value="closure-compiler"/>
>        <param name="src.filename" value="compiler-${closure.
> version}.zip"/>
> -      <param name="src.checksum" value="bcd640e9c9f756df4117af2066621f
> 89"/>
> +      <param name="src.checksum" value="c565b5a1e12aefa5968b42ea83ea6c
> 28"/>
>      </antcall>
>
>      <!--  commons-io -->
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/externals/TestExternChrome.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/externals/TestExternChrome.java
> b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/externals/TestExternChrome.java
> index d2582bb..9aafd07 100644
> --- a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/externals/TestExternChrome.java
> +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/externals/TestExternChrome.java
> @@ -67,7 +67,7 @@ public class TestExternChrome extends ExternalsTestBase
>                  "ChromeLoadTimes",
>                  "ChromeCsiInfo" };
>
> -        assertEquals(301, model.getClasses().size());
> +        assertEquals(322, model.getClasses().size());
>          for (String className : classes)
>          {
>              assertTrue(model.hasClass(className));
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSAccessorMembers.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSAccessorMembers.java
> b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSAccessorMembers.java
> index 4070eb8..3950cc3 100644
> --- a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSAccessorMembers.java
> +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSAccessorMembers.java
> @@ -39,7 +39,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n */\nFalconTest_A = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" +
>                                 "FalconTest_A.prototype.get__foo =
> function() {\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nget:
> FalconTest_A.prototype.get__foo}}\n);");
> +                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/**\n  * @export\n  * @type
> {number} */\nfoo: {\nget: FalconTest_A.prototype.get__foo}}\n);");
>      }
>
>      @Override
> @@ -51,7 +51,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n */\nFalconTest_A = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" +
>                                 "FalconTest_A.prototype.get__foo =
> function() {\n  return -1;\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nget:
> FalconTest_A.prototype.get__foo}}\n);");
> +                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/**\n  * @export\n  * @type
> {number} */\nfoo: {\nget: FalconTest_A.prototype.get__foo}}\n);");
>      }
>
>      @Override
> @@ -63,7 +63,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n */\nFalconTest_A = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" +
>                                 "FalconTest_A.prototype.get__foo =
> function() {\n  return -1;\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nget:
> FalconTest_A.prototype.get__foo}}\n);");
> +                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/**\n  * @export\n  * @type
> {number} */\nfoo: {\nget: FalconTest_A.prototype.get__foo}}\n);");
>      }
>
>      @Override
> @@ -75,7 +75,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n * @extends {A}\n */\nB =
> function() {\n  B.base(this, 'constructor');\n};\ngoog.inherits(B,
> A);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('B', B);\n\n\n" +
>                                 "B.prototype.get__foo = function() {\n
> return B.superClass_.get__foo.apply(this);\n};\n\n\n" +
> -                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/** @export */\nfoo: {\nget:
> B.prototype.get__foo}}\n);");
> +                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/**\n  * @export\n  * @type {number} */\nfoo: {\nget:
> B.prototype.get__foo}}\n);");
>      }
>
>      @Test
> @@ -86,7 +86,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n * @extends {A}\n */\nB =
> function() {\n  B.base(this, 'constructor');\n};\ngoog.inherits(B,
> A);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('B', B);\n\n\n" +
>                                 "B.prototype.get__foo = function() {\n
> return B.superClass_.get__foo.apply(this);\n};\n\n\n" +
> -                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/** @export */\nfoo: {\nget:
> B.prototype.get__foo,\nset: A.prototype.set__foo}}\n);");
> +                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/**\n  * @export\n  * @type {number} */\nfoo: {\nget:
> B.prototype.get__foo,\nset: A.prototype.set__foo}}\n);");
>      }
>
>      @Override
> @@ -98,7 +98,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n */\nFalconTest_A = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" +
>                                 "FalconTest_A.get__foo = function() {\n
> return -1;\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A, /** @lends
> {FalconTest_A} */ {\n/** @export */\nfoo: {\nget:
> FalconTest_A.get__foo}}\n);");
> +                       "Object.defineProperties(FalconTest_A, /** @lends
> {FalconTest_A} */ {\n/**\n  * @export\n  * @type {number} */\nfoo: {\nget:
> FalconTest_A.get__foo}}\n);");
>      }
>
>      @Override
> @@ -110,7 +110,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n */\nFalconTest_A = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" +
>                                 "FalconTest_A.prototype.set__foo =
> function(value) {\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nset:
> FalconTest_A.prototype.set__foo}}\n);");
> +                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/**\n  * @export\n  * @type
> {number} */\nfoo: {\nset: FalconTest_A.prototype.set__foo}}\n);");
>      }
>
>      @Override
> @@ -122,7 +122,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n */\nFalconTest_A = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" +
>                                 "FalconTest_A.prototype.set__foo =
> function(value) {\n  fetch('haai');\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nset:
> FalconTest_A.prototype.set__foo}}\n);");
> +                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/**\n  * @export\n  * @type
> {number} */\nfoo: {\nset: FalconTest_A.prototype.set__foo}}\n);");
>      }
>
>      @Override
> @@ -134,7 +134,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n */\nFalconTest_A = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" +
>                                 "FalconTest_A.prototype.set__foo =
> function(value) {\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nfoo: {\nset:
> FalconTest_A.prototype.set__foo}}\n);");
> +                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/**\n  * @export\n  * @type
> {number} */\nfoo: {\nset: FalconTest_A.prototype.set__foo}}\n);");
>      }
>
>      @Override
> @@ -146,7 +146,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n * @extends {A}\n */\nB =
> function() {\n  B.base(this, 'constructor');\n};\ngoog.inherits(B,
> A);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('B', B);\n\n\n" +
>                                 "B.prototype.set__foo = function(value)
> {\n  B.superClass_.set__foo.apply(this, [ value] );\n};\n\n\n" +
> -                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/** @export */\nfoo: {\nset:
> B.prototype.set__foo}}\n);");
> +                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/**\n  * @export\n  * @type {number} */\nfoo: {\nset:
> B.prototype.set__foo}}\n);");
>      }
>
>      @Override
> @@ -158,7 +158,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n */\nFalconTest_A = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('FalconTest_A', FalconTest_A);\n\n\n" +
>                                 "FalconTest_A.set__foo = function(value)
> {\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A, /** @lends
> {FalconTest_A} */ {\n/** @export */\nfoo: {\nset:
> FalconTest_A.set__foo}}\n);");
> +                       "Object.defineProperties(FalconTest_A, /** @lends
> {FalconTest_A} */ {\n/**\n  * @export\n  * @type {number} */\nfoo: {\nset:
> FalconTest_A.set__foo}}\n);");
>      }
>
>      @Test
> @@ -169,7 +169,7 @@ public class TestFlexJSAccessorMembers extends
> TestGoogAccessorMembers
>          asBlockWalker.visitClass(node);
>          assertOut("/**\n * @constructor\n * @extends {A}\n */\nB =
> function() {\n  B.base(this, 'constructor');\n};\ngoog.inherits(B,
> A);\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('B', B);\n\n\n" +
>                                 "B.prototype.set__foo = function(value)
> {\n  B.superClass_.set__foo.apply(this, [ value] );\n};\n\n\n" +
> -                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/** @export */\nfoo: {\nget:
> A.prototype.get__foo,\nset: B.prototype.set__foo}}\n);");
> +                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/**\n  * @export\n  * @type {number} */\nfoo: {\nget:
> A.prototype.get__foo,\nset: B.prototype.set__foo}}\n);");
>      }
>
>      @Override
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSAccessors.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSAccessors.java
> b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSAccessors.java
> index 93a6e09..32d7f58 100644
> --- a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSAccessors.java
> +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSAccessors.java
> @@ -49,7 +49,7 @@ public class TestFlexJSAccessors extends ASTestBase
>          String expected = "/**\n * @constructor\n */\nFalconTest_A =
> function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for
> reflection.\n */\ngoog.exportSymbol('FalconTest_A',
> FalconTest_A);\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff
> = function() {\n  this.label = 'hello, bye';\n  var /** @type {string} */
> theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n
> */\nFalconTest_A.prototype._label;\n\n\n" +
>                         "FalconTest_A.prototype.get__label = function()
> {\n  return this._label;\n};\n\n\n" +
>                         "FalconTest_A.prototype.set__label =
> function(value) {\n  this._label = value;\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/** @export */\n" +
> +                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/**\n  * @export\n  * @type
> {string} */\n" +
>                         "label: {\nget: 
> FalconTest_A.prototype.get__label,\nset:
> FalconTest_A.prototype.set__label}}\n);";
>          assertOut(expected);
>      }
> @@ -64,7 +64,7 @@ public class TestFlexJSAccessors extends ASTestBase
>          String expected = "/**\n * @constructor\n */\nB = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('B', B);\n\n\n/**\n * @export\n
> */\nB.prototype.doStuff = function() {\n  this.label = this.label +
> 'bye';\n  var /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n *
> @private\n * @type {string}\n */\nB.prototype._label;\n\n\n" +
>                                 "B.prototype.get__label = function() {\n
> return this._label;\n};\n\n\n" +
>                                 "B.prototype.set__label = function(value)
> {\n  this._label = value;\n};\n\n\n" +
> -                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/** @export */\nlabel: {\n" +
> +                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/**\n  * @export\n  * @type {string} */\nlabel: {\n" +
>                         "get: B.prototype.get__label,\nset:
> B.prototype.set__label}}\n);";
>          assertOut(expected);
>      }
> @@ -79,7 +79,7 @@ public class TestFlexJSAccessors extends ASTestBase
>          String expected = "/**\n * @constructor\n */\nFalconTest_A =
> function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for
> reflection.\n */\ngoog.exportSymbol('FalconTest_A',
> FalconTest_A);\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff
> = function() {\n  this.label = this.label + 'bye';\n  var /** @type
> {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type
> {string}\n */\nFalconTest_A.prototype._label;\n\n\n" +
>                                 "FalconTest_A.prototype.get__label =
> function() {\n  return this._label;\n};\n\n\n" +
>                                 "FalconTest_A.prototype.set__label =
> function(value) {\n  this._label = value;\n};\n\n\n" +
> -                               
> "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/** @export */\nlabel: {\n" +
> +                               
> "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/**\n  * @export\n  * @type
> {string} */\nlabel: {\n" +
>                                 "get: FalconTest_A.prototype.get__label,\nset:
> FalconTest_A.prototype.set__label}}\n);";
>          assertOut(expected);
>      }
> @@ -94,7 +94,7 @@ public class TestFlexJSAccessors extends ASTestBase
>          String expected = "/**\n * @constructor\n */\nB = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('B', B);\n\n\n/**\n * @export\n
> */\nB.prototype.doStuff = function() {\n  this.label = this.label;\n  var
> /** @type {string} */ theLabel = this.label;\n};\n\n\n/**\n * @private\n *
> @type {string}\n */\nB.prototype._label;\n\n\n" +
>                                 "B.prototype.get__label = function() {\n
> return this._label;\n};\n\n\n" +
>                                 "B.prototype.set__label = function(value)
> {\n  this._label = value;\n};\n\n\n" +
> -                               "Object.defineProperties(B.prototype, /**
> @lends {B.prototype} */ {\n/** @export */\nlabel: {\n" +
> +                               "Object.defineProperties(B.prototype, /**
> @lends {B.prototype} */ {\n/**\n  * @export\n  * @type {string} */\nlabel:
> {\n" +
>                                 "get: B.prototype.get__label,\nset:
> B.prototype.set__label}}\n);";
>          assertOut(expected);
>      }
> @@ -109,7 +109,7 @@ public class TestFlexJSAccessors extends ASTestBase
>          String expected = "/**\n * @constructor\n */\nB = function()
> {\n};\n\n\n/**\n * Prevent renaming of class. Needed for reflection.\n
> */\ngoog.exportSymbol('B', B);\n\n\n/**\n * @export\n
> */\nB.prototype.doStuff = function() {\n  var /** @type {string} */
> theLabel = this[\"http://www.adobe.com/2006/actionscript/flash/proxy:
> :label\"];\n  this[\"http://www.adobe.com/2006/actionscript/flash/proxy:
> :label\"] = theLabel;\n};\n\n\n/**\n * @private\n * @type {string}\n
> */\nB.prototype._label;\n\n\n" +
>                                 "B.prototype[\"http://www.
> adobe.com/2006/actionscript/flash/proxy::get__label\"] = function() {\n
> return this._label;\n};\n\n\n" +
>                                 "B.prototype[\"http://www.
> adobe.com/2006/actionscript/flash/proxy::set__label\"] = function(value)
> {\n  this._label = value;\n};\n\n\n" +
> -                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/** @export */\n\"http://www.adobe.com/
> 2006/actionscript/flash/proxy::label\": {\nget: B.prototype[\"http://www.
> adobe.com/2006/actionscript/flash/proxy::get__label\"],\nset:
> B.prototype[\"http://www.adobe.com/2006/actionscript/
> flash/proxy::set__label\"]}}\n);";
> +                       "Object.defineProperties(B.prototype, /** @lends
> {B.prototype} */ {\n/**\n  * @export\n  * @type {string} */\n\"
> http://www.adobe.com/2006/actionscript/flash/proxy::label\": {\nget:
> B.prototype[\"http://www.adobe.com/2006/actionscript/
> flash/proxy::get__label\"],\nset: B.prototype[\"http://www.
> adobe.com/2006/actionscript/flash/proxy::set__label\"]}}\n);";
>          assertOut(expected);
>      }
>
> @@ -126,7 +126,7 @@ public class TestFlexJSAccessors extends ASTestBase
>                         "FalconTest_A.prototype.set__label =
> function(value) {\nvar oldValue = this.get__label();\nif (oldValue !=
> value) {\nthis.bindable__set__label(value);\n" +
>                         "    this.dispatchEvent(org.apache.
> flex.events.ValueChangeEvent.createUpdateEvent(\n" +
>                         "         this, \"label\", oldValue,
> value));\n}\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/** @export */\n" +
> +                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/**\n  * @export\n  * @type
> {string} */\n" +
>                         "label: {\nget: 
> FalconTest_A.prototype.get__label,\nset:
> FalconTest_A.prototype.set__label}}\n);";
>          assertOut(expected);
>      }
> @@ -141,7 +141,7 @@ public class TestFlexJSAccessors extends ASTestBase
>          String expected = "/**\n * @constructor\n */\nFalconTest_A =
> function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for
> reflection.\n */\ngoog.exportSymbol('FalconTest_A',
> FalconTest_A);\n\n\n/**\n * @export\n */\nFalconTest_A.prototype.doStuff
> = function() {\n  this.label = 'hello, bye';\n  var /** @type {string} */
> theLabel = this.label;\n};\n\n\n/**\n * @private\n * @type {string}\n
> */\nFalconTest_A.prototype._label;\n\n\n" +
>                                 "FalconTest_A.prototype.get__label =
> function() {\n  return this._label;\n};\n\n\n" +
>                                 "FalconTest_A.prototype.set__label =
> function(value) {\n  this._label = value;\n};\n\n\n" +
> -                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/** @export */\n" +
> +                       "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n/**\n  * @export\n  * @type
> {string} */\n" +
>                         "label: {\nget: 
> FalconTest_A.prototype.get__label,\nset:
> FalconTest_A.prototype.set__label}}\n);";
>          assertOut(expected);
>      }
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSClass.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSClass.java
> b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSClass.java
> index fbb1c41..83d727f 100644
> --- a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSClass.java
> +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSClass.java
> @@ -180,7 +180,7 @@ public class TestFlexJSClass extends TestGoogClass
>      {
>          IClassNode node = getClassNode("public class B {public function
> B() {}; public function set baz(value:Object):void {}; public function set
> foo(value:Object):void {baz = value;};}");
>          asBlockWalker.visitClass(node);
> -        String expected = "/**\n * @constructor\n */\norg.apache.flex.B =
> function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for
> reflection.\n */\ngoog.exportSymbol('org.apache.flex.B',
> org.apache.flex.B);\n\n\norg.apache.flex.B.prototype.set__baz =
> function(value) {\n};\n\n\norg.apache.flex.B.prototype.set__foo =
> function(value) {\n  this.baz = value;\n};\n\n\nObject.
> defineProperties(org.apache.flex.B.prototype, /** @lends
> {org.apache.flex.B.prototype} */ {\n/** @export */\nbaz: {\nset:
> org.apache.flex.B.prototype.set__baz},\n/** @export */\nfoo: {\nset:
> org.apache.flex.B.prototype.set__foo}}\n);";
> +        String expected = "/**\n * @constructor\n */\norg.apache.flex.B =
> function() {\n};\n\n\n/**\n * Prevent renaming of class. Needed for
> reflection.\n */\ngoog.exportSymbol('org.apache.flex.B',
> org.apache.flex.B);\n\n\norg.apache.flex.B.prototype.set__baz =
> function(value) {\n};\n\n\norg.apache.flex.B.prototype.set__foo =
> function(value) {\n  this.baz = value;\n};\n\n\nObject.
> defineProperties(org.apache.flex.B.prototype, /** @lends
> {org.apache.flex.B.prototype} */ {\n/**\n  * @export\n  * @type {Object}
> */\nbaz: {\nset: org.apache.flex.B.prototype.set__baz},\n/**\n  *
> @export\n  * @type {Object} */\nfoo: {\nset: org.apache.flex.B.prototype.
> set__foo}}\n);";
>          assertOut(expected);
>      }
>
> @@ -189,7 +189,7 @@ public class TestFlexJSClass extends TestGoogClass
>      {
>          IClassNode node = getClassNode("public class B extends A {public
> function B() {}; override public function set foo(value:Object):void
> {super.foo = value;};} class A {public function set foo(value:Object):void
> {}}");
>          asBlockWalker.visitClass(node);
> -        String expected = "/**\n * @constructor\n * @extends
> {org.apache.flex.A}\n */\norg.apache.flex.B = function() {\n
> org.apache.flex.B.base(this, 
> 'constructor');\n};\ngoog.inherits(org.apache.flex.B,
> org.apache.flex.A);\n\n\n/**\n * Prevent renaming of class. Needed for
> reflection.\n */\ngoog.exportSymbol('org.apache.flex.B',
> org.apache.flex.B);\n\n\norg.apache.flex.B.prototype.set__foo =
> function(value) {\n  org.apache.flex.B.superClass_.set__foo.apply(this, [
> value] );\n};\n\n\nObject.defineProperties(org.apache.flex.B.prototype,
> /** @lends {org.apache.flex.B.prototype} */ {\n/** @export */\nfoo: {\nset:
> org.apache.flex.B.prototype.set__foo}}\n);";
> +        String expected = "/**\n * @constructor\n * @extends
> {org.apache.flex.A}\n */\norg.apache.flex.B = function() {\n
> org.apache.flex.B.base(this, 
> 'constructor');\n};\ngoog.inherits(org.apache.flex.B,
> org.apache.flex.A);\n\n\n/**\n * Prevent renaming of class. Needed for
> reflection.\n */\ngoog.exportSymbol('org.apache.flex.B',
> org.apache.flex.B);\n\n\norg.apache.flex.B.prototype.set__foo =
> function(value) {\n  org.apache.flex.B.superClass_.set__foo.apply(this, [
> value] );\n};\n\n\nObject.defineProperties(org.apache.flex.B.prototype,
> /** @lends {org.apache.flex.B.prototype} */ {\n/**\n  * @export\n  * @type
> {Object} */\nfoo: {\nset: org.apache.flex.B.prototype.set__foo}}\n);";
>          assertOut(expected);
>      }
>
> @@ -511,11 +511,11 @@ public class TestFlexJSClass extends TestGoogClass
>                         "org.apache.flex.A.prototype.set__foo5 =
> function(value) {\n};\n\n\n" +
>                         "org.apache.flex.A.prototype[\"
> http://www.adobe.com/2006/actionscript/flash/proxy::get__foo6\";] =
> function() {\n  return null;\n};\n\n\n" +
>                         "org.apache.flex.A.prototype[\"
> http://www.adobe.com/2006/actionscript/flash/proxy::set__foo6\";] =
> function(value) {\n};\n\n\n" +
> -                       "Object.defineProperties(org.apache.flex.A.prototype,
> /** @lends {org.apache.flex.A.prototype} */ {\n/** @export */\n" +
> -                           "foo1: {\nget: 
> org.apache.flex.A.prototype.get__foo1,\nset:
> org.apache.flex.A.prototype.set__foo1},\n/** @export */\n" +
> -                           "foo2: {\nget: 
> org.apache.flex.A.prototype.get__foo2,\nset:
> org.apache.flex.A.prototype.set__foo2},\n/** @export */\n" +
> -                           "foo3: {\nget: 
> org.apache.flex.A.prototype.get__foo3,\nset:
> org.apache.flex.A.prototype.set__foo3},\n/** @export */\n" +
> -                           "foo5: {\nget: 
> org.apache.flex.A.prototype.get__foo5,\nset:
> org.apache.flex.A.prototype.set__foo5},\n/** @export */\n" +
> +                       "Object.defineProperties(org.apache.flex.A.prototype,
> /** @lends {org.apache.flex.A.prototype} */ {\n/**\n  * @export\n  * @type
> {Object} */\n" +
> +                           "foo1: {\nget: 
> org.apache.flex.A.prototype.get__foo1,\nset:
> org.apache.flex.A.prototype.set__foo1},\n/**\n  * @export\n  * @type
> {Object} */\n" +
> +                           "foo2: {\nget: 
> org.apache.flex.A.prototype.get__foo2,\nset:
> org.apache.flex.A.prototype.set__foo2},\n/**\n  * @export\n  * @type
> {Object} */\n" +
> +                           "foo3: {\nget: 
> org.apache.flex.A.prototype.get__foo3,\nset:
> org.apache.flex.A.prototype.set__foo3},\n/**\n  * @export\n  * @type
> {Object} */\n" +
> +                           "foo5: {\nget: 
> org.apache.flex.A.prototype.get__foo5,\nset:
> org.apache.flex.A.prototype.set__foo5},\n/**\n  * @export\n  * @type
> {Object} */\n" +
>                             "\"http://www.adobe.com/2006/
> actionscript/flash/proxy::foo6\": {\nget: org.apache.flex.A.prototype[\"
> http://www.adobe.com/2006/actionscript/flash/proxy::get__foo6\"],\n"; +
>
>
>   "set: org.apache.flex.A.prototype[\"http://www.adobe.com/2006/
> actionscript/flash/proxy::set__foo6\"]}}\n);");
>      }
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSExpressions.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSExpressions.java
> b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSExpressions.java
> index dc28b6b..8b93413 100644
> --- a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSExpressions.java
> +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSExpressions.java
> @@ -102,7 +102,7 @@ public class TestFlexJSExpressions extends
> TestGoogExpressions
>                           "  return FalconTest_A.superClass_.
> isDefaultPrevented.apply(this);\n" +
>                           "};\n\n\n" +
>                           "Object.defineProperties(FalconTest_A.prototype,
> /** @lends {FalconTest_A.prototype} */ {\n" +
> -                         "/** @export */\n" +
> +                         "/**\n  * @export\n  * @type {boolean} */\n" +
>                           "defaultPrevented: {\nget:
> FalconTest_A.prototype.get__defaultPrevented}}\n);");
>      }
>
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSPackage.java
> ----------------------------------------------------------------------
> diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSPackage.java
> b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSPackage.java
> index 360b875..86022ff 100644
> --- a/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSPackage.java
> +++ b/compiler-jx/src/test/java/org/apache/flex/compiler/
> internal/codegen/js/flexjs/TestFlexJSPackage.java
> @@ -794,7 +794,7 @@ public class TestFlexJSPackage extends TestGoogPackage
>                           "\n" +
>                           "\n" +
>                           "Object.defineProperties(foo.bar.baz.A.prototype,
> /** @lends {foo.bar.baz.A.prototype} */ {\n" +
> -                  "/** @export */\n" +
> +                  "/**\n  * @export\n  * @type {string} */\n" +
>                    "myString: {\n" +
>                    "get: foo.bar.baz.A.prototype.get__myString,\n" +
>                    "set: foo.bar.baz.A.prototype.set__myString}}\n" +
> @@ -850,7 +850,7 @@ public class TestFlexJSPackage extends TestGoogPackage
>                           "\n" +
>                           "\n" +
>                           "Object.defineProperties(foo.
> bar.baz.A.InternalClass.prototype, /** @lends
> {foo.bar.baz.A.InternalClass.prototype} */ {\n" +
> -                  "/** @export */\n" +
> +                  "/**\n  * @export\n  * @type {string} */\n" +
>                    "someString: {\n" +
>                    "get: 
> foo.bar.baz.A.InternalClass.prototype.get__someString,\n"
> +
>                    "set: 
> foo.bar.baz.A.InternalClass.prototype.set__someString}}\n"
> +
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/test/resources/flexjs/files/
> MyInitialView_result.js
> ----------------------------------------------------------------------
> diff --git 
> a/compiler-jx/src/test/resources/flexjs/files/MyInitialView_result.js
> b/compiler-jx/src/test/resources/flexjs/files/MyInitialView_result.js
> index 7fe3836..ae55d78 100644
> --- a/compiler-jx/src/test/resources/flexjs/files/MyInitialView_result.js
> +++ b/compiler-jx/src/test/resources/flexjs/files/MyInitialView_result.js
> @@ -269,16 +269,24 @@ MyInitialView.prototype.get__comboBoxValue =
> function() {
>
>
>  Object.defineProperties(MyInitialView.prototype, /** @lends
> {MyInitialView.prototype} */ {
> -/** @export */
> +/**
> +  * @export
> +  * @type {string} */
>  symbol: {
>  get: MyInitialView.prototype.get__symbol},
> -/** @export */
> +/**
> +  * @export
> +  * @type {string} */
>  city: {
>  get: MyInitialView.prototype.get__city},
> -/** @export */
> +/**
> +  * @export
> +  * @type {string} */
>  inputText: {
>  get: MyInitialView.prototype.get__inputText},
> -/** @export */
> +/**
> +  * @export
> +  * @type {string} */
>  comboBoxValue: {
>  get: MyInitialView.prototype.get__comboBoxValue}}
>  );/**
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/test/resources/flexjs/files/models/
> MyModel_result.js
> ----------------------------------------------------------------------
> diff --git 
> a/compiler-jx/src/test/resources/flexjs/files/models/MyModel_result.js
> b/compiler-jx/src/test/resources/flexjs/files/models/MyModel_result.js
> index ab547d7..041d254 100644
> --- a/compiler-jx/src/test/resources/flexjs/files/models/MyModel_result.js
> +++ b/compiler-jx/src/test/resources/flexjs/files/models/MyModel_result.js
> @@ -90,14 +90,20 @@ models.MyModel.prototype.get__cities = function() {
>
>
>  Object.defineProperties(models.MyModel.prototype, /** @lends
> {models.MyModel.prototype} */ {
> -/** @export */
> +/**
> +  * @export
> +  * @type {string} */
>  labelText: {
>  get: models.MyModel.prototype.get__labelText,
>  set: models.MyModel.prototype.set__labelText},
> -/** @export */
> +/**
> +  * @export
> +  * @type {Array} */
>  strings: {
>  get: models.MyModel.prototype.get__strings},
> -/** @export */
> +/**
> +  * @export
> +  * @type {Array} */
>  cities: {
>  get: models.MyModel.prototype.get__cities}}
>  );
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/test/resources/flexjs/projects/
> super/Base_result.js
> ----------------------------------------------------------------------
> diff --git 
> a/compiler-jx/src/test/resources/flexjs/projects/super/Base_result.js
> b/compiler-jx/src/test/resources/flexjs/projects/super/Base_result.js
> index 720e39c..3c712ac 100644
> --- a/compiler-jx/src/test/resources/flexjs/projects/super/Base_result.js
> +++ b/compiler-jx/src/test/resources/flexjs/projects/super/Base_result.js
> @@ -54,7 +54,9 @@ Base.prototype.set__text = function(value) {
>
>
>  Object.defineProperties(Base.prototype, /** @lends {Base.prototype} */ {
> -/** @export */
> +/**
> +  * @export
> +  * @type {string} */
>  text: {
>  get: Base.prototype.get__text,
>  set: Base.prototype.set__text}}
>
> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/
> 6331b80d/compiler-jx/src/test/resources/flexjs/projects/
> super/Super_result.js
> ----------------------------------------------------------------------
> diff --git 
> a/compiler-jx/src/test/resources/flexjs/projects/super/Super_result.js
> b/compiler-jx/src/test/resources/flexjs/projects/super/Super_result.js
> index d77b6b2..53d1d2d 100644
> --- a/compiler-jx/src/test/resources/flexjs/projects/super/Super_result.js
> +++ b/compiler-jx/src/test/resources/flexjs/projects/super/Super_result.js
> @@ -56,7 +56,9 @@ Super.prototype.set__text = function(value) {
>
>
>  Object.defineProperties(Super.prototype, /** @lends {Super.prototype} */
> {
> -/** @export */
> +/**
> +  * @export
> +  * @type {string} */
>  text: {
>  get: Super.prototype.get__text,
>  set: Super.prototype.set__text}}
>
>

Reply via email to