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/11/15 18:06:21 UTC

git commit: [flex-falcon] [refs/heads/develop] - FLEX-35114 parameters did not expand identifiers

Repository: flex-falcon
Updated Branches:
  refs/heads/develop 218c318f3 -> a3abbdb14


FLEX-35114 parameters did not expand identifiers


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

Branch: refs/heads/develop
Commit: a3abbdb14f49b695c113e61de27d1dcc608de97c
Parents: 218c318
Author: Alex Harui <ah...@apache.org>
Authored: Tue Nov 15 10:06:12 2016 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Tue Nov 15 10:06:12 2016 -0800

----------------------------------------------------------------------
 .../compiler/internal/codegen/js/goog/JSGoogEmitter.java     | 6 +++++-
 .../compiler/internal/codegen/js/flexjs/TestFlexJSClass.java | 8 ++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a3abbdb1/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
index b0af5b1..8486ab0 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
@@ -46,9 +46,11 @@ import org.apache.flex.compiler.internal.definitions.FunctionDefinition;
 import org.apache.flex.compiler.internal.definitions.NamespaceDefinition.INamepaceDeclarationDirective;
 import org.apache.flex.compiler.internal.scopes.PackageScope;
 import org.apache.flex.compiler.internal.tree.as.ChainedVariableNode;
+import org.apache.flex.compiler.internal.tree.as.ExpressionNodeBase;
 import org.apache.flex.compiler.internal.tree.as.FunctionCallNode;
 import org.apache.flex.compiler.internal.tree.as.FunctionNode;
 import org.apache.flex.compiler.internal.tree.as.MemberAccessExpressionNode;
+import org.apache.flex.compiler.internal.tree.as.parts.VariableDecorationPart;
 import org.apache.flex.compiler.problems.ICompilerProblem;
 import org.apache.flex.compiler.projects.ICompilerProject;
 import org.apache.flex.compiler.scopes.IASScope;
@@ -837,7 +839,9 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
                     code.append(ASEmitterTokens.SPACE.getToken());
                     code.append(ASEmitterTokens.COLON.getToken());
                     code.append(ASEmitterTokens.SPACE.getToken());
-                    code.append(pnode.getDefaultValue());
+                    
+                    IExpressionNode assignedValueNode = pnode.getAssignedValueNode();
+                    code.append(stringifyNode(assignedValueNode));
                     code.append(ASEmitterTokens.SEMICOLON.getToken());
 
                     write(code.toString());

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/a3abbdb1/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
index 54f4f03..da74f36 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSClass.java
@@ -440,6 +440,14 @@ public class TestFlexJSClass extends TestGoogClass
         assertOut("/**\n * @constructor\n * @extends {flash.events.EventDispatcher}\n * @param {string} arg1\n * @param {number} arg2\n */\norg.apache.flex.A = function(arg1, arg2) {\n  org.apache.flex.A.base(this, 'constructor');\n  \n  this.foo = [];\n  arg2 = arg2 + 2;\n};\ngoog.inherits(org.apache.flex.A, flash.events.EventDispatcher);\n\n\n/**\n * @export\n * @type {Array}\n */\norg.apache.flex.A.prototype.foo;");
     }
 
+    @Test
+    public void testConstructor_withBodyAndStaticInitializer()
+    {
+        IClassNode node = getClassNode("public class A {public static const NAME:String = 'Dummy'; public function A(arg1:String = NAME) {_name = arg1;} private var _name:String;}");
+        asBlockWalker.visitClass(node);
+        assertOut("/**\n * @constructor\n * @param {string=} arg1\n */\norg.apache.flex.A = function(arg1) {\n  arg1 = typeof arg1 !== 'undefined' ? arg1 : org.apache.flex.A.NAME;\n  this._name = arg1;\n};\n\n\n/**\n * @export\n * @const\n * @type {string}\n */\norg.apache.flex.A.NAME = 'Dummy';\n\n\n/**\n * @private\n * @type {string}\n */\norg.apache.flex.A.prototype._name;");
+    }
+    
     protected IBackend createBackend()
     {
         return new FlexJSBackend();