Support for String.getChars strings
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Fri, 28 Sep 2012 13:15:45 +0200
branchstrings
changeset 44b384fe44e6fa
parent 43 57e370fa2456
child 45 bc9a4c28d1a3
Support for String.getChars
vm/src/main/resources/org/apidesign/vm4brwsr/emulation/java_lang_String.js
     1.1 --- a/vm/src/main/resources/org/apidesign/vm4brwsr/emulation/java_lang_String.js	Fri Sep 28 13:01:17 2012 +0200
     1.2 +++ b/vm/src/main/resources/org/apidesign/vm4brwsr/emulation/java_lang_String.js	Fri Sep 28 13:15:45 2012 +0200
     1.3 @@ -809,71 +809,17 @@
     1.4      case 47: return stack.pop(); // 172
     1.5    }
     1.6  }
     1.7 -function java_lang_String_getCharsVACI(arg0,arg1,arg2) {
     1.8 -  var arg3;
     1.9 -;
    1.10 -  var stack = new Array(5);
    1.11 -  var gt = 0;
    1.12 -  for(;;) switch(gt) {
    1.13 -    case 0: stack.push(arg0); // 42
    1.14 -    case 1: stack.push(stack.pop().value); // 180 1 100
    1.15 -    case 4: stack.push(arg0); // 42
    1.16 -    case 5: stack.push(stack.pop().offset); // 180 1 99
    1.17 -    case 8: stack.push(arg1); // 43
    1.18 -    case 9: stack.push(arg2); // 28
    1.19 -    case 10: stack.push(arg0); // 42
    1.20 -    case 11: stack.push(stack.pop().count); // 180 1 97
    1.21 -    case 14: { var v4 = stack.pop(); var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_System_arraycopyVLjava_lang_ObjectILjava_lang_ObjectII(v0, v1, v2, v3, v4); } // 184 1 171
    1.22 -    case 17: return; // 177
    1.23 -  }
    1.24 +*/
    1.25 +
    1.26 +// public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) {
    1.27 +function java_lang_String_getCharsVIIACAI(arg0,arg1,arg2,arg3,arg4) {
    1.28 +    var s = arg0._toJS(arg0);
    1.29 +    while (arg1 < arg2) {
    1.30 +        arg3[arg4++] = s[arg1++];
    1.31 +    }
    1.32  }
    1.33 -function java_lang_String_getCharsVIIACI(arg0,arg1,arg2,arg3,arg4) {
    1.34 -  var arg5;
    1.35 -;
    1.36 -  var stack = new Array(6);
    1.37 -  var gt = 0;
    1.38 -  for(;;) switch(gt) {
    1.39 -    case 0: stack.push(arg1); // 27
    1.40 -    case 1: if (stack.pop() >= 0) { gt = 13; continue; } // 156 0 12
    1.41 -    case 4: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
    1.42 -    case 7: stack.push(stack[stack.length - 1]); // 89
    1.43 -    case 8: stack.push(arg1); // 27
    1.44 -    case 9: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
    1.45 -    case 12:  // 191
    1.46 -    case 13: stack.push(arg2); // 28
    1.47 -    case 14: stack.push(arg0); // 42
    1.48 -    case 15: stack.push(stack.pop().count); // 180 1 97
    1.49 -    case 18: if (stack.pop() >= stack.pop()) { gt = 30; continue; } // 164 0 12
    1.50 -    case 21: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
    1.51 -    case 24: stack.push(stack[stack.length - 1]); // 89
    1.52 -    case 25: stack.push(arg2); // 28
    1.53 -    case 26: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
    1.54 -    case 29:  // 191
    1.55 -    case 30: stack.push(arg1); // 27
    1.56 -    case 31: stack.push(arg2); // 28
    1.57 -    case 32: if (stack.pop() >= stack.pop()) { gt = 46; continue; } // 164 0 14
    1.58 -    case 35: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
    1.59 -    case 38: stack.push(stack[stack.length - 1]); // 89
    1.60 -    case 39: stack.push(arg2); // 28
    1.61 -    case 40: stack.push(arg1); // 27
    1.62 -    case 41: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
    1.63 -    case 42: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
    1.64 -    case 45:  // 191
    1.65 -    case 46: stack.push(arg0); // 42
    1.66 -    case 47: stack.push(stack.pop().value); // 180 1 100
    1.67 -    case 50: stack.push(arg0); // 42
    1.68 -    case 51: stack.push(stack.pop().offset); // 180 1 99
    1.69 -    case 54: stack.push(arg1); // 27
    1.70 -    case 55: stack.push(stack.pop() + stack.pop()); // 96
    1.71 -    case 56: stack.push(arg3); // 45
    1.72 -    case 57: stack.push(arg4); // 21 4
    1.73 -    case 59: stack.push(arg2); // 28
    1.74 -    case 60: stack.push(arg1); // 27
    1.75 -    case 61: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
    1.76 -    case 62: { var v4 = stack.pop(); var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_System_arraycopyVLjava_lang_ObjectILjava_lang_ObjectII(v0, v1, v2, v3, v4); } // 184 1 171
    1.77 -    case 65: return; // 177
    1.78 -  }
    1.79 -}
    1.80 +
    1.81 +/*
    1.82  function java_lang_String_getBytesVIIABI(arg0,arg1,arg2,arg3,arg4) {
    1.83    var arg5;
    1.84    var arg6;
    1.85 @@ -3378,6 +3324,7 @@
    1.86  String.prototype.charAtCI = java_lang_String_charAtCI;
    1.87  String.prototype.lengthI = java_lang_String_lengthI;
    1.88  String.prototype.isEmptyZ = java_lang_String_isEmptyZ;
    1.89 +String.prototype.getCharsVIIACAI = java_lang_String_getCharsVIIACAI;
    1.90  
    1.91  
    1.92