Add -XjsInteropMode option to SuperDevMode
The option is already present when compiling a GWT app and is required
to use JsInterop features like @JsType annotations. This change makes it
possible to debug the use of JsInterop features while in SuperDevMode.
Change-Id: I108754c59d34f4df6b3bd38df4109af2758f2ebe
diff --git a/dev/codeserver/java/com/google/gwt/dev/codeserver/CompilerOptionsImpl.java b/dev/codeserver/java/com/google/gwt/dev/codeserver/CompilerOptionsImpl.java
index d70afaf..cf1bd86 100644
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/CompilerOptionsImpl.java
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/CompilerOptionsImpl.java
@@ -42,6 +42,7 @@
private final SourceLevel sourceLevel;
private final boolean strictPublicResources;
private final boolean strictSourceResources;
+ private final JsInteropMode jsInteropMode;
CompilerOptionsImpl(CompileDir compileDir, String moduleName, Options options) {
this.compileDir = compileDir;
@@ -52,6 +53,7 @@
this.strictSourceResources = options.enforceStrictResources();
this.strictPublicResources = options.enforceStrictResources();
this.logLevel = options.getLogLevel();
+ this.jsInteropMode = options.getJsInteropMode();
}
@Override
@@ -96,7 +98,7 @@
@Override
public JsInteropMode getJsInteropMode() {
- return JsInteropMode.NONE;
+ return jsInteropMode;
}
@Override
diff --git a/dev/codeserver/java/com/google/gwt/dev/codeserver/Options.java b/dev/codeserver/java/com/google/gwt/dev/codeserver/Options.java
index 0680a12..6c58d5f 100644
--- a/dev/codeserver/java/com/google/gwt/dev/codeserver/Options.java
+++ b/dev/codeserver/java/com/google/gwt/dev/codeserver/Options.java
@@ -18,8 +18,11 @@
import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.dev.ArgProcessorBase;
+import com.google.gwt.dev.util.arg.ArgHandlerJsInteropMode;
import com.google.gwt.dev.util.arg.ArgHandlerLogLevel;
import com.google.gwt.dev.util.arg.ArgHandlerSourceLevel;
+import com.google.gwt.dev.util.arg.JsInteropMode;
+import com.google.gwt.dev.util.arg.OptionJsInteropMode;
import com.google.gwt.dev.util.arg.OptionLogLevel;
import com.google.gwt.dev.util.arg.OptionSourceLevel;
import com.google.gwt.dev.util.arg.SourceLevel;
@@ -47,7 +50,7 @@
private boolean noPrecompile = false;
private boolean isCompileTest = false;
private File workDir;
- private List<String> moduleNames = new ArrayList<String>();
+ private final List<String> moduleNames = new ArrayList<String>();
private boolean allowMissingSourceDir = false;
private final List<File> sourcePath = new ArrayList<File>();
private String bindAddress = "127.0.0.1";
@@ -60,6 +63,7 @@
private boolean failOnError = false;
private boolean strictResources = false;
private int compileTestRecompiles = 0;
+ private JsInteropMode jsInteropMode = JsInteropMode.NONE;
/**
* Sets each option to the appropriate value, based on command-line arguments.
@@ -210,6 +214,10 @@
return failOnError;
}
+ JsInteropMode getJsInteropMode() {
+ return jsInteropMode;
+ }
+
private class ArgProcessor extends ArgProcessorBase {
public ArgProcessor() {
@@ -248,6 +256,16 @@
Options.this.logLevel = logLevel;
}
}));
+ registerHandler(new ArgHandlerJsInteropMode(new OptionJsInteropMode() {
+ @Override
+ public JsInteropMode getJsInteropMode() {
+ return Options.this.jsInteropMode;
+ }
+
+ @Override
+ public void setJsInteropMode(JsInteropMode mode) {
+ Options.this.jsInteropMode = mode;
+ }}));
}
@Override