1.1 --- a/rt/emul/compact/src/main/java/java/lang/invoke/MethodHandleNatives.java Sun Aug 10 11:39:36 2014 +0200
1.2 +++ b/rt/emul/compact/src/main/java/java/lang/invoke/MethodHandleNatives.java Mon Aug 11 17:52:23 2014 +0200
1.3 @@ -45,7 +45,9 @@
1.4
1.5 static native void init(MemberName self, Object ref);
1.6 static native void expand(MemberName self);
1.7 - static native MemberName resolve(MemberName self, Class<?> caller) throws LinkageError;
1.8 + static MemberName resolve(MemberName self, Class<?> caller) throws LinkageError {
1.9 + return self;
1.10 + }
1.11 static native int getMembers(Class<?> defc, String matchName, String matchSig,
1.12 int matchFlags, Class<?> caller, int skip, MemberName[] results);
1.13
1.14 @@ -57,25 +59,13 @@
1.15
1.16 /// MethodHandle support
1.17
1.18 - /** Fetch MH-related JVM parameter.
1.19 - * which=0 retrieves MethodHandlePushLimit
1.20 - * which=1 retrieves stack slot push size (in address units)
1.21 - */
1.22 - static native int getConstant(int which);
1.23 -
1.24 - static final boolean COUNT_GWT;
1.25 -
1.26 /// CallSite support
1.27
1.28 /** Tell the JVM that we need to change the target of a CallSite. */
1.29 static native void setCallSiteTargetNormal(CallSite site, MethodHandle target);
1.30 static native void setCallSiteTargetVolatile(CallSite site, MethodHandle target);
1.31
1.32 - private static native void registerNatives();
1.33 static {
1.34 - registerNatives();
1.35 - COUNT_GWT = getConstant(Constants.GC_COUNT_GWT) != 0;
1.36 -
1.37 // The JVM calls MethodHandleNatives.<clinit>. Cascade the <clinit> calls as needed:
1.38 MethodHandleImpl.initStatics();
1.39 }
2.1 --- a/rt/emul/mini/src/main/java/java/lang/ClassLoader.java Sun Aug 10 11:39:36 2014 +0200
2.2 +++ b/rt/emul/mini/src/main/java/java/lang/ClassLoader.java Mon Aug 11 17:52:23 2014 +0200
2.3 @@ -499,13 +499,13 @@
2.4 * @since 1.1
2.5 */
2.6 protected final Class<?> findLoadedClass(String name) {
2.7 - if (!checkName(name))
2.8 + try {
2.9 + return Class.forName(name);
2.10 + } catch (ClassNotFoundException ex) {
2.11 return null;
2.12 - return findLoadedClass0(name);
2.13 + }
2.14 }
2.15
2.16 - private native final Class findLoadedClass0(String name);
2.17 -
2.18 /**
2.19 * Sets the signers of a class. This should be invoked after defining a
2.20 * class. </p>
2.21 @@ -884,10 +884,6 @@
2.22 return false;
2.23 }
2.24
2.25 - private boolean checkName(String name) {
2.26 - throw new UnsupportedOperationException();
2.27 - }
2.28 -
2.29 private Class findBootstrapClassOrNull(String name) {
2.30 throw new UnsupportedOperationException();
2.31 }
3.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun Aug 10 11:39:36 2014 +0200
3.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Aug 11 17:52:23 2014 +0200
3.3 @@ -1069,6 +1069,8 @@
3.4 println(" mi[2]: " + mi[2]);
3.5 println(" mn : " + mn);
3.6 println(" name and type: " + jc.stringValue(c2.cpx2, true));
3.7 + CPX2 nameAndType = jc.getCpoolEntry(c2.cpx2);
3.8 + String type = jc.StringValue(nameAndType.cpx2);
3.9 String object = accessClass(mcn) + "(false)";
3.10 if (mn.startsWith("cons_")) {
3.11 object += ".constructor";
3.12 @@ -1078,7 +1080,9 @@
3.13 append('(');
3.14 String lookup = accessClass("java_lang_invoke_MethodHandles") + "(false).findFor__Ljava_lang_invoke_MethodHandles$Lookup_2Ljava_lang_Class_2(CLS.$class)";
3.15 append(lookup);
3.16 - append(", '").append(mi[1]).append("'");
3.17 + append(", '").append(mi[1]).append("', ");
3.18 + String methodType = accessClass("java_lang_invoke_MethodType") + "(false).fromMethodDescriptorString__Ljava_lang_invoke_MethodType_2Ljava_lang_String_2Ljava_lang_ClassLoader_2(";
3.19 + append(methodType).append("'").append(type).append("', null)");
3.20 // if (numArguments > 0) {
3.21 // append(vars[0]);
3.22 // for (int j = 1; j < numArguments; ++j) {