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 2015/12/21 22:21:04 UTC

git commit: [flex-falcon] [refs/heads/develop] - FLEX-34986 fix constant handling

Repository: flex-falcon
Updated Branches:
  refs/heads/develop 24bc50946 -> 34160e46f


FLEX-34986 fix constant handling


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

Branch: refs/heads/develop
Commit: 34160e46fec80256786fa4db8f607ccb5003989b
Parents: 24bc509
Author: Alex Harui <ah...@apache.org>
Authored: Mon Dec 21 13:20:55 2015 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Dec 21 13:20:55 2015 -0800

----------------------------------------------------------------------
 .../js/flexjs/TestFlexJSFieldMembers.java       | 25 +++++++++++++++++---
 .../internal/codegen/js/jx/ClassEmitter.java    |  2 +-
 .../internal/codegen/js/jx/FieldEmitter.java    |  2 +-
 3 files changed, 24 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/34160e46/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSFieldMembers.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSFieldMembers.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSFieldMembers.java
index 84f652e..fb390ff 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSFieldMembers.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSFieldMembers.java
@@ -255,9 +255,28 @@ public class TestFlexJSFieldMembers extends TestGoogFieldMembers
     @Test
     public void testConstant_withComplexTypeValue_nonStatic()
     {
-        IVariableNode node = getField("const foo:Number = parseFloat('1E2');");
-        asBlockWalker.visitVariable(node);
-        assertOut("/**\n * @export\n * @const\n * @type {number}\n */\nFalconTest_A.prototype.foo = parseFloat('1E2')");
+    	IClassNode node = (IClassNode) getNode("protected const foo:Number = parseFloat('1E2');",
+    			IClassNode.class, WRAP_LEVEL_CLASS);
+        asBlockWalker.visitClass(node);
+        assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n\nthis.foo = parseFloat('1E2');\n};\n\n\n/**\n * @protected\n * @const\n * @type {number}\n */\nFalconTest_A.prototype.foo;");
+    }
+    
+    @Test
+    public void testConstant_withTypeValueArrayLiteral()
+    {
+    	IClassNode node = (IClassNode) getNode("protected const foo:Array = [ 'foo' ]",
+        		IClassNode.class, WRAP_LEVEL_CLASS);
+        asBlockWalker.visitClass(node);
+        assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n\nthis.foo = ['foo'];\n};\n\n\n/**\n * @protected\n * @const\n * @type {Array}\n */\nFalconTest_A.prototype.foo;");
+    }
+    
+    @Test
+    public void testConstant_withTypeValueObjectLiteral()
+    {
+    	IClassNode node = (IClassNode) getNode("protected const foo:Object = { 'foo': 'bar' }",
+        		IClassNode.class, WRAP_LEVEL_CLASS);
+        asBlockWalker.visitClass(node);
+        assertOut("/**\n * @constructor\n */\nFalconTest_A = function() {\n\nthis.foo = {'foo':'bar'};\n};\n\n\n/**\n * @protected\n * @const\n * @type {Object}\n */\nFalconTest_A.prototype.foo;");
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/34160e46/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
index 6f8a127..f96ceca 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
@@ -153,7 +153,7 @@ public class ClassEmitter extends JSSubEmitter implements
             {
             	IVariableNode varnode = ((IVariableNode)dnode);
                 IExpressionNode vnode = varnode.getAssignedValueNode();
-                if (vnode != null && (!(varnode.isConst() || dnode.getDefinition().isStatic() || EmitterUtils.isScalar(vnode))))
+                if (vnode != null && (!(dnode.getDefinition().isStatic() || EmitterUtils.isScalar(vnode))))
                 {
                     writeNewline();
                     write(ASEmitterTokens.THIS);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/34160e46/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/FieldEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/FieldEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/FieldEmitter.java
index ea64639..f7b2c1a 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/FieldEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/jx/FieldEmitter.java
@@ -85,7 +85,7 @@ public class FieldEmitter extends JSSubEmitter implements
         	write("_");
         }
         IExpressionNode vnode = node.getAssignedValueNode();
-        if (vnode != null && (node.isConst() || ndef.isStatic() || EmitterUtils.isScalar(vnode)))
+        if (vnode != null && (ndef.isStatic() || EmitterUtils.isScalar(vnode)))
         {
             write(ASEmitterTokens.SPACE);
             writeToken(ASEmitterTokens.EQUAL);