You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2020/05/14 14:44:51 UTC
[royale-compiler] 01/01: Fixes #826 in royale-asjs
This is an automated email from the ASF dual-hosted git repository.
yishayw pushed a commit to branch inject_script
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit 1d085b95d47f09e0162d19bdaaac9dc1edb007ca
Author: DESKTOP-RH4S838\Yishay <yi...@hotmail.com>
AuthorDate: Thu May 14 17:44:33 2020 +0300
Fixes #826 in royale-asjs
---
.../codegen/mxml/royale/MXMLRoyalePublisher.java | 40 ++++++++++++----------
.../compiler/internal/graph/GoogDepsWriter.java | 12 +++----
.../codegen/js/royale/TestRoyaleEmitter.java | 10 +++---
3 files changed, 33 insertions(+), 29 deletions(-)
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyalePublisher.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyalePublisher.java
index 1f9fb05..89d364f 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyalePublisher.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/mxml/royale/MXMLRoyalePublisher.java
@@ -517,41 +517,45 @@ public class MXMLRoyalePublisher extends JSGoogPublisher implements IJSGoogPubli
// is generated here so it can be used for outputting the html templates.
String depsFileData = gdw.generateDeps(project, problems);
- // FOR MODULES: this generate inject_html lines for js to be added to __deps.js
- String moduleAdditionHTML = "";
+ // FOR MODULES: this generates inject_script lines for js to be added to __deps.js
+ String additionalScript = "";
if (project.isModule(mainClassQName))
{
for (String s : additionalHTML)
{
- moduleAdditionHTML += "document.head.innerHTML += '"+ s.trim() + "';";
+ additionalScript += s.trim() + System.lineSeparator();
}
// need better test someday
depsFileData += "\ngoog.require('" + mainClassQName + "');\n";
- writeFile(new File(intermediateDir, projectName + "__deps.js"), depsFileData + moduleAdditionHTML + "\n", false);
+ writeFile(new File(intermediateDir, projectName + "__deps.js"), depsFileData + additionalScript + "\n", false);
gdw.needCSS = true;
if (configuration.release()) {
- writeFile(new File(releaseDir, projectName + ".js"), moduleAdditionHTML, false);
+ writeFile(new File(releaseDir, projectName + ".js"), additionalScript, false);
}
}
else
{
File template = ((JSGoogConfiguration)configuration).getHtmlTemplate();
+ List<String> wrappedScript = new ArrayList<String>();
+ wrappedScript.add("<script type=\"text/javascript\">");
+ wrappedScript.addAll(additionalHTML);
+ wrappedScript.add("</script>");
// Create the index.html for the debug-js version.
if (!((JSGoogConfiguration)configuration).getSkipTranspile()) {
if (template != null) {
- writeTemplate(template, "intermediate", projectName, mainClassQName, intermediateDir, depsFileData, additionalHTML);
+ writeTemplate(template, "intermediate", projectName, mainClassQName, intermediateDir, depsFileData, wrappedScript);
} else {
- writeHTML("intermediate", projectName, mainClassQName, intermediateDir, depsFileData, additionalHTML);
+ writeHTML("intermediate", projectName, mainClassQName, intermediateDir, depsFileData, wrappedScript);
}
}
// Create the index.html for the release-js version.
if (configuration.release()) {
if (template != null) {
- writeTemplate(template, "release", projectName, mainClassQName, releaseDir, depsFileData, additionalHTML);
+ writeTemplate(template, "release", projectName, mainClassQName, releaseDir, depsFileData, wrappedScript);
} else {
- writeHTML("release", projectName, mainClassQName, releaseDir, null, additionalHTML);
+ writeHTML("release", projectName, mainClassQName, releaseDir, null, wrappedScript);
}
}
}
@@ -586,11 +590,11 @@ public class MXMLRoyalePublisher extends JSGoogPublisher implements IJSGoogPubli
ok = compilerWrapper.compile();
- // FOR MODULES: add moduleAdditionHTML to main js release file too
+ // FOR MODULES: add additionalScript to main js release file too
if (project.isModule(mainClassQName))
{
StringBuilder appendString = new StringBuilder();
- appendString.append(moduleAdditionHTML);
+ appendString.append(additionalScript);
writeFile(projectReleaseMainFile, appendString.toString(), true);
}
@@ -690,17 +694,17 @@ public class MXMLRoyalePublisher extends JSGoogPublisher implements IJSGoogPubli
{
boolean inDocComment = false;
boolean inConstructor = false;
- boolean inInjectHTML = false;
+ boolean inInjectScript = false;
for (int i = 0; i < lines.size(); i++)
{
String line = lines.get(i);
if (inDocComment)
{
- if (inInjectHTML)
+ if (inInjectScript)
{
- if (line.indexOf("</inject_html>") > -1)
+ if (line.indexOf("</inject_script>") > -1)
{
- inInjectHTML = false;
+ inInjectScript = false;
continue;
}
line = line.trim();
@@ -709,10 +713,10 @@ public class MXMLRoyalePublisher extends JSGoogPublisher implements IJSGoogPubli
additionalHTML.add(line);
continue;
}
- int c = line.indexOf("<inject_html>");
+ int c = line.indexOf("<inject_script>");
if (c != -1)
{
- inInjectHTML = true;
+ inInjectScript = true;
continue;
}
if (!inConstructor)
@@ -732,7 +736,7 @@ public class MXMLRoyalePublisher extends JSGoogPublisher implements IJSGoogPubli
//we're done
break;
}
- inInjectHTML = false;
+ inInjectScript = false;
inDocComment = false;
inConstructor = false;
}
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java
index 9feedaa..e64e17b 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java
@@ -1079,7 +1079,7 @@ public class GoogDepsWriter {
fi.suppressLine = -1;
fi.fileoverviewLine = -1;
fi.googProvideLine = -1;
- boolean inInjectHTML = false;
+ boolean inInjectScript = false;
for (int i = 0; i < n; i++)
{
String line = lines.get(i);
@@ -1091,11 +1091,11 @@ public class GoogDepsWriter {
}
else
{
- if (inInjectHTML)
+ if (inInjectScript)
{
- if (line.indexOf("</inject_html>") > -1)
+ if (line.indexOf("</inject_script>") > -1)
{
- inInjectHTML = false;
+ inInjectScript = false;
continue;
}
line = line.trim();
@@ -1104,10 +1104,10 @@ public class GoogDepsWriter {
additionalHTML.add(line);
continue;
}
- c = line.indexOf("<inject_html>");
+ c = line.indexOf("<inject_script>");
if (c > -1)
{
- inInjectHTML = true;
+ inInjectScript = true;
}
c = line.indexOf("@constructor");
if (c > -1)
diff --git a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleEmitter.java b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleEmitter.java
index 95cf7b7..e8aeae6 100644
--- a/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleEmitter.java
+++ b/compiler-jx/src/test/java/org/apache/royale/compiler/internal/codegen/js/royale/TestRoyaleEmitter.java
@@ -247,14 +247,14 @@ public class TestRoyaleEmitter extends TestGoogEmitter
}
@Test
- public void testInjectHTML()
+ public void testInjectScript()
{
String code = "package com.example.components {\n"
+ "public class TestClass {"
+ "/**\n"
- + " * <inject_html>\n"
+ + " * <inject_script>\n"
+ " * This will be injected.\n"
- + " * </inject_html>\n"
+ + " * </inject_script>\n"
+ " */\n"
+ "public function TestClass() { } } }";
IFileNode node = compileAS(code);
@@ -272,9 +272,9 @@ public class TestRoyaleEmitter extends TestGoogEmitter
"\n" +
"\n" +
"/**\n" +
- " * <inject_html>\n" +
+ " * <inject_script>\n" +
" * This will be injected.\n" +
- " * </inject_html>\n" +
+ " * </inject_script>\n" +
" * @constructor\n" +
" */\n" +
"com.example.components.TestClass = function() {\n" +