[FalconJX] made FlexJS MXML tests pass Changed code to make the FlexJS MXML tests pass. Changes concern mainly indentation and a minor changes to the reference files to bring them inline with required JS output.
Signed-off-by: Erik de Bruin <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/0eb72d8b Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/0eb72d8b Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/0eb72d8b Branch: refs/heads/develop Commit: 0eb72d8bcf06a79722064c560cd1de0f93b11576 Parents: d9e8fea Author: Erik de Bruin <[email protected]> Authored: Tue Apr 9 17:07:24 2013 +0200 Committer: Erik de Bruin <[email protected]> Committed: Tue Apr 9 17:07:24 2013 +0200 ---------------------------------------------------------------------- .../mxml/flexjs/TestFlexJSMXMLApplication.java | 3 -- .../compiler/internal/test/FlexJSTestBase.java | 2 +- .../flexjs/files/FlexJSTest_2013_03_11_result.js | 5 ++- .../files/MyInitialView_2013_03_11_result.js | 19 ++++++++------ .../codegen/mxml/flexjs/MXMLFlexJSEmitter.java | 20 ++++++++------ 5 files changed, 26 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/0eb72d8b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/TestFlexJSMXMLApplication.java ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/TestFlexJSMXMLApplication.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/TestFlexJSMXMLApplication.java index 998b738..ddf143b 100644 --- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/TestFlexJSMXMLApplication.java +++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/TestFlexJSMXMLApplication.java @@ -2,13 +2,11 @@ package org.apache.flex.compiler.internal.codegen.mxml.flexjs; import org.apache.flex.compiler.internal.test.FlexJSTestBase; import org.apache.flex.compiler.tree.mxml.IMXMLFileNode; -import org.junit.Ignore; import org.junit.Test; public class TestFlexJSMXMLApplication extends FlexJSTestBase { - @Ignore @Test public void testFlexJSMainFile() { @@ -24,7 +22,6 @@ public class TestFlexJSMXMLApplication extends FlexJSTestBase assertOut(getCodeFromFile(fileName + "_result", true, "flexjs/files")); } - @Ignore @Test public void testFlexJSInitialViewFile() { http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/0eb72d8b/compiler.jx.tests/src/org/apache/flex/compiler/internal/test/FlexJSTestBase.java ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/test/FlexJSTestBase.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/test/FlexJSTestBase.java index 3eb5626..49913ce 100644 --- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/test/FlexJSTestBase.java +++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/test/FlexJSTestBase.java @@ -58,7 +58,7 @@ public class FlexJSTestBase extends TestBase @Override protected void addSourcePaths(List<File> sourcePaths) { - sourcePaths.add(new File(env.ASJS + "/examples/FlexJSTest_again")); + sourcePaths.add(new File(env.ASJS + "/examples/FlexJSTest_again/src")); sourcePaths.add(new File(FilenameNormalization.normalize("test-files/flexjs/files"))); super.addSourcePaths(sourcePaths); http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/0eb72d8b/compiler.jx.tests/test-files/flexjs/files/FlexJSTest_2013_03_11_result.js ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/flexjs/files/FlexJSTest_2013_03_11_result.js b/compiler.jx.tests/test-files/flexjs/files/FlexJSTest_2013_03_11_result.js index 4adc866..9c019fc 100644 --- a/compiler.jx.tests/test-files/flexjs/files/FlexJSTest_2013_03_11_result.js +++ b/compiler.jx.tests/test-files/flexjs/files/FlexJSTest_2013_03_11_result.js @@ -82,11 +82,12 @@ goog.inherits(FlexJSTest_2013_03_11, org.apache.flex.core.Application); /** * @this {FlexJSTest_2013_03_11} * @expose - * @param {flash.events.Event} event + * @param {org.apache.flex.events.Event} event */ FlexJSTest_2013_03_11.prototype.$EH0 = function(event) { - this.model.set_labelText('Hello World'); + var self = this; + this.model/** Cast to models.MyModel */.set_labelText('Hello World'); }; /** http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/0eb72d8b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_2013_03_11_result.js ---------------------------------------------------------------------- diff --git a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_2013_03_11_result.js b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_2013_03_11_result.js index ae82674..dc1f4dc 100644 --- a/compiler.jx.tests/test-files/flexjs/files/MyInitialView_2013_03_11_result.js +++ b/compiler.jx.tests/test-files/flexjs/files/MyInitialView_2013_03_11_result.js @@ -133,7 +133,7 @@ goog.inherits(MyInitialView_2013_03_11, org.apache.flex.core.ViewBase); */ MyInitialView_2013_03_11.prototype.get_symbol = function() { var self = this; - return this.list.get_selectedItem(); + return (is(self.list.get_selectedItem(), String) ? self.list.get_selectedItem() : null); }; /** @@ -141,37 +141,40 @@ MyInitialView_2013_03_11.prototype.get_symbol = function() { */ MyInitialView_2013_03_11.prototype.get_inputText = function() { var self = this; - return this.input.get_text(); + return self.input.get_text(); }; /** * @this {MyInitialView_2013_03_11} * @expose - * @param {flash.events.MouseEvent} event + * @param {org.apache.flex.events.Event} event */ MyInitialView_2013_03_11.prototype.$EH0 = function(event) { - this.dispatchEvent(org.apache.flex.FlexGlobal.newObject(flash.events.Event, ["buttonClicked"])); + var self = this; + this.dispatchEvent(new flash.events.Event('buttonClicked')); }; /** * @this {MyInitialView_2013_03_11} * @expose - * @param {flash.events.Event} event + * @param {org.apache.flex.events.Event} event */ MyInitialView_2013_03_11.prototype.$EH1 = function(event) { - this.dispatchEvent(org.apache.flex.FlexGlobal.newObject(flash.events.Event, ["listChanged"])); + var self = this; + this.dispatchEvent(new flash.events.Event('listChanged')); }; /** * @this {MyInitialView_2013_03_11} * @expose - * @param {flash.events.MouseEvent} event + * @param {org.apache.flex.events.Event} event */ MyInitialView_2013_03_11.prototype.$EH2 = function(event) { - this.dispatchEvent(org.apache.flex.FlexGlobal.newObject(flash.events.Event, ["transferClicked"])); + var self = this; + this.dispatchEvent(new flash.events.Event('transferClicked')); }; /** http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/0eb72d8b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java ---------------------------------------------------------------------- diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java index 5db7405..0531278 100644 --- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java +++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java @@ -123,8 +123,9 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements write(ASEmitterTokens.FUNCTION); write(ASEmitterTokens.PAREN_OPEN); writeToken(ASEmitterTokens.PAREN_CLOSE); - indentPush(); - writeNewline(ASEmitterTokens.BLOCK_OPEN); + if (!isMainFile) + indentPush(); + writeNewline(ASEmitterTokens.BLOCK_OPEN, true); write(JSGoogEmitterTokens.GOOG_BASE); write(ASEmitterTokens.PAREN_OPEN); write(ASEmitterTokens.THIS); @@ -184,14 +185,13 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements writeNewline(" */"); writeNewline(cname + ".prototype." + event.eventHandler + " = function(event)"); - indentPush(); - writeNewline("{"); - indentPop(); + writeNewline(ASEmitterTokens.BLOCK_OPEN, true); writeNewline("var self = this;"); - writeNewline(event.value + ASEmitterTokens.SEMICOLON.getToken()); + writeNewline(event.value + ASEmitterTokens.SEMICOLON.getToken(), false); - writeNewline("};"); + write(ASEmitterTokens.BLOCK_CLOSE); + writeNewline(";"); writeNewline(); } @@ -309,7 +309,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements writeNewline("this.mxmldp = data;"); writeNewline("}"); indentPop(); - writeNewline("return this.mxmldp;"); + writeNewline("return this.mxmldp;", false); writeNewline("};"); } @@ -332,6 +332,8 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements IASEmitter asEmitter = ((IMXMLBlockWalker) getMXMLWalker()) .getASEmitter(); + String indent = getIndent(getCurrentIndent()); + StringBuilder sb = null; int len = node.getChildCount(); if (len > 0) @@ -339,7 +341,7 @@ public class MXMLFlexJSEmitter extends MXMLEmitter implements sb = new StringBuilder(); for (int i = 0; i < len; i++) { - sb.append(asEmitter.stringifyNode(node.getChild(i))); + sb.append(indent + asEmitter.stringifyNode(node.getChild(i))); if (i < len - 1) { sb.append(ASEmitterTokens.SEMICOLON.getToken());
