diff -r 10d26626c426 -r 69fb5d5d734a rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_String.js --- a/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_String.js Tue May 06 08:36:54 2014 +0200 +++ b/rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_String.js Mon May 12 11:18:46 2014 +0200 @@ -3,15 +3,17 @@ vm.java_lang_String(false); Array.at = function(arr, indx, value) { - if (indx < 0 || indx >= arr.length) { - var e = vm.java_lang_ArrayIndexOutOfBoundsException(true); - e.constructor.cons__VLjava_lang_String_2.call(e, indx.toString()); - throw e; + var prev = arr[indx]; + if (typeof prev === 'undefined' && (x < 0 || indx >= arr.length)) { + var e = vm.java_lang_ArrayIndexOutOfBoundsException(true); + e.constructor.cons__VLjava_lang_String_2.call(e, indx.toString()); + throw e; } if (arguments.length === 3) { - arr[indx] = value; + arr[indx] = value; + } else { + return prev; } - return arr[indx]; }; Array.prototype.getClass__Ljava_lang_Class_2 = function() { return vm.java_lang_Class(false).defineArray__Ljava_lang_Class_2Ljava_lang_String_2Ljava_lang_Object_2(this.jvmName, this.fnc);