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 <[email protected]>
Authored: Tue Nov 15 10:06:12 2016 -0800
Committer: Alex Harui <[email protected]>
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();

Reply via email to