1.1 --- a/rt/emul/mini/src/main/java/java/lang/reflect/Array.java Wed May 07 08:49:54 2014 +0200
1.2 +++ b/rt/emul/mini/src/main/java/java/lang/reflect/Array.java Tue Sep 23 21:52:27 2014 +0200
1.3 @@ -26,7 +26,6 @@
1.4 package java.lang.reflect;
1.5
1.6 import org.apidesign.bck2brwsr.core.Exported;
1.7 -import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.8 import org.apidesign.bck2brwsr.core.JavaScriptPrototype;
1.9
1.10 /**
1.11 @@ -135,12 +134,9 @@
1.12 if (!array.getClass().isArray()) {
1.13 throw new IllegalArgumentException("Argument is not an array");
1.14 }
1.15 - return length(array);
1.16 + return Method.arrayLength(array);
1.17 }
1.18
1.19 - @JavaScriptBody(args = { "arr" }, body = "return arr.length;")
1.20 - private static native int length(Object arr);
1.21 -
1.22 /**
1.23 * Returns the value of the indexed component in the specified
1.24 * array object. The value is automatically wrapped in an object
1.25 @@ -600,17 +596,10 @@
1.26 * Private
1.27 */
1.28
1.29 - @JavaScriptBody(args = { "primitive", "sig", "fn", "length" }, body =
1.30 - "var arr = new Array(length);\n"
1.31 - + "var value = primitive ? 0 : null;\n"
1.32 - + "for(var i = 0; i < length; i++) arr[i] = value;\n"
1.33 - + "arr.jvmName = sig;\n"
1.34 - + "arr.fnc = fn;\n"
1.35 -// + "java.lang.System.out.println('Assigned ' + arr.jvmName + ' fn: ' + (!!arr.fnc));\n"
1.36 - + "return arr;"
1.37 - )
1.38 @Exported
1.39 - private static native Object newArray(boolean primitive, String sig, Object fn, int length);
1.40 + private static Object newArray(boolean primitive, String sig, Object fn, int length) {
1.41 + return Method.newArray(primitive, sig, fn, length);
1.42 + }
1.43
1.44 @Exported
1.45 private static boolean isInstance(Object arr, String sig) {
1.46 @@ -635,14 +624,11 @@
1.47 return false;
1.48 }
1.49 }
1.50 - Class<?> t = classFromFn(fn);
1.51 + Class<?> t = Method.classFromFn(fn);
1.52 // log(" to check: " + t);
1.53 return t.isAssignableFrom(c);
1.54 }
1.55
1.56 - @JavaScriptBody(args = { "cntstr" }, body = "return cntstr(false).constructor.$class;")
1.57 - private static native Class<?> classFromFn(Object cntstr);
1.58 -
1.59 // @JavaScriptBody(args = { "m" }, body = "java.lang.System.out.println(m.toString().toString());")
1.60 // private static native void log(Object m);
1.61
1.62 @@ -660,17 +646,11 @@
1.63 String compsig = sig.substring(1);
1.64 int len = getLength(arr);
1.65 for (int i = 0; i < len; i++) {
1.66 - setArray(arr, i, multiNewArray(compsig, dims, index + 1, fn));
1.67 + Method.setArray(arr, i, multiNewArray(compsig, dims, index + 1, fn));
1.68 }
1.69 return arr;
1.70 }
1.71 private static Object fromPrimitive(Class<?> t, Object array, int index) {
1.72 - return Method.fromPrimitive(t, atArray(array, index));
1.73 + return Method.fromPrimitive(t, Method.atArray(array, index));
1.74 }
1.75 -
1.76 - @JavaScriptBody(args = { "array", "index" }, body = "return array[index];")
1.77 - private static native Object atArray(Object array, int index);
1.78 -
1.79 - @JavaScriptBody(args = { "array", "index", "v" }, body = "array[index] = v;")
1.80 - private static native Object setArray(Object array, int index, Object v);
1.81 }