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
     1 // initialize methods on arrays and String constants
     2 vm.java_lang_reflect_Array(false);
     3 vm.java_lang_String(false);
     4 vm.java_lang_Boolean(false);
     5 
     6 Object.defineProperty(Array, "at", { configurable: true, writable: true, value : function(arr, indx, value) {
     7   var prev = arr[indx];
     8   if (typeof prev === 'undefined') {
     9     if (indx < 0 || indx >= arr.length) {
    10       var e = vm.java_lang_ArrayIndexOutOfBoundsException(true);
    11       e.constructor.cons__VLjava_lang_String_2.call(e, indx.toString());
    12       throw e;
    13     }
    14     prev = null;
    15   }
    16   if (arguments.length === 3) {
    17     arr[indx] = value;
    18   } else {
    19     return prev;
    20   }
    21 }});
    22 Object.defineProperty(Array.prototype, "getClass__Ljava_lang_Class_2", { configurable: true, writable: true, value : function() {
    23   return vm.java_lang_Class(false).defineArray__Ljava_lang_Class_2Ljava_lang_String_2Ljava_lang_Object_2(this.jvmName, this.fnc);
    24 }});
    25 Object.defineProperty(Array.prototype, "clone__Ljava_lang_Object_2", { configurable: true, writable: true, value : function() {
    26   var s = this.length;
    27   var ret = new Array(s);
    28   for (var i = 0; i < s; i++) {
    29       ret[i] = this[i];
    30   }
    31   ret.jvmName = this.jvmName;
    32   ret.fnc = this.fnc;
    33   return ret;
    34 }});