emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 15 Jan 2013 12:44:33 +0100
changeset 459 a2871a3fd4c5
parent 458 b157a354003f
child 479 34931e381886
permissions -rw-r--r--
ArrayIndexOutOfBoundsEx on writes
jaroslav@240
     1
// initialize methods on String constants
jaroslav@274
     2
vm.java_lang_String(false);
jaroslav@272
     3
jaroslav@272
     4
// we need initialized arrays
jaroslav@456
     5
Array.prototype.initWith = function(sig, value) {
jaroslav@446
     6
  for(var i = 0; i < this.length; i++) this[i] = value;
jaroslav@448
     7
  this.jvmName = sig;
jaroslav@272
     8
  return this;
jaroslav@272
     9
};
jaroslav@459
    10
Array.prototype.at = function(indx, value) {
jaroslav@458
    11
  if (indx < 0 || indx > this.length) {
jaroslav@458
    12
      var e = vm.java_lang_ArrayIndexOutOfBoundsException(true);
jaroslav@458
    13
      e.constructor.cons__VLjava_lang_String_2.call(e, indx.toString());
jaroslav@458
    14
      throw e;
jaroslav@458
    15
  }
jaroslav@459
    16
  if (arguments.length === 2) {
jaroslav@459
    17
      this[indx] = value;
jaroslav@459
    18
  }
jaroslav@458
    19
  return this[indx];
jaroslav@458
    20
};
jaroslav@448
    21
Array.prototype.getClass__Ljava_lang_Class_2 = function() {
jaroslav@450
    22
  return vm.java_lang_Class(false).defineArray__Ljava_lang_Class_2Ljava_lang_String_2(this.jvmName);
jaroslav@448
    23
};
jaroslav@402
    24
Array.prototype.clone__Ljava_lang_Object_2 = function() {
jaroslav@402
    25
  var s = this.length;
jaroslav@402
    26
  var ret = new Array(s);
jaroslav@402
    27
  for (var i = 0; i < s; i++) {
jaroslav@402
    28
      ret[i] = this[i];
jaroslav@402
    29
  }
jaroslav@402
    30
  return ret;
jaroslav@402
    31
};