# HG changeset patch # User Jaroslav Tulach # Date 1357575779 -3600 # Node ID 777b9b841f1519a570988e400e3cbb1fdfadd5ad # Parent 6506d5132e0314fa9d1704f048199b8f1c9dc92e Make sure this has some value diff -r 6506d5132e03 -r 777b9b841f15 launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Console.java --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Console.java Mon Jan 07 16:46:09 2013 +0100 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Console.java Mon Jan 07 17:22:59 2013 +0100 @@ -21,9 +21,8 @@ import java.io.InputStream; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.Modifier; import java.net.URL; -import java.net.URLDecoder; -import java.net.URLEncoder; import java.util.Enumeration; import org.apidesign.bck2brwsr.core.JavaScriptBody; @@ -113,7 +112,7 @@ return sb.toString(); } - static String invoke(String clazz, String method) throws ClassNotFoundException, InvocationTargetException, IllegalAccessException { + static String invoke(String clazz, String method) throws ClassNotFoundException, InvocationTargetException, IllegalAccessException, InstantiationException { final Object r = invokeMethod(clazz, method); return r == null ? "null" : r.toString().toString(); } @@ -151,7 +150,8 @@ private static Object invokeMethod(String clazz, String method) throws ClassNotFoundException, InvocationTargetException, - SecurityException, IllegalAccessException, IllegalArgumentException { + SecurityException, IllegalAccessException, IllegalArgumentException, + InstantiationException { Method found = null; Class c = Class.forName(clazz); for (Method m : c.getMethods()) { @@ -161,7 +161,11 @@ } Object res; if (found != null) { - res = found.invoke(null); + if ((found.getModifiers() & Modifier.STATIC) != 0) { + res = found.invoke(null); + } else { + res = found.invoke(c.newInstance()); + } } else { res = "Can't find method " + method + " in " + clazz; } diff -r 6506d5132e03 -r 777b9b841f15 vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CloneTest.java --- a/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CloneTest.java Mon Jan 07 16:46:09 2013 +0100 +++ b/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CloneTest.java Mon Jan 07 17:22:59 2013 +0100 @@ -30,7 +30,7 @@ @Compare public Object notSupported() { try { - return new CloneTest().clone(); + return this.clone(); } catch (CloneNotSupportedException ex) { return ex.getClass().getName() + ":" + ex.getMessage(); } @@ -46,7 +46,7 @@ } @Compare public int sameReference() throws CloneNotSupportedException { - CloneTest self = new CloneTest(); + CloneTest self = this; Clnbl orig = new Clnbl(); self.value = 33; orig.ref = self; diff -r 6506d5132e03 -r 777b9b841f15 vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java --- a/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Mon Jan 07 16:46:09 2013 +0100 +++ b/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/ReflectionTest.java Mon Jan 07 17:22:59 2013 +0100 @@ -21,8 +21,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; import org.apidesign.bck2brwsr.core.JavaScriptBody; import org.apidesign.bck2brwsr.vmtest.Compare; import org.apidesign.bck2brwsr.vmtest.VMTest; @@ -33,6 +31,10 @@ * @author Jaroslav Tulach */ public class ReflectionTest { + @Compare public boolean nonNullThis() { + return this == null; + } + @Compare public String intType() { return Integer.TYPE.toString(); }