jaroslav@479: // initialize methods on arrays and String constants jaroslav@479: vm.java_lang_reflect_Array(false); jaroslav@274: vm.java_lang_String(false); jaroslav@272: jaroslav@1633: Object.defineProperty(Array, "at", { configurable: true, writable: true, value : function(arr, indx, value) { jaroslav@1559: var prev = arr[indx]; jaroslav@1560: if (typeof prev === 'undefined' && (indx < 0 || indx >= arr.length)) { jaroslav@1559: var e = vm.java_lang_ArrayIndexOutOfBoundsException(true); jaroslav@1559: e.constructor.cons__VLjava_lang_String_2.call(e, indx.toString()); jaroslav@1559: throw e; jaroslav@458: } jaroslav@1392: if (arguments.length === 3) { jaroslav@1559: arr[indx] = value; jaroslav@1559: } else { jaroslav@1559: return prev; jaroslav@459: } jaroslav@1633: }}); jaroslav@1633: Object.defineProperty(Array.prototype, "getClass__Ljava_lang_Class_2", { configurable: true, writable: true, value : function() { jaroslav@1532: return vm.java_lang_Class(false).defineArray__Ljava_lang_Class_2Ljava_lang_String_2Ljava_lang_Object_2(this.jvmName, this.fnc); jaroslav@1633: }}); jaroslav@1633: Object.defineProperty(Array.prototype, "clone__Ljava_lang_Object_2", { configurable: true, writable: true, value : function() { jaroslav@402: var s = this.length; jaroslav@402: var ret = new Array(s); jaroslav@402: for (var i = 0; i < s; i++) { jaroslav@402: ret[i] = this[i]; jaroslav@402: } jaroslav@571: ret.jvmName = this.jvmName; jaroslav@1532: ret.fnc = this.fnc; jaroslav@402: return ret; jaroslav@1633: }});