You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by jo...@apache.org on 2016/04/20 01:36:35 UTC
[1/4] git commit: [flex-falcon] [refs/heads/develop] - externc: add
ability to handle methods declared without = function() by detecting if param
or returns JSDoc is present
Repository: flex-falcon
Updated Branches:
refs/heads/develop e6409b279 -> 15e753a7c
externc: add ability to handle methods declared without = function() by detecting if param or returns JSDoc is present
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/4ed67a8f
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/4ed67a8f
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/4ed67a8f
Branch: refs/heads/develop
Commit: 4ed67a8fed775a92d0d7dcd998aabbb2f7fd10fd
Parents: e6409b2
Author: Josh Tynjala <jo...@apache.org>
Authored: Tue Apr 19 16:06:22 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Tue Apr 19 16:06:22 2016 -0700
----------------------------------------------------------------------
.../codegen/externals/pass/AddMemberPass.java | 43 +++++++++++++++++++-
.../externals/reference/MethodReference.java | 33 ++++++++++++++-
.../externals/reference/ParameterReference.java | 6 +++
.../codegen/externals/utils/FunctionUtils.java | 2 +-
4 files changed, 81 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/4ed67a8f/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/AddMemberPass.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/AddMemberPass.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/AddMemberPass.java
index 8379af9..9308ff0 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/AddMemberPass.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/AddMemberPass.java
@@ -23,6 +23,7 @@ import org.apache.flex.compiler.internal.codegen.externals.reference.ReferenceMo
import com.google.javascript.jscomp.AbstractCompiler;
import com.google.javascript.jscomp.NodeTraversal;
+import com.google.javascript.rhino.JSDocInfo;
import com.google.javascript.rhino.Node;
public class AddMemberPass extends AbstractCompilerPass
@@ -80,7 +81,19 @@ public class AddMemberPass extends AbstractCompilerPass
}
else if (first.isGetProp())
{
- visitGetProp(t, first);
+ JSDocInfo jsDocInfo = first.getJSDocInfo();
+ if (jsDocInfo != null
+ && (jsDocInfo.getParameterCount() > 0
+ || jsDocInfo.getReturnType() != null))
+ {
+ // instance or static method that isn't declared as a
+ // function, but has @param or @returns
+ visitMethodFromJSDoc(t, first);
+ }
+ else
+ {
+ visitGetProp(t, first);
+ }
}
}
}
@@ -119,6 +132,34 @@ public class AddMemberPass extends AbstractCompilerPass
log(n);
}
}
+ private void visitMethodFromJSDoc(NodeTraversal t, Node n)
+ {
+ String qName = n.getQualifiedName();
+
+ if (n.isGetProp())
+ {
+ int protoType = qName.indexOf(".prototype.");
+ if (protoType != -1)
+ {
+ String className = qName.substring(0, protoType);
+ String memberName = qName.substring(protoType + 11,
+ qName.length());
+ model.addMethod(n, className, memberName);
+ }
+ else
+ {
+ String className = qName.substring(0, qName.lastIndexOf("."));
+ String memberName = qName.substring(qName.lastIndexOf(".") + 1,
+ qName.length());
+ model.addStaticMethod(n, className, memberName);
+ }
+ }
+ else if (n.isName())
+ {
+ err("visitMethod() non impl");
+ log(n);
+ }
+ }
private void visitGetProp(NodeTraversal t, Node n)
{
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/4ed67a8f/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/MethodReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/MethodReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/MethodReference.java
index 96aa9f2..6cfbadf 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/MethodReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/MethodReference.java
@@ -28,6 +28,7 @@ import org.apache.flex.compiler.internal.codegen.externals.utils.FunctionUtils;
import com.google.common.collect.Lists;
import com.google.javascript.rhino.JSDocInfo;
+import com.google.javascript.rhino.JSTypeExpression;
import com.google.javascript.rhino.Node;
import com.google.javascript.rhino.jstype.JSType;
@@ -122,6 +123,20 @@ public class MethodReference extends MemberReference
parameters.add(parameterReference);
}
}
+ else if(comment.getParameterCount() > 0 || comment.getReturnType() != null)
+ {
+ for (int i = 0; i < comment.getParameterCount(); i++)
+ {
+ String parameterName = comment.getParameterNameAt(i);
+ String qualifiedName = FunctionUtils.toParameterType(this, parameterName);
+ ParameterReference parameterReference = new ParameterReference(getModel(), parameterName, qualifiedName);
+ parameters.add(parameterReference);
+ }
+ }
+ else
+ {
+ System.out.println(getQualifiedName() + " parameters not found! " + " " + comment.getParameterCount());
+ }
}
@Override
@@ -300,7 +315,23 @@ public class MethodReference extends MemberReference
private String toParameterString()
{
- return FunctionUtils.toParameterString(getContext(), getContext().getComment(), paramNode, outputJS);
+ if (paramNode != null)
+ {
+ return FunctionUtils.toParameterString(getContext(), getContext().getComment(), paramNode, outputJS);
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append("(");
+ int len = comment.getParameterCount();
+ for (int i = 0; i < len; i++)
+ {
+ String parameterName = comment.getParameterNameAt(i);
+ JSTypeExpression parameterType = comment.getParameterType(i);
+ sb.append(FunctionUtils.toParameter(getContext(), comment, parameterName, parameterType, outputJS));
+ if (i < len - 1)
+ sb.append(", ");
+ }
+ sb.append(")");
+ return sb.toString();
}
public boolean isOverride()
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/4ed67a8f/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ParameterReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ParameterReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ParameterReference.java
index 4823873..30d7c15 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ParameterReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ParameterReference.java
@@ -35,6 +35,12 @@ public class ParameterReference extends BaseReference
name = node.getString();
}
+ public ParameterReference(final ReferenceModel model, final String name, final String qualifiedName)
+ {
+ super(model, null, qualifiedName, null);
+ this.name = name;
+ }
+
public ParameterReference(final ReferenceModel model, final Node parameterNode)
{
this(model, parameterNode, "Object");
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/4ed67a8f/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
index 473e42c..f384689 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
@@ -154,7 +154,7 @@ public class FunctionUtils
return canImport;
}
- private static String toParameter(BaseReference reference, JSDocInfo comment, String paramName,
+ public static String toParameter(BaseReference reference, JSDocInfo comment, String paramName,
JSTypeExpression parameterType, boolean outputJS)
{
final StringBuilder sb = new StringBuilder();
[2/4] git commit: [flex-falcon] [refs/heads/develop] - externs/node:
updated configuration files to build without error based on the recent
changes to externc
Posted by jo...@apache.org.
externs/node: updated configuration files to build without error based on the recent changes to externc
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/36b65ef6
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/36b65ef6
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/36b65ef6
Branch: refs/heads/develop
Commit: 36b65ef6695058e0bcede897ce063046568a5aff
Parents: 4ed67a8
Author: Josh Tynjala <jo...@apache.org>
Authored: Tue Apr 19 16:12:32 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Tue Apr 19 16:12:32 2016 -0700
----------------------------------------------------------------------
externs/node/compile-config.xml | 2 +-
externs/node/node-compile-config.xml | 14 +++++++-------
2 files changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/36b65ef6/externs/node/compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/node/compile-config.xml b/externs/node/compile-config.xml
index 564ba44..91df9e3 100644
--- a/externs/node/compile-config.xml
+++ b/externs/node/compile-config.xml
@@ -33,7 +33,7 @@
</compiler>
<include-sources>
- <path-element>out/as/constants</path-element>
+ <!--<path-element>out/as/constants</path-element>-->
<path-element>out/as/classes</path-element>
<path-element>out/as/functions</path-element>
<path-element>out/as/typedefs</path-element>
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/36b65ef6/externs/node/node-compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/node/node-compile-config.xml b/externs/node/node-compile-config.xml
index c0a3e50..aa97477 100644
--- a/externs/node/node-compile-config.xml
+++ b/externs/node/node-compile-config.xml
@@ -33,11 +33,11 @@
<external>
<path-element>missing.js</path-element>
<path-element>externs/assert.js</path-element>
- <path-element>externs/buffer.js</path-element>
- <path-element>externs/child_process.js</path-element>
- <path-element>externs/cluster.js</path-element>
+ <!--<path-element>externs/buffer.js</path-element>-->
+ <!--<path-element>externs/child_process.js</path-element>-->
+ <!--<path-element>externs/cluster.js</path-element>-->
<path-element>externs/crypto.js</path-element>
- <path-element>externs/dgram.js</path-element>
+ <!--<path-element>externs/dgram.js</path-element>-->
<path-element>externs/dns.js</path-element>
<path-element>externs/domain.js</path-element>
<path-element>externs/events.js</path-element>
@@ -48,12 +48,12 @@
<path-element>externs/net.js</path-element>
<path-element>externs/os.js</path-element>
<path-element>externs/path.js</path-element>
- <path-element>externs/punycode.js</path-element>
- <path-element>externs/querystring.js</path-element>
+ <!--<path-element>externs/punycode.js</path-element>-->
+ <!--<path-element>externs/querystring.js</path-element>-->
<path-element>externs/readline.js</path-element>
<path-element>externs/repl.js</path-element>
<path-element>externs/stream.js</path-element>
- <path-element>externs/string_decoder.js</path-element>
+ <!--<path-element>externs/string_decoder.js</path-element>-->
<path-element>externs/tls.js</path-element>
<path-element>externs/tty.js</path-element>
<path-element>externs/url.js</path-element>
[4/4] git commit: [flex-falcon] [refs/heads/develop] - externs/js:
some of the excludes can now be included because externc issues have been
fixed
Posted by jo...@apache.org.
externs/js: some of the excludes can now be included because externc issues have been fixed
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/15e753a7
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/15e753a7
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/15e753a7
Branch: refs/heads/develop
Commit: 15e753a7c70a12affeb6c8c572e20a645909a600
Parents: 2b5fb56
Author: Josh Tynjala <jo...@apache.org>
Authored: Tue Apr 19 16:36:18 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Tue Apr 19 16:36:18 2016 -0700
----------------------------------------------------------------------
.../codegen/externals/ExternalsTestUtils.java | 21 --------------------
externs/js/js-compile-config.xml | 20 -------------------
2 files changed, 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/15e753a7/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/ExternalsTestUtils.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/ExternalsTestUtils.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/ExternalsTestUtils.java
index 7956e25..da0571a 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/ExternalsTestUtils.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/ExternalsTestUtils.java
@@ -58,31 +58,10 @@ public class ExternalsTestUtils
config.addExclude("Date", "valueOf");
config.addExclude("String", "valueOf");
- config.addExclude("FontFaceSet", "delete");
-
- config.addExclude("CSSStyleDeclaration", "cssText");
- config.addExclude("CSSStyleRule", "style");
- config.addExclude("CSSFontFaceRule", "style");
- config.addExclude("CSSPageRule", "style");
-
- config.addExclude("Generator", "throw");
- config.addExclude("Generator", "return");
config.addExclude("HTMLMenuItemElement", "default");
config.addExclude("MessageEvent", "data"); // TODO returns T
config.addExclude("MessageEvent", "initMessageEventNS"); // TODO param T
config.addExclude("MessageEvent", "initMessageEvent"); // TODO param T
- config.addExclude("MessageEvent", "default");
- config.addExclude("Object", "is");
- config.addExclude("Promise", "catch");
-
- config.addExclude("IDBCursor", "continue");
- config.addExclude("IDBCursor", "delete");
- config.addExclude("IDBObjectStore", "delete");
-
- // TODO method treated like field
- config.addFieldExclude("Iterator", "next");
- config.addExclude("Generator", "next");
- config.addExclude("LinkStyle", "sheet");
// SVG
config.addExclude("SVGStylable", "className");
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/15e753a7/externs/js/js-compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/js/js-compile-config.xml b/externs/js/js-compile-config.xml
index 2346f10..7edd1d6 100644
--- a/externs/js/js-compile-config.xml
+++ b/externs/js/js-compile-config.xml
@@ -138,31 +138,11 @@
<class>String</class>
<name>valueOf</name>
</exclude>
- <exclude><class>FontFaceSet</class><name>delete</name></exclude>
- <exclude><class>CSSStyleDeclaration</class><name>cssText</name></exclude>
- <exclude><class>CSSStyleRule</class><name>style</name></exclude>
- <exclude><class>CSSFontFaceRule</class><name>style</name></exclude>
- <exclude><class>CSSPageRule</class><name>style</name></exclude>
-
- <exclude><class>Generator</class><name>throw</name></exclude>
- <exclude><class>Generator</class><name>return</name></exclude>
<exclude><class>HTMLMenuItemElement</class><name>default</name></exclude>
<exclude><class>MessageEvent</class><name>data</name></exclude><!-- TODO returns T -->
<exclude><class>MessageEvent</class><name>initMessageEventNS</name></exclude> <!-- TODO param T -->
<exclude><class>MessageEvent</class><name>initMessageEvent</name></exclude> <!-- TODO param T -->
- <exclude><class>MessageEvent</class><name>default</name></exclude>
- <exclude><class>Object</class><name>is</name></exclude>
- <exclude><class>Promise</class><name>catch</name></exclude>
-
- <exclude><class>IDBCursor</class><name>continue</name></exclude>
- <exclude><class>IDBCursor</class><name>delete</name></exclude>
- <exclude><class>IDBObjectStore</class><name>delete</name></exclude>
-
- <!-- TODO method treated like field -->
- <field-exclude><class>Iterator</class><field>next</field></field-exclude>
- <exclude><class>Generator</class><name>next</name></exclude>
- <exclude><class>LinkStyle</class><name>sheet</name></exclude>
<!-- SVG -->
<exclude><class>SVGStylable</class><name>className</name></exclude>
[3/4] git commit: [flex-falcon] [refs/heads/develop] - externc:
hasTemplate() and containsTemplate() in FunctionUtils updated to grab
templates from the parent class too
Posted by jo...@apache.org.
externc: hasTemplate() and containsTemplate() in FunctionUtils updated to grab templates from the parent class too
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/2b5fb56f
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/2b5fb56f
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/2b5fb56f
Branch: refs/heads/develop
Commit: 2b5fb56f147f927c638e3643d954ce4586a35b79
Parents: 36b65ef
Author: Josh Tynjala <jo...@apache.org>
Authored: Tue Apr 19 16:29:57 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Tue Apr 19 16:29:57 2016 -0700
----------------------------------------------------------------------
.../codegen/externals/utils/FunctionUtils.java | 38 +++++++++++++++-----
1 file changed, 30 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/2b5fb56f/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
index f384689..5a9b658 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java
@@ -21,6 +21,7 @@ package org.apache.flex.compiler.internal.codegen.externals.utils;
import org.apache.flex.compiler.internal.codegen.externals.reference.BaseReference;
import org.apache.flex.compiler.internal.codegen.externals.reference.ClassReference;
+import org.apache.flex.compiler.internal.codegen.externals.reference.MemberReference;
import org.apache.flex.compiler.internal.codegen.externals.reference.ReferenceModel;
import com.google.common.base.Strings;
@@ -214,19 +215,40 @@ public class FunctionUtils
public static boolean hasTemplate(BaseReference reference)
{
+ if(reference instanceof MemberReference)
+ {
+ MemberReference memberRef = (MemberReference) reference;
+ if(memberRef.getClassReference().getComment().getTemplateTypeNames().size() > 0)
+ {
+ return true;
+ }
+ }
return reference.getComment().getTemplateTypeNames().size() > 0;
}
public static boolean containsTemplate(BaseReference reference, String name)
{
- for (String template : reference.getComment().getTemplateTypeNames())
- {
- if (name.contains("<" + template + ">"))
- return true;
- if (name.equals(template))
- return true;
- }
- return false;
+ if(reference instanceof MemberReference)
+ {
+ MemberReference memberRef = (MemberReference) reference;
+ if(commentContainsTemplate(memberRef.getClassReference().getComment(), name))
+ {
+ return true;
+ }
+ }
+ return commentContainsTemplate(reference.getComment(), name);
+ }
+
+ private static boolean commentContainsTemplate(JSDocInfo comment, String name)
+ {
+ for (String template : comment.getTemplateTypeNames())
+ {
+ if (name.contains("<" + template + ">"))
+ return true;
+ if (name.equals(template))
+ return true;
+ }
+ return false;
}
}