diff -r d382dacfd73f -r 00ae3f46e54f rt/emul/mini/src/main/java/java/lang/Throwable.java --- a/rt/emul/mini/src/main/java/java/lang/Throwable.java Tue Feb 26 16:54:16 2013 +0100 +++ b/rt/emul/mini/src/main/java/java/lang/Throwable.java Fri Apr 26 13:35:21 2013 +0200 @@ -1085,4 +1085,22 @@ // else // return suppressedExceptions.toArray(EMPTY_THROWABLE_ARRAY); } + + private static Object bck2BrwsrCnvrt(Object o) { + if (o instanceof Throwable) { + return o; + } + final String msg = msg(o); + if (msg == null || msg.startsWith("TypeError")) { + return new NullPointerException(msg); + } + return new Throwable(msg); + } + + @JavaScriptBody(args = { "o" }, body = "return o ? o.toString() : null;") + private static native String msg(Object o); + + @JavaScriptOnly(name = "bck2BrwsrCnvrt", value = "c.bck2BrwsrCnvrt__Ljava_lang_Object_2Ljava_lang_Object_2") + private static void bck2BrwsrCnvrtVM() { + } }