Skip to content

Commit

Permalink
Allow sentinel-only output files in checksOnly mode to make bazel happy.
Browse files Browse the repository at this point in the history
-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=123182655
  • Loading branch information
tbreisacher authored and blickly committed May 25, 2016
1 parent 467c5b7 commit 3d5b393
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 6 deletions.
Expand Up @@ -35,6 +35,7 @@
import com.google.gson.stream.JsonReader; import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter; import com.google.gson.stream.JsonWriter;
import com.google.javascript.jscomp.CompilerOptions.JsonStreamMode; import com.google.javascript.jscomp.CompilerOptions.JsonStreamMode;
import com.google.javascript.jscomp.CompilerOptions.OutputJs;
import com.google.javascript.jscomp.CompilerOptions.TweakProcessing; import com.google.javascript.jscomp.CompilerOptions.TweakProcessing;
import com.google.javascript.jscomp.deps.ClosureBundler; import com.google.javascript.jscomp.deps.ClosureBundler;
import com.google.javascript.jscomp.deps.SourceCodeEscapers; import com.google.javascript.jscomp.deps.SourceCodeEscapers;
Expand Down Expand Up @@ -973,6 +974,12 @@ static void writeOutput(Appendable out, Compiler compiler, String code,
String wrapper, String codePlaceholder, String wrapper, String codePlaceholder,
@Nullable Function<String, String> escaper) @Nullable Function<String, String> escaper)
throws IOException { throws IOException {
if (compiler.getOptions().outputJs == OutputJs.SENTINEL) {
out.append("// No JS output because the compiler was run in checks-only mode.\n");
return;
}
Preconditions.checkState(compiler.getOptions().outputJs == OutputJs.NORMAL);

int pos = wrapper.indexOf(codePlaceholder); int pos = wrapper.indexOf(codePlaceholder);
if (pos != -1) { if (pos != -1) {
String prefix = ""; String prefix = "";
Expand Down Expand Up @@ -1195,7 +1202,7 @@ int processResults(Result result, List<JSModule> modules, B options) throws IOEx
outputBundle(); outputBundle();
outputModuleGraphJson(); outputModuleGraphJson();
return 0; return 0;
} else if (options.outputJs && result.success) { } else if (options.outputJs != OutputJs.NONE && result.success) {
outputModuleGraphJson(); outputModuleGraphJson();
if (modules == null) { if (modules == null) {
outputSingleBinary(options); outputSingleBinary(options);
Expand Down
4 changes: 3 additions & 1 deletion src/com/google/javascript/jscomp/CommandLineRunner.java
Expand Up @@ -1496,7 +1496,9 @@ protected CompilerOptions createOptions() {
options.setEnvironment(flags.environment); options.setEnvironment(flags.environment);


options.setChecksOnly(flags.checksOnly); options.setChecksOnly(flags.checksOnly);
options.setOutputJs(!flags.checksOnly); if (flags.checksOnly) {
options.setOutputJs(CompilerOptions.OutputJs.NONE);
}


if (flags.useTypesForOptimization) { if (flags.useTypesForOptimization) {
level.setTypeBasedOptimizationOptions(options); level.setTypeBasedOptimizationOptions(options);
Expand Down
16 changes: 12 additions & 4 deletions src/com/google/javascript/jscomp/CompilerOptions.java
Expand Up @@ -717,9 +717,17 @@ public void setAppNameStr(String appNameStr) {
/** Record function information */ /** Record function information */
public boolean recordFunctionInformation; public boolean recordFunctionInformation;


public boolean checksOnly; boolean checksOnly;


public boolean outputJs; static enum OutputJs {
// Don't output anything.
NONE,
// Output a "sentinel" file containing just a comment.
SENTINEL,
// Output the compiled JS.
NORMAL,
}
OutputJs outputJs;


public boolean generateExports; public boolean generateExports;


Expand Down Expand Up @@ -1085,7 +1093,7 @@ public CompilerOptions() {
appNameStr = ""; appNameStr = "";
recordFunctionInformation = false; recordFunctionInformation = false;
checksOnly = false; checksOnly = false;
outputJs = true; outputJs = OutputJs.NORMAL;
generateExports = false; generateExports = false;
generateExportsAfterTypeChecking = true; generateExportsAfterTypeChecking = true;
exportLocalPropertyDefinitions = false; exportLocalPropertyDefinitions = false;
Expand Down Expand Up @@ -1505,7 +1513,7 @@ public void setChecksOnly(boolean checksOnly) {
this.checksOnly = checksOnly; this.checksOnly = checksOnly;
} }


public void setOutputJs(boolean outputJs) { void setOutputJs(OutputJs outputJs) {
this.outputJs = outputJs; this.outputJs = outputJs;
} }


Expand Down

0 comments on commit 3d5b393

Please sign in to comment.