rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_String.js
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Mon, 12 May 2014 11:18:46 +0200
branchclosure
changeset 1559 69fb5d5d734a
parent 1532 10d26626c426
child 1560 2e415b91c046
permissions -rw-r--r--
Only do range check when the array value is not defined
     1 // initialize methods on arrays and String constants
     2 vm.java_lang_reflect_Array(false);
     3 vm.java_lang_String(false);
     4 
     5 Array.at = function(arr, indx, value) {
     6   var prev = arr[indx];
     7   if (typeof prev === 'undefined' && (x < 0 || indx >= arr.length)) {
     8     var e = vm.java_lang_ArrayIndexOutOfBoundsException(true);
     9     e.constructor.cons__VLjava_lang_String_2.call(e, indx.toString());
    10     throw e;
    11   }
    12   if (arguments.length === 3) {
    13     arr[indx] = value;
    14   } else {
    15     return prev;
    16   }
    17 };
    18 Array.prototype.getClass__Ljava_lang_Class_2 = function() {
    19   return vm.java_lang_Class(false).defineArray__Ljava_lang_Class_2Ljava_lang_String_2Ljava_lang_Object_2(this.jvmName, this.fnc);
    20 };
    21 Array.prototype.clone__Ljava_lang_Object_2 = function() {
    22   var s = this.length;
    23   var ret = new Array(s);
    24   for (var i = 0; i < s; i++) {
    25       ret[i] = this[i];
    26   }
    27   ret.jvmName = this.jvmName;
    28   ret.fnc = this.fnc;
    29   return ret;
    30 };