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 20:14:47 UTC

[1/6] git commit: [flex-falcon] [refs/heads/develop] - compiler.jx: externc can now handle typedefs inside packages

Repository: flex-falcon
Updated Branches:
  refs/heads/develop 15e753a7c -> fb2dc7a94


compiler.jx: externc can now handle typedefs inside packages


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

Branch: refs/heads/develop
Commit: 0c731405da7569ab7b745c0cedb706afd033da5d
Parents: 15e753a
Author: Josh Tynjala <jo...@apache.org>
Authored: Wed Apr 20 09:35:14 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Wed Apr 20 09:35:14 2016 -0700

----------------------------------------------------------------------
 .../internal/codegen/externals/pass/CollectTypesPass.java | 10 ++++++++++
 1 file changed, 10 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/0c731405/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectTypesPass.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectTypesPass.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectTypesPass.java
index 8ddde76..44a9cc4 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectTypesPass.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectTypesPass.java
@@ -92,6 +92,16 @@ public class CollectTypesPass extends AbstractCompilerPass
                 }
             }
         }
+        else
+        {
+            comment = container.getJSDocInfo();
+            boolean isConstructor = comment != null
+                    && (comment.getTypedefType() != null);
+            if (isConstructor)
+            {
+                model.addTypeDef(container, container.getQualifiedName());
+            }
+        }
     }
 
     private void visitFunction(Node child)


[4/6] git commit: [flex-falcon] [refs/heads/develop] - compiler.jx: externc can now handle templates on fields

Posted by jo...@apache.org.
compiler.jx: externc can now handle templates on fields


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

Branch: refs/heads/develop
Commit: b1bfa692007d10de4ee3f3b9a8434e36aaae462d
Parents: a6887f8
Author: Josh Tynjala <jo...@apache.org>
Authored: Wed Apr 20 10:31:23 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Wed Apr 20 10:31:23 2016 -0700

----------------------------------------------------------------------
 .../codegen/externals/reference/FieldReference.java         | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/b1bfa692/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/FieldReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/FieldReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/FieldReference.java
index d99a66d..e01a72a 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/FieldReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/FieldReference.java
@@ -20,6 +20,7 @@
 package org.apache.flex.compiler.internal.codegen.externals.reference;
 
 import org.apache.flex.compiler.clients.ExternCConfiguration.ExcludedMember;
+import org.apache.flex.compiler.internal.codegen.externals.utils.FunctionUtils;
 import org.apache.flex.compiler.internal.codegen.externals.utils.JSTypeUtils;
 
 import com.google.javascript.rhino.JSDocInfo;
@@ -220,7 +221,13 @@ public class FieldReference extends MemberReference
     {
         if (overrideStringType != null)
             return overrideStringType;
-        return JSTypeUtils.toFieldTypeString(this);
+        String typeString = JSTypeUtils.toFieldTypeString(this);
+        if (FunctionUtils.hasTemplate(this)
+                && FunctionUtils.containsTemplate(this, typeString))
+        {
+            return "Object";
+        }
+        return typeString;
     }
 
     @Override


[5/6] git commit: [flex-falcon] [refs/heads/develop] - compiler: allow default as a variable name

Posted by jo...@apache.org.
compiler: allow default as a variable name


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

Branch: refs/heads/develop
Commit: 5a6e32e095dbdb5ceb82bf74d2086ba61fd923db
Parents: b1bfa69
Author: Josh Tynjala <jo...@apache.org>
Authored: Wed Apr 20 11:11:43 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Wed Apr 20 11:11:43 2016 -0700

----------------------------------------------------------------------
 .../feature-tests/as/ASKeywordTests.java        | 21 ++++++++++++++++++++
 .../parsing/as/StreamingASTokenizer.java        | 13 ++++++++++++
 2 files changed, 34 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/5a6e32e0/compiler.tests/feature-tests/as/ASKeywordTests.java
----------------------------------------------------------------------
diff --git a/compiler.tests/feature-tests/as/ASKeywordTests.java b/compiler.tests/feature-tests/as/ASKeywordTests.java
index 1602b3c..8223620 100644
--- a/compiler.tests/feature-tests/as/ASKeywordTests.java
+++ b/compiler.tests/feature-tests/as/ASKeywordTests.java
@@ -292,6 +292,27 @@ public class ASKeywordTests extends ASFeatureTestsBase
     }
 
     @Test
+    public void ASKeyword_default_as_variable_name()
+    {
+        // all tests can assume that flash.display.Sprite
+        // flash.system.System and flash.events.Event have been imported
+        String[] imports = new String[]
+        {
+        };
+        String[] declarations = new String[]
+        {
+                "public var default:String;",
+        };
+        String[] testCode = new String[]
+        {
+                "default = 'bar';",
+                "assertEqual('variable named default', default, 'bar');",
+        };
+        String source = getAS(imports, declarations, testCode, new String[0]);
+        compileAndRun(source);
+    }
+
+    @Test
     public void ASKeyword_as_member_expression()
     {
     	// all tests can assume that flash.display.Sprite

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/5a6e32e0/compiler/src/org/apache/flex/compiler/internal/parsing/as/StreamingASTokenizer.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/internal/parsing/as/StreamingASTokenizer.java b/compiler/src/org/apache/flex/compiler/internal/parsing/as/StreamingASTokenizer.java
index 61b6e26..1c90e94 100644
--- a/compiler/src/org/apache/flex/compiler/internal/parsing/as/StreamingASTokenizer.java
+++ b/compiler/src/org/apache/flex/compiler/internal/parsing/as/StreamingASTokenizer.java
@@ -1025,6 +1025,19 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
                     else if (maybeXML != null && 
                             maybeXML.getType() != TOKEN_COLON)
                         retVal.setType(TOKEN_IDENTIFIER);
+                    else if (lastToken != null)
+                    {
+                        int lastTokenType = lastToken.getType();
+                        switch (lastTokenType)
+                        {
+                            case TOKEN_KEYWORD_VAR:
+                            case TOKEN_KEYWORD_FUNCTION:
+                            case TOKEN_RESERVED_WORD_GET:
+                            case TOKEN_RESERVED_WORD_SET:
+                            case TOKEN_OPERATOR_MEMBER_ACCESS:
+                                retVal.setType(TOKEN_IDENTIFIER);
+                        }
+                    }
                     return retVal;
                 }
                 case TOKEN_KEYWORD_VOID:


[3/6] git commit: [flex-falcon] [refs/heads/develop] - externs/node: can now build all JS externs without error

Posted by jo...@apache.org.
externs/node: can now build all JS externs without error


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

Branch: refs/heads/develop
Commit: a6887f8f6d7d1fb200761c3d4ef0fd5a11286573
Parents: 2a00175
Author: Josh Tynjala <jo...@apache.org>
Authored: Wed Apr 20 10:20:13 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Wed Apr 20 10:20:13 2016 -0700

----------------------------------------------------------------------
 externs/node/compile-config.xml      |  7 ++++++-
 externs/node/missing.js              |  5 -----
 externs/node/node-compile-config.xml | 26 +++++++++++++++-----------
 3 files changed, 21 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a6887f8f/externs/node/compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/node/compile-config.xml b/externs/node/compile-config.xml
index 91df9e3..5b072dd 100644
--- a/externs/node/compile-config.xml
+++ b/externs/node/compile-config.xml
@@ -26,17 +26,22 @@
         </external-library-path>
 		
         <source-path>
+            <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>
+            <path-element>out/as/duplicates</path-element>
         </source-path>
         
         <warn-no-constructor>false</warn-no-constructor>
     </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>
+        <path-element>out/as/duplicates</path-element>
     </include-sources>
 
     <include-file>

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a6887f8f/externs/node/missing.js
----------------------------------------------------------------------
diff --git a/externs/node/missing.js b/externs/node/missing.js
index ebacb75..d6c73f3 100644
--- a/externs/node/missing.js
+++ b/externs/node/missing.js
@@ -23,8 +23,3 @@
  * @externs
  */
 
-/**
- * @param {string} id
- * @return {*}
- */
-function require(id) {};

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a6887f8f/externs/node/node-compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/node/node-compile-config.xml b/externs/node/node-compile-config.xml
index aa97477..d836f6d 100644
--- a/externs/node/node-compile-config.xml
+++ b/externs/node/node-compile-config.xml
@@ -33,34 +33,38 @@
     <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>
         <path-element>externs/fs.js</path-element>
-        <!--<path-element>externs/globals.js</path-element>-->
-        <!--<path-element>externs/http.js</path-element>-->
-        <!--<path-element>externs/https.js</path-element>-->
+        <path-element>externs/globals.js</path-element>
+        <path-element>externs/http.js</path-element>
+        <path-element>externs/https.js</path-element>
         <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>
         <path-element>externs/util.js</path-element>
         <path-element>externs/vm.js</path-element>
-        <!--<path-element>externs/zlib.js</path-element>-->
+        <path-element>externs/zlib.js</path-element>
     </external>
+    <exclude>
+        <class>Buffer</class>
+        <name>toJSON</name>
+    </exclude>
     
     <as-root>out/as</as-root>
 


[6/6] git commit: [flex-falcon] [refs/heads/develop] - externs/js: more things that don't need to be excluded anymore

Posted by jo...@apache.org.
externs/js: more things that don't need to be excluded anymore


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

Branch: refs/heads/develop
Commit: fb2dc7a94b19f2c5a25a525880c3c6d69e96f37a
Parents: 5a6e32e
Author: Josh Tynjala <jo...@apache.org>
Authored: Wed Apr 20 11:14:33 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Wed Apr 20 11:14:33 2016 -0700

----------------------------------------------------------------------
 .../compiler/internal/codegen/externals/ExternalsTestUtils.java | 5 -----
 externs/js/js-compile-config.xml                                | 5 -----
 2 files changed, 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/fb2dc7a9/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 da0571a..6eacbde 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,11 +58,6 @@ public class ExternalsTestUtils
         config.addExclude("Date", "valueOf");
         config.addExclude("String", "valueOf");
 
-        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
-
         // SVG
         config.addExclude("SVGStylable", "className");
         config.addExclude("SVGStylable", "style");

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/fb2dc7a9/externs/js/js-compile-config.xml
----------------------------------------------------------------------
diff --git a/externs/js/js-compile-config.xml b/externs/js/js-compile-config.xml
index 7edd1d6..4597706 100644
--- a/externs/js/js-compile-config.xml
+++ b/externs/js/js-compile-config.xml
@@ -139,11 +139,6 @@
         <name>valueOf</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 -->
-    
     <!-- SVG -->
     <exclude><class>SVGStylable</class><name>className</name></exclude>
     <exclude><class>SVGStylable</class><name>style</name></exclude>


[2/6] git commit: [flex-falcon] [refs/heads/develop] - compiler.jx: when externc encounters a file with a duplicate name (such as buffer and Buffer, with different cases), puts the duplicate into a different directory

Posted by jo...@apache.org.
compiler.jx: when externc encounters a file with a duplicate name (such as buffer and Buffer, with different cases), puts the duplicate into a different directory


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

Branch: refs/heads/develop
Commit: 2a00175191bffa10f5e9a1b783585e4e57851213
Parents: 0c73140
Author: Josh Tynjala <jo...@apache.org>
Authored: Wed Apr 20 10:19:26 2016 -0700
Committer: Josh Tynjala <jo...@apache.org>
Committed: Wed Apr 20 10:19:26 2016 -0700

----------------------------------------------------------------------
 .../compiler/clients/ExternCConfiguration.java  |  7 +++++++
 .../externals/emit/ReferenceEmitter.java        | 20 ++++++++++++++++++++
 2 files changed, 27 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/2a001751/compiler.jx/src/org/apache/flex/compiler/clients/ExternCConfiguration.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/clients/ExternCConfiguration.java b/compiler.jx/src/org/apache/flex/compiler/clients/ExternCConfiguration.java
index 7eea457..c15786a 100644
--- a/compiler.jx/src/org/apache/flex/compiler/clients/ExternCConfiguration.java
+++ b/compiler.jx/src/org/apache/flex/compiler/clients/ExternCConfiguration.java
@@ -51,6 +51,7 @@ public class ExternCConfiguration extends Configuration
     private File asFunctionRoot;
     private File asConstantRoot;
     private File asTypeDefRoot;
+    private File asDuplicatesRoot;
 
     private List<ExternalFile> externals = new ArrayList<ExternalFile>();
     private List<ExternalFile> externalExterns = new ArrayList<ExternalFile>();
@@ -85,6 +86,7 @@ public class ExternCConfiguration extends Configuration
         asFunctionRoot = new File(asRoot, "functions");
         asConstantRoot = new File(asRoot, "constants");
         asTypeDefRoot = new File(asRoot, "typedefs");
+        asDuplicatesRoot = new File(asRoot, "duplicates");
     }
 
     public File getAsClassRoot()
@@ -112,6 +114,11 @@ public class ExternCConfiguration extends Configuration
         return asTypeDefRoot;
     }
 
+    public File getAsDuplicatesRoot()
+    {
+        return asDuplicatesRoot;
+    }
+
     public Collection<ExternalFile> getExternals()
     {
         return externals;

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/2a001751/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/emit/ReferenceEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
index 957d352..c7d3c45 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/emit/ReferenceEmitter.java
@@ -68,6 +68,10 @@ public class ReferenceEmitter
             emit(reference, sb);
 
             File sourceFile = reference.getFile(model.getConfiguration().getAsInterfaceRoot());
+            if(sourceFile.exists())
+            {
+                sourceFile = reference.getFile(model.getConfiguration().getAsDuplicatesRoot());
+            }
             FileUtils.write(sourceFile, sb.toString());
 
             sb.setLength(0);
@@ -91,6 +95,10 @@ public class ReferenceEmitter
             emit(reference, sb);
 
             File sourceFile = reference.getFile(model.getConfiguration().getAsClassRoot());
+            if(sourceFile.exists())
+            {
+                sourceFile = reference.getFile(model.getConfiguration().getAsDuplicatesRoot());
+            }
             FileUtils.write(sourceFile, sb.toString());
 
             sb.setLength(0);
@@ -112,6 +120,10 @@ public class ReferenceEmitter
             emit(reference, sb);
 
             File sourceFile = reference.getFile(model.getConfiguration().getAsTypeDefRoot());
+            if(sourceFile.exists())
+            {
+                sourceFile = reference.getFile(model.getConfiguration().getAsDuplicatesRoot());
+            }
             FileUtils.write(sourceFile, sb.toString());
 
             sb.setLength(0);
@@ -129,6 +141,10 @@ public class ReferenceEmitter
             emit(reference, sb);
 
             File sourceFile = reference.getFile(model.getConfiguration().getAsFunctionRoot());
+            if(sourceFile.exists())
+            {
+                sourceFile = reference.getFile(model.getConfiguration().getAsDuplicatesRoot());
+            }
             FileUtils.write(sourceFile, sb.toString());
 
             sb.setLength(0);
@@ -146,6 +162,10 @@ public class ReferenceEmitter
             emit(reference, sb);
 
             File sourceFile = reference.getFile(model.getConfiguration().getAsConstantRoot());
+            if(sourceFile.exists())
+            {
+                sourceFile = reference.getFile(model.getConfiguration().getAsDuplicatesRoot());
+            }
             FileUtils.write(sourceFile, sb.toString());
 
             sb.setLength(0);