# HG changeset patch # User Jaroslav Tulach # Date 1354425992 -3600 # Node ID 5e8f219d60ba3b204b8efd5869a0d24d01add2df # Parent dde8422fb5ae17bb720cf861b792b729dc04124c# Parent 36f16c49bdef60b82a6f492cd4afaa7d29d25145 Merging native methods exceptions diff -r dde8422fb5ae -r 5e8f219d60ba emul/src/main/java/java/lang/ClassLoader.java --- a/emul/src/main/java/java/lang/ClassLoader.java Sat Dec 01 15:48:12 2012 +0100 +++ b/emul/src/main/java/java/lang/ClassLoader.java Sun Dec 02 06:26:32 2012 +0100 @@ -29,6 +29,7 @@ import java.net.URL; import java.util.Enumeration; import java.util.NoSuchElementException; +import org.apidesign.bck2brwsr.core.JavaScriptBody; /** * A class loader is an object that is responsible for loading classes. The @@ -147,6 +148,7 @@ */ public abstract class ClassLoader { + @JavaScriptBody(args = {}, body = "") private static native void registerNatives(); static { registerNatives(); diff -r dde8422fb5ae -r 5e8f219d60ba emul/src/main/java/java/lang/Object.java --- a/emul/src/main/java/java/lang/Object.java Sat Dec 01 15:48:12 2012 +0100 +++ b/emul/src/main/java/java/lang/Object.java Sun Dec 02 06:26:32 2012 +0100 @@ -38,6 +38,7 @@ */ public class Object { + @JavaScriptBody(args = {}, body = "") private static native void registerNatives(); static { registerNatives(); diff -r dde8422fb5ae -r 5e8f219d60ba vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sat Dec 01 15:48:12 2012 +0100 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Dec 02 06:26:32 2012 +0100 @@ -174,7 +174,7 @@ out.append(" var s = new Array();\n"); produceCode(code); } else { - out.append(" /* no code found for ").append(m.getInternalSig()).append(" */\n"); + out.append(" throw 'no code found for ").append(m.getInternalSig()).append("';\n"); } out.append("};"); } @@ -208,7 +208,7 @@ out.append(";\n var s = new Array();\n"); produceCode(code); } else { - out.append(" /* no code found for ").append(m.getInternalSig()).append(" */\n"); + out.append(" throw 'no code found for ").append(m.getInternalSig()).append("';\n"); } out.append("};"); }