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/feature/amf Commit: 6331b80de71706429d3a73d3d103537efdd0943e Parents: 8d7e147 Author: Alex Harui <[email protected]> Authored: Thu Aug 10 22:48:16 2017 -0700 Committer: Alex Harui <[email protected]> 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="bcd640e9c9f756df4117af2066621f89"/> + <param name="src.checksum" value="c565b5a1e12aefa5968b42ea83ea6c28"/> </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}}
