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/04/09 01:05:22 UTC

[16/18] git commit: [flex-falcon] [refs/heads/develop] - re-fix FLEX-34771 in defineProp and add test

re-fix FLEX-34771 in defineProp and add test


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

Branch: refs/heads/develop
Commit: 6e79a10d3b44c29fb393d67a603810d0717cd1c6
Parents: 4d501de
Author: Alex Harui <ah...@apache.org>
Authored: Wed Apr 8 08:01:20 2015 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Wed Apr 8 08:01:20 2015 -0700

----------------------------------------------------------------------
 .../internal/codegen/mxml/TestMXMLScript.java   |  1 -
 .../mxml/flexjs/TestFlexJSMXMLScript.java       | 51 ++++++++++++++++++++
 .../compiler/internal/test/FlexJSTestBase.java  |  2 +-
 .../codegen/js/flexjs/JSFlexJSEmitter.java      |  6 +++
 .../internal/codegen/js/goog/JSGoogEmitter.java | 13 ++++-
 5 files changed, 70 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6e79a10d/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/TestMXMLScript.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/TestMXMLScript.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/TestMXMLScript.java
index 9b03d9a..3e49131 100644
--- a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/TestMXMLScript.java
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/TestMXMLScript.java
@@ -103,5 +103,4 @@ public class TestMXMLScript extends MXMLTestBase
 //
 //        assertOut("<script><![CDATA[\n\tvar n:int = 3;\n\tfor (var i:int = 0; i < n; i++) {\n\tAlert.show(\"Hi\");\n};\n]]></script>");
     }
-
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6e79a10d/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/TestFlexJSMXMLScript.java
----------------------------------------------------------------------
diff --git a/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/TestFlexJSMXMLScript.java b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/TestFlexJSMXMLScript.java
new file mode 100644
index 0000000..8984cd4
--- /dev/null
+++ b/compiler.jx.tests/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/TestFlexJSMXMLScript.java
@@ -0,0 +1,51 @@
+/*
+ *
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.flex.compiler.internal.codegen.mxml.flexjs;
+
+import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSEmitter;
+import org.apache.flex.compiler.internal.test.FlexJSTestBase;
+import org.apache.flex.compiler.tree.mxml.IMXMLDocumentNode;
+import org.apache.flex.compiler.tree.mxml.IMXMLScriptNode;
+import org.junit.Test;
+
+public class TestFlexJSMXMLScript extends FlexJSTestBase
+{
+
+    @Test
+    public void testSuperInScript()
+    {
+        String code = "" + "<fx:Script><![CDATA["
+                + "    override public function addedToParent():void {"
+                + "    super.addedToParent();}"
+                + "]]></fx:Script>";
+
+        IMXMLScriptNode node = (IMXMLScriptNode) getNode(code,
+                IMXMLScriptNode.class, FlexJSTestBase.WRAP_LEVEL_DOCUMENT);
+
+        IMXMLDocumentNode dnode = (IMXMLDocumentNode) node
+        	.getAncestorOfType(IMXMLDocumentNode.class);
+        ((JSFlexJSEmitter)(mxmlBlockWalker.getASEmitter())).thisClass = dnode.getDefinition();
+        mxmlBlockWalker.visitDocument(dnode);
+        String appName = dnode.getQualifiedName();
+        String outTemplate = "/**\n * AppName\n *\n * @fileoverview\n *\n * @suppress {checkTypes}\n */\n\ngoog.provide('AppName');\n\ngoog.require('org_apache_flex_core_Application');\n\n\n\n\n/**\n * @constructor\n * @extends {org_apache_flex_core_Application}\n */\nAppName = function() {\n  AppName.base(this, 'constructor');\n  \n  /**\n   * @private\n   * @type {Array}\n   */\n  this.mxmldd;\n  \n  /**\n   * @private\n   * @type {Array}\n   */\n  this.mxmldp;\n};\ngoog.inherits(AppName, org_apache_flex_core_Application);\n\n\n/**\n * Metadata\n *\n * @type {Object.<string, Array.<Object>>}\n */\nAppName.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'AppName', qName: 'AppName' }] };\n\n\n/**\n * @expose\n * @override\n */\nAppName.prototype.addedToParent = function() {\n  AppName.base(this, 'addedToParent');\n};\n\n\n";
+        	
+        assertOut(outTemplate.replaceAll("AppName", appName));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6e79a10d/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 0f6e6d0..8ce033d 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
@@ -103,7 +103,7 @@ public class FlexJSTestBase extends TestBase
     {
         if (wrapLevel >= WRAP_LEVEL_DOCUMENT)
             code = ""
-                    + "<basic:Application xmlns:basic=\"library://ns.apache.org/flexjs/basic\">"
+                    + "<basic:Application xmlns:fx=\"http://ns.adobe.com/mxml/2009\" xmlns:basic=\"library://ns.apache.org/flexjs/basic\">"
                     + code + "</basic:Application>";
 
         IMXMLFileNode node = compileMXML(code);

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6e79a10d/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
index d78c83f..792287b 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
@@ -2160,4 +2160,10 @@ public class JSFlexJSEmitter extends JSGoogEmitter implements IJSFlexJSEmitter
     	name = name.replaceAll("\\.", "_");
     	return name;
     }
+    
+    @Override
+    protected IDefinition getClassDefinition()
+    {
+    	return thisClass;
+    }
 }

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/6e79a10d/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
----------------------------------------------------------------------
diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
index b253fbc..ebe7c4e 100644
--- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
+++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/goog/JSGoogEmitter.java
@@ -665,7 +665,13 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
         IClassNode cnode = (IClassNode) node
                 .getAncestorOfType(IClassNode.class);
 
-        write(formatQualifiedName(cnode.getQualifiedName()));
+        if (cnode == null)
+        {
+        	IDefinition cdef = getClassDefinition();
+            write(formatQualifiedName(cdef.getQualifiedName()));
+        }
+        else
+        	write(formatQualifiedName(cnode.getQualifiedName()));
         write(ASEmitterTokens.MEMBER_ACCESS);
         write(JSGoogEmitterTokens.GOOG_BASE);
         write(ASEmitterTokens.PAREN_OPEN);
@@ -1166,5 +1172,10 @@ public class JSGoogEmitter extends JSEmitter implements IJSGoogEmitter
     {
     	return name;
     }
+    
+    protected IDefinition getClassDefinition()
+    {
+    	return null;
+    }
 
 }