You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/01/06 08:36:59 UTC

[1/7] git commit: [flex-falcon] [refs/heads/develop] - Worked around some issues with es3.js provided by closure-compiler

Repository: flex-falcon
Updated Branches:
  refs/heads/develop 91ba91d74 -> d1b4ed22d


Worked around some issues with es3.js provided by closure-compiler


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

Branch: refs/heads/develop
Commit: 4456908039694e9ba95715d2f49a7c0cded9f425
Parents: a57ff6e
Author: Andy Dufilie <an...@iweave.com>
Authored: Tue Jan 5 10:06:42 2016 -0500
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Jan 5 23:31:55 2016 -0800

----------------------------------------------------------------------
 build.xml             |  3 +++
 externs/js/missing.js | 11 +++++++++++
 2 files changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/44569080/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index f87c972..b751c71 100644
--- a/build.xml
+++ b/build.xml
@@ -660,6 +660,9 @@
         <replaceregexp file="${basedir}/externs/js/externs/svg.js" match="@type \{function\(new:.*" replace="" flags="g" />
         <replaceregexp file="${basedir}/externs/js/externs/svg.js" match="Window\.prototype\..*" replace="" flags="g" />
         <replace file="${basedir}/externs/js/externs/svg.js" token="EventListener|(function(Event)" value="EventListener|(function(!Event)" />
+        <replaceregexp file="${basedir}/externs/js/externs/es3.js" match="(The constructor of the current object(?:(?!\*/).)*?)@type \{Function\}((?:(?!\*/).)*?\*/[\r\n]+Object\.prototype\.constructor)([^;]*?);" replace="\1@type {Class}\2;" flags="s" />
+        <replaceregexp file="${basedir}/externs/js/externs/es3.js" match="(Transposes the elements of an array in place(?:(?!\*/).)*?[\r\n]+ \*)([\r\n]+)( \* @this)" replace="\1\2 * @return {!Array&lt;?&gt;}\2\3" flags="s" />
+        <replaceregexp file="${basedir}/externs/js/externs/es3.js" match="(Sorts the elements of an array in place(?:(?!\*/).)*?[\r\n]+ \*)([\r\n]+)( \* @param)" replace="\1\2 * @return {!Array&lt;?&gt;}\2\3" flags="s" />
         <java jar="${basedir}/compiler/generated/dist/sdk/lib/falcon-compc.jar" fork="true"
             failonerror="true">
             <arg value="+flexlib=externs" />

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/44569080/externs/js/missing.js
----------------------------------------------------------------------
diff --git a/externs/js/missing.js b/externs/js/missing.js
index 0b1ebcc..594bace 100644
--- a/externs/js/missing.js
+++ b/externs/js/missing.js
@@ -98,7 +98,18 @@ int.prototype.toString = function(opt_radix) {}
 
 
 /**
+ * @type {Object}
+ */
+Object.prototype;
+
+/**
+ * @type {Object}
+ */
+Object.prototype.prototype;
+
+/**
  * @constructor
+ * @extends {Function}
  */
 function Class() {}
 


[4/7] git commit: [flex-falcon] [refs/heads/develop] - now outputting override keyword where appropriate

Posted by ah...@apache.org.
now outputting override keyword where appropriate


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

Branch: refs/heads/develop
Commit: 420ffe33c17db83b3ef138e996122b55fe23a0d2
Parents: 25e15e4
Author: Andy Dufilie <an...@iweave.com>
Authored: Tue Jan 5 14:28:46 2016 -0500
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Jan 5 23:31:56 2016 -0800

----------------------------------------------------------------------
 .../internal/codegen/externals/reference/MethodReference.java   | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/420ffe33/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 f77928e..10fb053 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
@@ -197,10 +197,9 @@ public class MethodReference extends MemberReference
             braces = " { " + returns + " }";
         }
         
-        // allow overrides of toString for Number
-        if (qName.equals("toString") && getClassReference().hasSuperMethod(qName))
+        if (!qName.equals("toString") && getClassReference().hasSuperMethod(qName))
         {
-        	publicModifier = "AS3 ";
+        	isOverride = "override ";
         }
 
     	if (outputJS)


[3/7] git commit: [flex-falcon] [refs/heads/develop] - fixed missing toString() in externc output

Posted by ah...@apache.org.
fixed missing toString() in externc output


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

Branch: refs/heads/develop
Commit: 9c6437db23d32e1c52a476626597b315cefcfaf3
Parents: 91ba91d
Author: Andy Dufilie <an...@iweave.com>
Authored: Tue Jan 5 10:06:55 2016 -0500
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Jan 5 23:31:55 2016 -0800

----------------------------------------------------------------------
 .../internal/codegen/externals/reference/MethodReference.java     | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/9c6437db/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 58b7034..f77928e 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
@@ -143,8 +143,7 @@ public class MethodReference extends MemberReference
         // allow overrides of toString for Number, int and uint
         if (!qName.equals("toString") && getClassReference().hasSuperMethod(qName))
             return;
-        else if (qName.equals("toString") &&
-        		!(className.equals("Number") || className.equals("int") || className.equals("uint")))
+        else if (qName.equals("toString") && className.equals("Object"))
         	return;
 
         emitComment(sb);


[6/7] git commit: [flex-falcon] [refs/heads/develop] - fixed compile errors with test classes

Posted by ah...@apache.org.
fixed compile errors with test classes


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

Branch: refs/heads/develop
Commit: d259345a8d89ab9ff4673dbabd8b2dc841e83835
Parents: 420ffe3
Author: Andy Dufilie <an...@iweave.com>
Authored: Tue Jan 5 16:17:16 2016 -0500
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Jan 5 23:31:56 2016 -0800

----------------------------------------------------------------------
 .../internal/codegen/externals/TestAnnotationEnum.java  |  3 +--
 .../internal/codegen/externals/TestConstructor.java     |  2 +-
 .../internal/codegen/externals/TestExternChrome.java    | 12 ++++++------
 .../internal/codegen/externals/TestTypeExternals.java   |  8 ++++----
 .../internal/codegen/externals/TestTypeInheritence.java |  2 +-
 5 files changed, 13 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d259345a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestAnnotationEnum.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestAnnotationEnum.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestAnnotationEnum.java
index 97286db..124e3ff 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestAnnotationEnum.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestAnnotationEnum.java
@@ -49,8 +49,7 @@ public class TestAnnotationEnum extends ExternalsTestBase
         assertTrue(FontFaceSetLoadStatus.hasStaticField("FOO_LOADED"));
         assertTrue(FontFaceSetLoadStatus.hasStaticField("FOO_LOADING"));
 
-        assertTrue(FontFaceLoadStatus.getField("ERROR").isStatic());
-        assertTrue(FontFaceLoadStatus.getField("ERROR").isConst());
+        assertTrue(FontFaceLoadStatus.getStaticField("ERROR").isConst());
 
         // TODO check values and value type IE String, Number
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d259345a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestConstructor.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestConstructor.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestConstructor.java
index d76eb15..a766576 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestConstructor.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestConstructor.java
@@ -40,7 +40,7 @@ public class TestConstructor extends ExternalsTestBase
 
         assertTrue(model.hasClass("FinalClass"));
         //assertTrue(model.getClassReference("FinalClass").isFinal());
-        assertTrue(model.getClassReference("FinalClass").hasMethod("bar"));
+        assertTrue(model.getClassReference("FinalClass").hasStaticMethod("bar"));
         assertTrue(model.getClassReference("FinalClass").getStaticMethod("bar").isStatic());
     }
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d259345a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestExternChrome.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestExternChrome.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestExternChrome.java
index fa655c2..51afce9 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestExternChrome.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestExternChrome.java
@@ -87,13 +87,13 @@ public class TestExternChrome extends ExternalsTestBase
         assertTrue(Port.hasInstanceMethod("postMessage"));
         assertTrue(Port.hasInstanceMethod("disconnect"));
 
-        assertEquals("string", Port.getField("name").toTypeAnnotationString());
+        assertEquals("string", Port.getInstanceField("name").toTypeAnnotationString());
         assertEquals("ChromeEvent",
-                Port.getField("onDisconnect").toTypeAnnotationString());
+                Port.getInstanceField("onDisconnect").toTypeAnnotationString());
         assertEquals("ChromeEvent",
-                Port.getField("onMessage").toTypeAnnotationString());
+                Port.getInstanceField("onMessage").toTypeAnnotationString());
         assertEquals("(MessageSender|undefined)",
-                Port.getField("sender").toTypeAnnotationString());
+                Port.getInstanceField("sender").toTypeAnnotationString());
 
         // chrome
         ClassReference chrome = model.getClassReference("chrome");
@@ -110,7 +110,7 @@ public class TestExternChrome extends ExternalsTestBase
         assertNotNull(chrome_app);
         assertTrue(chrome_app.hasStaticField("isInstalled"));
         assertEquals("boolean",
-                chrome_app.getField("isInstalled").toTypeAnnotationString());
+                chrome_app.getStaticField("isInstalled").toTypeAnnotationString());
 
         // chrome.runtime
         ClassReference chrome_runtime = model.getClassReference("chrome.runtime");
@@ -124,7 +124,7 @@ public class TestExternChrome extends ExternalsTestBase
         assertTrue(chrome_runtime_lastError.hasStaticField("message"));
         assertEquals(
                 "(string|undefined)",
-                chrome_runtime_lastError.getField("message").toTypeAnnotationString());
+                chrome_runtime_lastError.getStaticField("message").toTypeAnnotationString());
 
         // chrome.webstore
         ClassReference chrome_webstore = model.getClassReference("chrome.webstore");

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d259345a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestTypeExternals.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestTypeExternals.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestTypeExternals.java
index e3709c5..514f7a9 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestTypeExternals.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestTypeExternals.java
@@ -43,10 +43,10 @@ public class TestTypeExternals extends ExternalsTestBase
         compile("constructor_members.js");
 
         ClassReference reference = model.getClassReference("Foo");
-        assertTrue(reference.hasField("bar"));
-        assertFalse(reference.hasField("foo"));
-        assertTrue(reference.hasMethod("method1"));
-        assertTrue(reference.hasMethod("method2"));
+        assertTrue(reference.hasInstanceField("bar"));
+        assertFalse(reference.hasInstanceField("foo"));
+        assertTrue(reference.hasInstanceMethod("method1"));
+        assertTrue(reference.hasInstanceMethod("method2"));
         assertTrue(model.hasConstant("bar"));
     }
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d259345a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestTypeInheritence.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestTypeInheritence.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestTypeInheritence.java
index 0fb57bc..ee19443 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestTypeInheritence.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/externals/TestTypeInheritence.java
@@ -63,7 +63,7 @@ public class TestTypeInheritence extends ExternalsTestBase
         assertSame(Foo, superClasses.get(1));
         assertSame(Object, superClasses.get(2));
 
-        assertTrue(Foo.hasMethod("addEventListener"));
+        assertTrue(Foo.hasInstanceMethod("addEventListener"));
 
         // TODO (mschmalle) need to revisit interface method overload
         // XXX Since Foo implements EventTarget BUT changes it's signature, we have to


[5/7] git commit: [flex-falcon] [refs/heads/develop] - workaround for missing in createjs toString() doc tags

Posted by ah...@apache.org.
workaround for missing in createjs toString() doc tags


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

Branch: refs/heads/develop
Commit: 25e15e4f243e43c8af4c3fa5950f7b1e40fac49d
Parents: 4456908
Author: Andy Dufilie <an...@iweave.com>
Authored: Tue Jan 5 14:29:53 2016 -0500
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Jan 5 23:31:56 2016 -0800

----------------------------------------------------------------------
 externs/createjs/build.xml | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/25e15e4f/externs/createjs/build.xml
----------------------------------------------------------------------
diff --git a/externs/createjs/build.xml b/externs/createjs/build.xml
index 09ff653..41d6661 100644
--- a/externs/createjs/build.xml
+++ b/externs/createjs/build.xml
@@ -188,6 +188,7 @@
         <replaceregexp file="${basedir}/externs/${file}" match="\stry [{]\s*Object.defineProperties[(]p, [{]\s*(.*):\s(.*)[}] catch [(]e[)] [{][}]"
                                                          replace="createjs.${file.base}.prototype.\1;" flags="gs" />
         <replaceregexp file="${basedir}/externs/${file}" match="\s@extends\s(.*)" replace=" @extends createjs.\1" />
+    	<replaceregexp file="${basedir}/externs/${file}" match="(/\*\* docced in super class)( \*\*/)([\r\n]+)(createjs\.${file.base}\.prototype\.toString)" replace="\1\3@return {string}\3\2\3\4" flags="s" />
     </target>
     
     <target name="preprocessGraphics" >


[2/7] git commit: [flex-falcon] [refs/heads/develop] - Fixed various problems handling static versus instance fields/methods

Posted by ah...@apache.org.
Fixed various problems handling static versus instance fields/methods


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

Branch: refs/heads/develop
Commit: a57ff6e17c852d92b8e938d0bb3c690140a37d92
Parents: 9c6437d
Author: Andy Dufilie <an...@iweave.com>
Authored: Tue Jan 5 13:10:40 2016 -0500
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Jan 5 23:31:55 2016 -0800

----------------------------------------------------------------------
 .../codegen/externals/pass/AddMemberPass.java   |  4 +-
 .../externals/pass/CollectImportsPass.java      |  5 +-
 .../externals/reference/ClassReference.java     | 59 ++++++++++----------
 .../externals/reference/FieldReference.java     |  2 +-
 .../as/codegen/ClassDirectiveProcessor.java     |  2 +-
 .../semantics/MethodBodySemanticChecker.java    |  4 +-
 6 files changed, 37 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a57ff6e1/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 4798ceb..8379af9 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
@@ -93,7 +93,7 @@ public class AddMemberPass extends AbstractCompilerPass
 
         if (n.getFirstChild().isGetProp())
         {
-            int protoType = qName.indexOf(".prototype");
+            int protoType = qName.indexOf(".prototype.");
             if (protoType != -1)
             {
                 String className = qName.substring(0, protoType);
@@ -126,7 +126,7 @@ public class AddMemberPass extends AbstractCompilerPass
 
         log("visitGetProp [" + qualifiedName + "]");
 
-        int protoType = qualifiedName.indexOf(".prototype");
+        int protoType = qualifiedName.indexOf(".prototype.");
         if (protoType != -1)
         {
             String className = qualifiedName.substring(0, protoType);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a57ff6e1/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectImportsPass.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectImportsPass.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectImportsPass.java
index 20381a6..d934610 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectImportsPass.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/pass/CollectImportsPass.java
@@ -20,7 +20,6 @@
 package org.apache.flex.compiler.internal.codegen.externals.pass;
 
 import java.util.List;
-import java.util.Map;
 
 import org.apache.flex.compiler.internal.codegen.externals.reference.*;
 
@@ -58,7 +57,7 @@ public class CollectImportsPass extends AbstractCompilerPass
         final List<ClassReference> superClasses = reference.getSuperClasses();
         final List<ClassReference> interfaces = reference.getInterfaces();
         final List<ClassReference> extendedInterfaces = reference.getExtendedInterfaces();
-        final Map<String, FieldReference> fields = reference.getFields();
+        final List<FieldReference> fields = reference.getAllFields();
         final List<MethodReference> methods = reference.getAllMethods();
 
         for (ClassReference superClass : superClasses)
@@ -85,7 +84,7 @@ public class CollectImportsPass extends AbstractCompilerPass
             }
         }
 
-        for (FieldReference field : fields.values())
+        for (FieldReference field : fields)
         {
             if (field.isExcluded() == null)
             {

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a57ff6e1/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
index 183b70c..59c5859 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
@@ -48,7 +48,8 @@ public class ClassReference extends BaseReference
 
     private Set<String> imports = new HashSet<String>();
     private MethodReference constructor;
-    private Map<String, FieldReference> fields = new HashMap<String, FieldReference>();
+    private Map<String, FieldReference> instanceFields = new HashMap<String, FieldReference>();
+    private Map<String, FieldReference> staticFields = new HashMap<String, FieldReference>();
     private Map<String, MethodReference> instanceMethods = new HashMap<String, MethodReference>();
     private Map<String, MethodReference> staticMethods = new HashMap<String, MethodReference>();
 
@@ -86,22 +87,32 @@ public class ClassReference extends BaseReference
         return constructor;
     }
 
-    public Map<String, FieldReference> getFields()
+    public ArrayList<FieldReference> getAllFields()
     {
-        return fields;
+        ArrayList<FieldReference> allMethods = new ArrayList<FieldReference>();
+        if (!isInterface())
+        	allMethods.addAll(staticFields.values());
+        allMethods.addAll(instanceFields.values());
+        return allMethods;
     }
 
     public ArrayList<MethodReference> getAllMethods()
     {
     	ArrayList<MethodReference> allMethods = new ArrayList<MethodReference>();
-    	allMethods.addAll(staticMethods.values());
+    	if (!isInterface())
+    		allMethods.addAll(staticMethods.values());
     	allMethods.addAll(instanceMethods.values());
         return allMethods;
     }
 
-    public FieldReference getField(String name)
+    public FieldReference getStaticField(String name)
+    {
+    	return staticFields.get(name);
+    }
+    
+    public FieldReference getInstanceField(String name)
     {
-        return fields.get(name);
+        return instanceFields.get(name);
     }
 
     public MethodReference getStaticMethod(String name)
@@ -374,7 +385,7 @@ public class ClassReference extends BaseReference
         List<ClassReference> list = getSuperClasses();
         for (ClassReference reference : list)
         {
-            if (reference.hasField(fieldName))
+            if (reference.hasInstanceField(fieldName))
                 return true;
         }
         return false;
@@ -385,7 +396,7 @@ public class ClassReference extends BaseReference
         List<ClassReference> list = getSuperClasses();
         for (ClassReference reference : list)
         {
-            if (reference.hasMethod(methodName))
+            if (reference.hasInstanceMethod(methodName))
                 return true;
         }
         return false;
@@ -491,24 +502,14 @@ public class ClassReference extends BaseReference
         return result;
     }
 
-    public boolean hasField(String fieldName)
-    {
-        return fields.containsKey(fieldName);
-    }
-
     public boolean hasInstanceField(String fieldName)
     {
-        return fields.containsKey(fieldName) && !fields.get(fieldName).isStatic();
+        return instanceFields.containsKey(fieldName);
     }
 
     public boolean hasStaticField(String fieldName)
     {
-        return fields.containsKey(fieldName) && fields.get(fieldName).isStatic();
-    }
-
-    public boolean hasMethod(String methodName)
-    {
-        return instanceMethods.containsKey(methodName) || staticMethods.containsKey(methodName);
+        return staticFields.containsKey(fieldName);
     }
 
     public boolean hasInstanceMethod(String fieldName)
@@ -523,7 +524,7 @@ public class ClassReference extends BaseReference
 
     public FieldReference addField(Node node, String fieldName, JSDocInfo comment, boolean isStatic)
     {
-        if (hasField(fieldName))
+        if (isStatic ? hasStaticField(fieldName) : hasInstanceField(fieldName))
         {
             // XXX Warning
             return null;
@@ -545,7 +546,10 @@ public class ClassReference extends BaseReference
 
         FieldReference field = new FieldReference(getModel(), this, node, fieldName, comment, isStatic);
 
-        fields.put(fieldName, field);
+        if (isStatic)
+        	staticFields.put(fieldName, field);
+        else
+        	instanceFields.put(fieldName, field);
         return field;
     }
 
@@ -658,7 +662,7 @@ public class ClassReference extends BaseReference
                 System.err.println("isPropertyInterfaceImplementation() null");
                 continue;
             }
-            if (interfaceRef.hasFieldConflict(fieldName))
+            if (interfaceRef.hasInstanceField(fieldName))
                 return true;
         }
         return false;
@@ -669,11 +673,6 @@ public class ClassReference extends BaseReference
         return instanceMethods.containsKey(functionName) || staticMethods.containsKey(functionName);
     }
 
-    public boolean hasFieldConflict(String fieldName)
-    {
-        return fields.containsKey(fieldName);
-    }
-
     public void addImport(ClassReference reference)
     {
         if (reference != null)
@@ -836,9 +835,9 @@ public class ClassReference extends BaseReference
 
     private void emitFields(StringBuilder sb)
     {
-        for (Entry<String, FieldReference> fieldSet : getFields().entrySet())
+        for (FieldReference field : getAllFields())
         {
-            fieldSet.getValue().emit(sb);
+            field.emit(sb);
             sb.append("\n");
             nextEnumConstant();
         }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a57ff6e1/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 226cb19..d99a66d 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
@@ -120,7 +120,7 @@ public class FieldReference extends MemberReference
     {
         boolean isInterface = getClassReference().isInterface();
 
-        String staticValue = "";//(isStatic) ? "static " : "";
+        String staticValue = (isStatic) ? "static " : "";
         String isPublic = isInterface ? "" : "public ";
         String getBody = isInterface ? "" : "{ return null; }";
         String setBody = isInterface ? "" : "{}";

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a57ff6e1/compiler/src/org/apache/flex/compiler/internal/as/codegen/ClassDirectiveProcessor.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/internal/as/codegen/ClassDirectiveProcessor.java b/compiler/src/org/apache/flex/compiler/internal/as/codegen/ClassDirectiveProcessor.java
index 21afb92..d6ab0b1 100644
--- a/compiler/src/org/apache/flex/compiler/internal/as/codegen/ClassDirectiveProcessor.java
+++ b/compiler/src/org/apache/flex/compiler/internal/as/codegen/ClassDirectiveProcessor.java
@@ -1098,7 +1098,7 @@ class ClassDirectiveProcessor extends DirectiveProcessor
         }
         else
         {
-            checker.checkClassField(var, is_static);
+            checker.checkClassField(var);
             //  Massive kludge -- grovel over chained variable decls and add them one by one
             for ( int i = 0; i < var.getChildCount(); i++ )
             {

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a57ff6e1/compiler/src/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java
----------------------------------------------------------------------
diff --git a/compiler/src/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java b/compiler/src/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java
index 67a934b..2d1f9f1 100644
--- a/compiler/src/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java
+++ b/compiler/src/org/apache/flex/compiler/internal/semantics/MethodBodySemanticChecker.java
@@ -2467,7 +2467,7 @@ public class MethodBodySemanticChecker
     /**
      *  Check a class field declaration.
      */
-    public void checkClassField(VariableNode var, final boolean is_const)
+    public void checkClassField(VariableNode var)
     {
         checkVariableDeclaration(var);
 
@@ -2815,7 +2815,7 @@ public class MethodBodySemanticChecker
                 addProblem(problem);
         }
 
-        if (SemanticUtils.hasBaseClassDefinition(iNode, project) )
+        if (!varDef.isStatic() && SemanticUtils.hasBaseClassDefinition(iNode, project))
         {
             addProblem(new ConflictingInheritedNameInNamespaceProblem(iNode, varDef.getBaseName(), getNamespaceStringFromDef(varDef) ));
         }


[7/7] git commit: [flex-falcon] [refs/heads/develop] - Cleaned up special case code for toString()

Posted by ah...@apache.org.
Cleaned up special case code for toString()

Fixes missing toString() in generated Date.as and others


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

Branch: refs/heads/develop
Commit: d1b4ed22d296994c8560219148b8a76124ec1ce0
Parents: d259345
Author: Andy Dufilie <an...@iweave.com>
Authored: Tue Jan 5 10:06:55 2016 -0500
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Jan 5 23:33:57 2016 -0800

----------------------------------------------------------------------
 .../codegen/externals/reference/ClassReference.java     | 12 ++++++++++--
 .../codegen/externals/reference/MethodReference.java    |  8 +++-----
 2 files changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d1b4ed22/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
index 59c5859..405aaa0 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/reference/ClassReference.java
@@ -572,9 +572,17 @@ public class ClassReference extends BaseReference
         MethodReference method = new MethodReference(getModel(), this, node, functionName, comment, isStatic);
 
         if (isStatic)
-        	staticMethods.put(functionName, method);
+        {
+            staticMethods.put(functionName, method);
+        }
+        else if (getQualifiedName().equals("Object") && functionName.equals("toString"))
+        {
+            // skipping Object.prototype.toString() allows toString(opt_radix) for Number, int and uint
+        }
         else
-        	instanceMethods.put(functionName, method);
+        {
+       	    instanceMethods.put(functionName, method);
+        }
         return method;
     }
 

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d1b4ed22/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 10fb053..96aa9f2 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
@@ -140,10 +140,8 @@ public class MethodReference extends MemberReference
         }
 
         String qName = getQualifiedName();
-        // allow overrides of toString for Number, int and uint
-        if (!qName.equals("toString") && getClassReference().hasSuperMethod(qName))
-            return;
-        else if (qName.equals("toString") && className.equals("Object"))
+        // skip overrides since they have to have the same signature as the super method
+        if (getClassReference().hasSuperMethod(qName))
         	return;
 
         emitComment(sb);
@@ -197,7 +195,7 @@ public class MethodReference extends MemberReference
             braces = " { " + returns + " }";
         }
         
-        if (!qName.equals("toString") && getClassReference().hasSuperMethod(qName))
+        if (getClassReference().hasSuperMethod(qName))
         {
         	isOverride = "override ";
         }