Adds additional GWTBridge methods to allow useful faking-out for non-GWTTestCase JUnit support, and potentially server-side use.
Review by: rjrjr
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@2990 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
index b7e0074..209f415 100644
--- a/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
+++ b/dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaAST.java
@@ -378,10 +378,13 @@
}
}
- // Reimplement GWT.isClient() to return true
+ // Reimplement GWT.isClient() and GWT.isScript() to return true
if (currentClass == program.getIndexedType("GWT")) {
JMethod method = program.getIndexedMethod("GWT.isClient");
implementMethod(method, program.getLiteralBoolean(true));
+
+ method = program.getIndexedMethod("GWT.isScript");
+ implementMethod(method, program.getLiteralBoolean(true));
}
// Implement Class.desiredAssertionStatus
diff --git a/dev/core/src/com/google/gwt/dev/shell/GWTBridgeImpl.java b/dev/core/src/com/google/gwt/dev/shell/GWTBridgeImpl.java
index 973145c..9028b26 100644
--- a/dev/core/src/com/google/gwt/dev/shell/GWTBridgeImpl.java
+++ b/dev/core/src/com/google/gwt/dev/shell/GWTBridgeImpl.java
@@ -32,6 +32,7 @@
/**
* Resolves a deferred binding request and create the requested object.
*/
+ @Override
public <T> T create(Class<?> requestedClass) {
String className = requestedClass.getName();
try {
@@ -43,13 +44,23 @@
}
};
+ @Override
public String getVersion() {
return About.GWT_VERSION_NUM;
}
/**
+ * Yes, we're running as client code in the hosted mode classloader.
+ */
+ @Override
+ public boolean isClient() {
+ return true;
+ }
+
+ /**
* Logs in dev shell.
*/
+ @Override
public void log(String message, Throwable e) {
host.log(message, e);
}
diff --git a/dev/core/super/com/google/gwt/core/client/GWTBridge.java b/dev/core/super/com/google/gwt/core/client/GWTBridge.java
index 005bece..449433a 100644
--- a/dev/core/super/com/google/gwt/core/client/GWTBridge.java
+++ b/dev/core/super/com/google/gwt/core/client/GWTBridge.java
@@ -25,5 +25,7 @@
public abstract String getVersion();
+ public abstract boolean isClient();
+
public abstract void log(String message, Throwable e);
}
diff --git a/user/src/com/google/gwt/core/client/GWT.java b/user/src/com/google/gwt/core/client/GWT.java
index b00f5b5..5e8d86d 100644
--- a/user/src/com/google/gwt/core/client/GWT.java
+++ b/user/src/com/google/gwt/core/client/GWT.java
@@ -167,15 +167,16 @@
* on the server, or during the bootstrap sequence of a GWTTestCase test.
*/
public static boolean isClient() {
- // Replaced with "true" by compiler.
- return sGWTBridge != null;
+ // Replaced with "true" by GWT compiler.
+ return sGWTBridge != null && sGWTBridge.isClient();
}
/**
* Determines whether or not the running program is script or bytecode.
*/
public static boolean isScript() {
- return isClient() && sGWTBridge == null;
+ // Replaced with "true" by GWT compiler.
+ return false;
}
/**
@@ -203,7 +204,7 @@
}
/**
- * Called via reflection in hosted mode; do not every call this method in web
+ * Called via reflection in hosted mode; do not ever call this method in web
* mode.
*/
static void setBridge(GWTBridge bridge) {