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);