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@272: // we need initialized arrays jaroslav@456: Array.prototype.initWith = function(sig, value) { jaroslav@446: for(var i = 0; i < this.length; i++) this[i] = value; jaroslav@448: this.jvmName = sig; jaroslav@272: return this; jaroslav@272: }; jaroslav@459: Array.prototype.at = function(indx, value) { jaroslav@458: if (indx < 0 || indx > this.length) { jaroslav@458: var e = vm.java_lang_ArrayIndexOutOfBoundsException(true); jaroslav@458: e.constructor.cons__VLjava_lang_String_2.call(e, indx.toString()); jaroslav@458: throw e; jaroslav@458: } jaroslav@459: if (arguments.length === 2) { jaroslav@459: this[indx] = value; jaroslav@459: } jaroslav@458: return this[indx]; jaroslav@458: }; jaroslav@448: Array.prototype.getClass__Ljava_lang_Class_2 = function() { jaroslav@450: return vm.java_lang_Class(false).defineArray__Ljava_lang_Class_2Ljava_lang_String_2(this.jvmName); jaroslav@448: }; jaroslav@402: Array.prototype.clone__Ljava_lang_Object_2 = 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@402: return ret; jaroslav@402: };