emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Mon, 14 Jan 2013 18:21:48 +0100
changeset 448 ac05de5a8786
parent 402 1fb46c65f030
child 450 f2891b169df3
permissions -rw-r--r--
More reflection for arrays. getClass() and isArray() work.
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@272
     5
Array.prototype.fillNulls = function() {
jaroslav@272
     6
  for(var i = 0; i < this.length; i++) this[i] = null;
jaroslav@272
     7
  return this;
jaroslav@272
     8
};
jaroslav@448
     9
Array.prototype.arrtype = function(sig) {
jaroslav@448
    10
  this.jvmName = sig;
jaroslav@448
    11
  return this;
jaroslav@448
    12
};
jaroslav@448
    13
Array.prototype.getClass__Ljava_lang_Class_2 = function() {
jaroslav@448
    14
  var c = Array[this.jvmName];
jaroslav@448
    15
  if (c) return c;
jaroslav@448
    16
  c = vm.java_lang_Class(true);
jaroslav@448
    17
  c.jvmName = this.jvmName;
jaroslav@448
    18
  c.superclass = vm.java_lang_Object(false).$class;
jaroslav@448
    19
  c.array = true;
jaroslav@448
    20
  Array[this.jvmName] = c;
jaroslav@448
    21
  return c;
jaroslav@448
    22
};
jaroslav@402
    23
Array.prototype.clone__Ljava_lang_Object_2 = function() {
jaroslav@402
    24
  var s = this.length;
jaroslav@402
    25
  var ret = new Array(s);
jaroslav@402
    26
  for (var i = 0; i < s; i++) {
jaroslav@402
    27
      ret[i] = this[i];
jaroslav@402
    28
  }
jaroslav@402
    29
  return ret;
jaroslav@402
    30
};