Skip to content

Commit 4e6ae10

Browse files
authored
Minify boolean and numeric literals in obfuscated mode (#10291)
Fixes #10281 Also cleans up some minor code style issues in the modified files. Does NOT implement * Infinity -> 1/0 * undefined -> void 0 * 1.2E100 -> 12E99
1 parent 48efe15 commit 4e6ae10

9 files changed

Lines changed: 238 additions & 96 deletions

dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@
151151
import com.google.gwt.dev.js.JsStackEmulator;
152152
import com.google.gwt.dev.js.JsStaticEval;
153153
import com.google.gwt.dev.js.JsSymbolResolver;
154+
import com.google.gwt.dev.js.JsToStringGenerationVisitor;
154155
import com.google.gwt.dev.js.JsUnusedFunctionRemover;
155156
import com.google.gwt.dev.js.JsVerboseNamer;
156157
import com.google.gwt.dev.js.SizeBreakdown;
@@ -772,7 +773,9 @@ private void generateJavaScriptCode(JavaToJavaScriptMap jjsMap, String[] jsFragm
772773
DefaultTextOutput out = new DefaultTextOutput(!options.isIncrementalCompileEnabled() &&
773774
options.getOutput().shouldMinimize());
774775
JsReportGenerationVisitor v = new JsReportGenerationVisitor(out, jjsMap,
775-
options.isJsonSoycEnabled());
776+
options.isJsonSoycEnabled(),
777+
new JsToStringGenerationVisitor.PrintOptions(false,
778+
options.getOutput() == JsOutputOption.OBFUSCATED));
776779
v.accept(jsProgram.getFragmentBlock(i));
777780

778781
StatementRanges statementRanges = v.getStatementRanges();

dev/core/src/com/google/gwt/dev/js/JsReportGenerationVisitor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ public class JsReportGenerationVisitor extends
5656
private List<JsNode> parentStack = Lists.newArrayList();
5757

5858
public JsReportGenerationVisitor(TextOutput out, JavaToJavaScriptMap map,
59-
boolean needSourcemapNames) {
60-
super(out, map);
59+
boolean needSourcemapNames, PrintOptions options) {
60+
super(out, map, options);
6161
this.out = out;
6262
this.needSourcemapNames = needSourcemapNames;
6363
}

dev/core/src/com/google/gwt/dev/js/JsSourceGenerationVisitor.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ public JsSourceGenerationVisitor(TextOutput out) {
3636
/**
3737
* Generate the output source code using short or long identifiers.
3838
*
39-
* @param useLongIdents if true, emit all identifiers in long form
39+
* @param options minification options
4040
*/
41-
public JsSourceGenerationVisitor(TextOutput out, boolean useLongIdents) {
42-
super(out, useLongIdents);
41+
public JsSourceGenerationVisitor(TextOutput out, PrintOptions options) {
42+
super(out, options);
4343
}
4444

4545
@Override

dev/core/src/com/google/gwt/dev/js/JsSourceGenerationVisitorWithSizeBreakdown.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ public class JsSourceGenerationVisitorWithSizeBreakdown extends JsSourceGenerati
4040
private final Map<JsName, Integer> sizeMap = new HashMap<JsName, Integer>();
4141

4242
public JsSourceGenerationVisitorWithSizeBreakdown(TextOutput out,
43-
JavaToJavaScriptMap javaToJavaScriptMap) {
44-
super(out);
43+
JavaToJavaScriptMap javaToJavaScriptMap, PrintOptions options) {
44+
super(out, options);
4545
this.out = out;
4646
this.map = javaToJavaScriptMap;
4747
}

0 commit comments

Comments
 (0)