rt/emul/mini/src/main/resources/org/apidesign/vm4brwsr/emul/lang/java_lang_String.js
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 10 Jun 2016 05:52:44 +0200
branchLibraries
changeset 1971 de609e0cdab5
parent 1931 685193e0d793
permissions -rw-r--r--
Make sure Boolean.prototype contains the Java methods soon enough
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@1971
     4
vm.java_lang_Boolean(false);
jaroslav@272
     5
jaroslav@1633
     6
Object.defineProperty(Array, "at", { configurable: true, writable: true, value : function(arr, indx, value) {
jaroslav@1559
     7
  var prev = arr[indx];
jaroslav@1931
     8
  if (typeof prev === 'undefined') {
jaroslav@1931
     9
    if (indx < 0 || indx >= arr.length) {
jaroslav@1931
    10
      var e = vm.java_lang_ArrayIndexOutOfBoundsException(true);
jaroslav@1931
    11
      e.constructor.cons__VLjava_lang_String_2.call(e, indx.toString());
jaroslav@1931
    12
      throw e;
jaroslav@1931
    13
    }
jaroslav@1931
    14
    prev = null;
jaroslav@458
    15
  }
jaroslav@1392
    16
  if (arguments.length === 3) {
jaroslav@1559
    17
    arr[indx] = value;
jaroslav@1559
    18
  } else {
jaroslav@1559
    19
    return prev;
jaroslav@459
    20
  }
jaroslav@1633
    21
}});
jaroslav@1633
    22
Object.defineProperty(Array.prototype, "getClass__Ljava_lang_Class_2", { configurable: true, writable: true, value : function() {
jaroslav@1532
    23
  return vm.java_lang_Class(false).defineArray__Ljava_lang_Class_2Ljava_lang_String_2Ljava_lang_Object_2(this.jvmName, this.fnc);
jaroslav@1633
    24
}});
jaroslav@1633
    25
Object.defineProperty(Array.prototype, "clone__Ljava_lang_Object_2", { configurable: true, writable: true, value : function() {
jaroslav@402
    26
  var s = this.length;
jaroslav@402
    27
  var ret = new Array(s);
jaroslav@402
    28
  for (var i = 0; i < s; i++) {
jaroslav@402
    29
      ret[i] = this[i];
jaroslav@402
    30
  }
jaroslav@571
    31
  ret.jvmName = this.jvmName;
jaroslav@1532
    32
  ret.fnc = this.fnc;
jaroslav@402
    33
  return ret;
jaroslav@1633
    34
}});