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 2017/01/03 05:35:27 UTC
git commit: [flex-falcon] [refs/heads/develop] - fix inject_html
Repository: flex-falcon
Updated Branches:
refs/heads/develop d66093a73 -> dfa081565
fix inject_html
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/dfa08156
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/dfa08156
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/dfa08156
Branch: refs/heads/develop
Commit: dfa0815652a3172a92a8068075a8fd5067fc1e18
Parents: d66093a
Author: Alex Harui <ah...@apache.org>
Authored: Mon Jan 2 21:35:27 2017 -0800
Committer: Alex Harui <ah...@apache.org>
Committed: Mon Jan 2 21:35:27 2017 -0800
----------------------------------------------------------------------
.../apache/flex/compiler/clients/MXMLJSC.java | 4 -
.../codegen/js/flexjs/JSFlexJSDocEmitter.java | 20 +++--
.../internal/codegen/js/jx/ClassEmitter.java | 7 +-
.../codegen/js/flexjs/TestFlexJSEmitter.java | 79 +++++++++++++++++++-
.../js/flexjs/TestFlexJSExpressions.java | 1 -
5 files changed, 97 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dfa08156/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java
index 54b1bad..bb10a06 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/clients/MXMLJSC.java
@@ -152,7 +152,6 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
}
public static JSOutputType jsOutputType;
- public static boolean keepASDoc;
@Override
public String getName()
@@ -305,9 +304,6 @@ public class MXMLJSC implements JSCompilerEntryPoint, ProblemQueryProvider,
{
final boolean continueCompilation = configure(args);
- // ToDo (erikdebruin): use JSSharedData for globals ...
-// keepASDoc = ((JSGoogConfiguration) config).getKeepASDoc();
-
/* if (outProblems != null && !config.isVerbose())
JSSharedData.STDOUT = JSSharedData.STDERR = null;*/
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dfa08156/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
index 71306d4..2c49b25 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSDocEmitter.java
@@ -39,6 +39,7 @@ import org.apache.flex.compiler.internal.codegen.js.JSEmitterTokens;
import org.apache.flex.compiler.internal.codegen.js.JSSessionModel;
import org.apache.flex.compiler.internal.codegen.js.goog.JSGoogDocEmitter;
import org.apache.flex.compiler.internal.codegen.js.jx.BindableEmitter;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
import org.apache.flex.compiler.internal.scopes.ASScope;
import org.apache.flex.compiler.projects.ICompilerProject;
import org.apache.flex.compiler.tree.as.IDefinitionNode;
@@ -105,6 +106,9 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
@Override
public void emitMethodDoc(IFunctionNode node, ICompilerProject project)
{
+ FlexJSProject fjp = (FlexJSProject)project;
+ boolean keepASDoc = fjp.config != null && fjp.config.getKeepASDoc();
+
coercionList = null;
ignoreList = null;
emitStringConversions = true;
@@ -120,7 +124,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
if (node.isConstructor())
{
- if (asDoc != null && MXMLJSC.keepASDoc)
+ if (asDoc != null && keepASDoc)
write(changeAnnotations(asDoc.commentNoEnd()));
else
begin();
@@ -192,7 +196,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
String ns = node.getNamespace();
if (ns != null)
{
- if (asDoc != null && MXMLJSC.keepASDoc)
+ if (asDoc != null && keepASDoc)
{
String docText = asDoc.commentNoEnd();
String keepToken = JSFlexJSEmitterTokens.EMIT_COERCION
@@ -224,7 +228,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
{
if (!hasDoc)
{
- if (asDoc != null && MXMLJSC.keepASDoc)
+ if (asDoc != null && keepASDoc)
write(changeAnnotations(asDoc.commentNoEnd()));
else
begin();
@@ -253,7 +257,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
{
if (!hasDoc)
{
- if (asDoc != null && MXMLJSC.keepASDoc)
+ if (asDoc != null && keepASDoc)
write(changeAnnotations(asDoc.commentNoEnd()));
else
begin();
@@ -275,7 +279,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
{
if (!hasDoc)
{
- if (asDoc != null && MXMLJSC.keepASDoc)
+ if (asDoc != null && keepASDoc)
write(changeAnnotations(asDoc.commentNoEnd()));
else
begin();
@@ -337,6 +341,8 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
public void emitInterfaceMemberDoc(IDefinitionNode node,
ICompilerProject project)
{
+ FlexJSProject fjp = (FlexJSProject)project;
+ boolean keepASDoc = fjp.config != null && fjp.config.getKeepASDoc();
boolean hasDoc = false;
ASDocComment asDoc = (ASDocComment) ((IFunctionNode) node)
@@ -345,7 +351,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
String returnType = ((IFunctionNode) node).getReturnType();
if (returnType != "" && returnType != ASEmitterTokens.VOID.getToken()) // has return
{
- if (asDoc != null && MXMLJSC.keepASDoc)
+ if (asDoc != null && keepASDoc)
write(changeAnnotations(asDoc.commentNoEnd()));
else
begin();
@@ -363,7 +369,7 @@ public class JSFlexJSDocEmitter extends JSGoogDocEmitter
{
if (!hasDoc)
{
- if (asDoc != null && MXMLJSC.keepASDoc)
+ if (asDoc != null && keepASDoc)
write(changeAnnotations(asDoc.commentNoEnd()));
else
begin();
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dfa08156/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
index 5cb397c..5a3dcc3 100644
--- a/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
+++ b/compiler-jx/src/main/java/org/apache/flex/compiler/internal/codegen/js/jx/ClassEmitter.java
@@ -31,6 +31,7 @@ import org.apache.flex.compiler.internal.codegen.js.flexjs.JSFlexJSEmitter;
import org.apache.flex.compiler.internal.codegen.js.goog.JSGoogEmitterTokens;
import org.apache.flex.compiler.internal.codegen.js.utils.DocEmitterUtils;
import org.apache.flex.compiler.internal.codegen.js.utils.EmitterUtils;
+import org.apache.flex.compiler.internal.projects.FlexJSProject;
import org.apache.flex.compiler.internal.tree.as.IdentifierNode;
import org.apache.flex.compiler.tree.ASTNodeID;
import org.apache.flex.compiler.tree.as.IASNode;
@@ -53,13 +54,17 @@ public class ClassEmitter extends JSSubEmitter implements
@Override
public void emit(IClassNode node)
{
+ boolean keepASDoc = false;
+ FlexJSProject project = (FlexJSProject)getEmitter().getWalker().getProject();
+ keepASDoc = project.config != null && project.config.getKeepASDoc();
+
getModel().pushClass(node.getDefinition());
// TODO (mschmalle) will remove this cast as more things get abstracted
JSFlexJSEmitter fjs = (JSFlexJSEmitter) getEmitter();
ASDocComment asDoc = (ASDocComment) node.getASDocComment();
- if (asDoc != null && MXMLJSC.keepASDoc)
+ if (asDoc != null && keepASDoc)
DocEmitterUtils.loadImportIgnores(fjs, asDoc.commentNoEnd());
IClassDefinition definition = node.getDefinition();
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dfa08156/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
index 62d5265..5d1c5bf 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSEmitter.java
@@ -21,8 +21,10 @@ package org.apache.flex.compiler.internal.codegen.js.flexjs;
import org.apache.flex.compiler.clients.MXMLJSC;
import org.apache.flex.compiler.driver.IBackend;
+import org.apache.flex.compiler.exceptions.ConfigurationException;
import org.apache.flex.compiler.internal.codegen.js.goog.TestGoogEmitter;
import org.apache.flex.compiler.internal.driver.js.flexjs.FlexJSBackend;
+import org.apache.flex.compiler.internal.driver.js.goog.JSGoogConfiguration;
import org.apache.flex.compiler.internal.parsing.as.FlexJSASDocDelegate;
import org.apache.flex.compiler.internal.projects.FlexJSProject;
import org.apache.flex.compiler.tree.as.IFileNode;
@@ -254,6 +256,74 @@ public class TestFlexJSEmitter extends TestGoogEmitter
"};\n");
}
+ @Test
+ public void testInjectHTML()
+ {
+ String code = "package com.example.components {\n"
+ + "public class TestClass {"
+ + "/**\n"
+ + " * <inject_html>\n"
+ + " * This will be injected.\n"
+ + " * </inject_html>\n"
+ + " */\n"
+ + "public function TestClass() { } } }";
+ IFileNode node = compileAS(code);
+ asBlockWalker.visitFile(node);
+ assertOutWithMetadata("/**\n" +
+ " * com.example.components.TestClass\n" +
+ " *\n" +
+ " * @fileoverview\n" +
+ " *\n" +
+ " * @suppress {checkTypes|accessControls}\n" +
+ " */\n" +
+ "\n" +
+ "goog.provide('com.example.components.TestClass');\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "/**\n" +
+ " * <inject_html>\n" +
+ " * This will be injected.\n" +
+ " * </inject_html>\n" +
+ " * @constructor\n" +
+ " */\n" +
+ "com.example.components.TestClass = function() {\n" +
+ "};\n" +
+ "\n" +
+ "\n" +
+ "/**\n" +
+ " * Metadata\n" +
+ " *\n" +
+ " * @type {Object.<string, Array.<Object>>}\n" +
+ " */\n" +
+ "com.example.components.TestClass.prototype.FLEXJS_CLASS_INFO = { names: [{ name: 'TestClass', qName: 'com.example.components.TestClass', kind: 'class' }] };\n" +
+ "\n" +
+ "\n" +
+ "/**\n" +
+ " * Prevent renaming of class. Needed for reflection.\n" +
+ " */\n" +
+ "goog.exportSymbol('com.example.components.TestClass', com.example.components.TestClass);\n" +
+ "\n" +
+ "\n" +
+ "\n" +
+ "/**\n" +
+ " * Reflection\n" +
+ " *\n" +
+ " * @return {Object.<string, Function>}\n" +
+ " */\n" +
+ "com.example.components.TestClass.prototype.FLEXJS_REFLECTION_INFO = function () {\n" +
+ " return {\n" +
+ " variables: function () {return {};},\n" +
+ " accessors: function () {return {};},\n" +
+ " methods: function () {\n" +
+ " return {\n" +
+ " 'TestClass': { type: '', declaredBy: 'com.example.components.TestClass'}\n" +
+ " };\n" +
+ " }\n" +
+ " };\n" +
+ "};\n");
+ }
+
@Override
@Test
@@ -343,7 +413,14 @@ public class TestFlexJSEmitter extends TestGoogEmitter
{
super.addDependencies();
workspace.setASDocDelegate(new FlexJSASDocDelegate());
- MXMLJSC.keepASDoc = true;
+ if (project.config == null)
+ project.config = new JSGoogConfiguration();
+ try {
+ project.config.setKeepASDoc(null, true);
+ } catch (ConfigurationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
}
}
http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/dfa08156/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
----------------------------------------------------------------------
diff --git a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
index 29c6ff6..4791f1e 100644
--- a/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
+++ b/compiler-jx/src/test/java/org/apache/flex/compiler/internal/codegen/js/flexjs/TestFlexJSExpressions.java
@@ -59,7 +59,6 @@ public class TestFlexJSExpressions extends TestGoogExpressions
// TODO Auto-generated catch block
e.printStackTrace();
}
- MXMLJSC.keepASDoc = true;
((FlexJSProject)project).config = config;
super.setUp();
}