1.1 --- a/rt/emul/mini/src/main/java/java/lang/reflect/Method.java Wed May 07 08:49:54 2014 +0200
1.2 +++ b/rt/emul/mini/src/main/java/java/lang/reflect/Method.java Tue Sep 23 21:52:27 2014 +0200
1.3 @@ -744,4 +744,31 @@
1.4 }
1.5 };
1.6 }
1.7 +
1.8 + //
1.9 + // helper methods for Array
1.10 + //
1.11 +
1.12 + @JavaScriptBody(args = { "primitive", "sig", "fn", "length" }, body =
1.13 + "var arr = new Array(length);\n"
1.14 + + "var value = primitive ? 0 : null;\n"
1.15 + + "for(var i = 0; i < length; i++) arr[i] = value;\n"
1.16 + + "Object.defineProperty(arr, 'jvmName', { 'configurable': true, 'writable': true, 'value': sig });\n"
1.17 + + "Object.defineProperty(arr, 'fnc', { 'configurable': true, 'writable': true, 'value' : fn });\n"
1.18 +// + "java.lang.System.out.println('Assigned ' + arr.jvmName + ' fn: ' + (!!arr.fnc));\n"
1.19 + + "return arr;"
1.20 + )
1.21 + static native Object newArray(boolean primitive, String sig, Object fn, int length);
1.22 +
1.23 + @JavaScriptBody(args = { "arr" }, body = "return arr.length;")
1.24 + static native int arrayLength(Object arr);
1.25 +
1.26 + @JavaScriptBody(args = { "cntstr" }, body = "return cntstr(false).constructor.$class;")
1.27 + static native Class<?> classFromFn(Object cntstr);
1.28 + @JavaScriptBody(args = { "array", "index" }, body = "return array[index];")
1.29 + static native Object atArray(Object array, int index);
1.30 +
1.31 + @JavaScriptBody(args = { "array", "index", "v" }, body = "array[index] = v;")
1.32 + static native Object setArray(Object array, int index, Object v);
1.33 +
1.34 }