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