rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_String.js
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 18 Feb 2014 22:29:25 +0100
branchReducedStack
changeset 1479 be34f84e9d9f
parent 1392 da9e5973e699
permissions -rw-r--r--
Shortening the generated code by providing shorter new array methods
jaroslav@479
     1
// initialize methods on arrays and String constants
jaroslav@479
     2
vm.java_lang_reflect_Array(false);
jaroslav@274
     3
vm.java_lang_String(false);
jaroslav@272
     4
jaroslav@1392
     5
Array.at = function(arr, indx, value) {
jaroslav@1392
     6
  if (indx < 0 || indx >= arr.length) {
jaroslav@458
     7
      var e = vm.java_lang_ArrayIndexOutOfBoundsException(true);
jaroslav@458
     8
      e.constructor.cons__VLjava_lang_String_2.call(e, indx.toString());
jaroslav@458
     9
      throw e;
jaroslav@458
    10
  }
jaroslav@1392
    11
  if (arguments.length === 3) {
jaroslav@1392
    12
      arr[indx] = value;
jaroslav@459
    13
  }
jaroslav@1392
    14
  return arr[indx];
jaroslav@458
    15
};
jaroslav@1479
    16
Array.alloc = Array.prototype.newArray__Ljava_lang_Object_2ZLjava_lang_String_2I;
jaroslav@1479
    17
Array.malloc = Array.prototype.multiNewArray__Ljava_lang_Object_2Ljava_lang_String_2_3II;
jaroslav@448
    18
Array.prototype.getClass__Ljava_lang_Class_2 = function() {
jaroslav@450
    19
  return vm.java_lang_Class(false).defineArray__Ljava_lang_Class_2Ljava_lang_String_2(this.jvmName);
jaroslav@448
    20
};
jaroslav@402
    21
Array.prototype.clone__Ljava_lang_Object_2 = function() {
jaroslav@402
    22
  var s = this.length;
jaroslav@402
    23
  var ret = new Array(s);
jaroslav@402
    24
  for (var i = 0; i < s; i++) {
jaroslav@402
    25
      ret[i] = this[i];
jaroslav@402
    26
  }
jaroslav@571
    27
  ret.jvmName = this.jvmName;
jaroslav@402
    28
  return ret;
jaroslav@402
    29
};