Concatanation of strings sort of works (but produces wrong result) emul
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Mon, 08 Oct 2012 17:10:27 -0700
branchemul
changeset 93a236a9f137ac
parent 92 bf4f95784c62
child 94 19497b4312bb
Concatanation of strings sort of works (but produces wrong result)
emul/pom.xml
emul/src/main/java/java/lang/Class.java
emul/src/main/java/java/lang/Integer.java
emul/src/main/java/java/lang/String.java
emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js
vm/pom.xml
vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java
vm/src/test/java/org/apidesign/vm4brwsr/StaticMethod.java
vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java
vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java
vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java
     1.1 --- a/emul/pom.xml	Wed Oct 03 08:19:44 2012 -0700
     1.2 +++ b/emul/pom.xml	Mon Oct 08 17:10:27 2012 -0700
     1.3 @@ -22,6 +22,12 @@
     1.4        <version>3.8.1</version>
     1.5        <scope>test</scope>
     1.6      </dependency>
     1.7 +    <dependency>
     1.8 +      <groupId>org.apidesign.bck2brwsr</groupId>
     1.9 +      <artifactId>core</artifactId>
    1.10 +      <version>1.0-SNAPSHOT</version>
    1.11 +      <type>jar</type>
    1.12 +    </dependency>
    1.13    </dependencies>
    1.14    <build>
    1.15        <plugins>
     2.1 --- a/emul/src/main/java/java/lang/Class.java	Wed Oct 03 08:19:44 2012 -0700
     2.2 +++ b/emul/src/main/java/java/lang/Class.java	Mon Oct 08 17:10:27 2012 -0700
     2.3 @@ -710,7 +710,8 @@
     2.4      }
     2.5  
     2.6      static Class getPrimitiveClass(String type) {
     2.7 -        throw new UnsupportedOperationException();
     2.8 +        // XXX
     2.9 +        return Object.class;
    2.10      }
    2.11  
    2.12      public boolean desiredAssertionStatus() {
     3.1 --- a/emul/src/main/java/java/lang/Integer.java	Wed Oct 03 08:19:44 2012 -0700
     3.2 +++ b/emul/src/main/java/java/lang/Integer.java	Mon Oct 08 17:10:27 2012 -0700
     3.3 @@ -634,7 +634,7 @@
     3.4       * @since  1.5
     3.5       */
     3.6      public static Integer valueOf(int i) {
     3.7 -        assert IntegerCache.high >= 127;
     3.8 +        //assert IntegerCache.high >= 127;
     3.9          if (i >= IntegerCache.low && i <= IntegerCache.high)
    3.10              return IntegerCache.cache[i + (-IntegerCache.low)];
    3.11          return new Integer(i);
     4.1 --- a/emul/src/main/java/java/lang/String.java	Wed Oct 03 08:19:44 2012 -0700
     4.2 +++ b/emul/src/main/java/java/lang/String.java	Mon Oct 08 17:10:27 2012 -0700
     4.3 @@ -25,7 +25,7 @@
     4.4  
     4.5  package java.lang;
     4.6  
     4.7 -import java.io.UnsupportedEncodingException;
     4.8 +import org.apidesign.bck2brwsr.core.ExtraJavaScript;
     4.9  import java.util.Comparator;
    4.10  
    4.11  /**
    4.12 @@ -97,6 +97,10 @@
    4.13   * @since   JDK1.0
    4.14   */
    4.15  
    4.16 +@ExtraJavaScript(
    4.17 +    resource="/org/apidesign/vm4brwsr/emul/java_lang_String.js",
    4.18 +    processByteCode=false
    4.19 +)
    4.20  public final class String
    4.21      implements java.io.Serializable, Comparable<String>, CharSequence
    4.22  {
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js	Mon Oct 08 17:10:27 2012 -0700
     5.3 @@ -0,0 +1,2658 @@
     5.4 +/* */
     5.5 +
     5.6 +
     5.7 +function java_lang_String_consVAC(arg0,arg1) {
     5.8 +    arg0.r = arg1.join("");
     5.9 +}
    5.10 +
    5.11 +function java_lang_String_consVACII(self, charArr, off, cnt) {
    5.12 +    self.r = charArr.slice(off, off + cnt).join("");
    5.13 +}
    5.14 +
    5.15 +function java_lang_String_charAtCI(arg0,arg1) {
    5.16 +    return arg0.toString().charAt(arg1);
    5.17 +}
    5.18 +function java_lang_String_lengthI(arg0) {
    5.19 +    return arg0.toString().length;
    5.20 +}
    5.21 +function java_lang_String_isEmptyZ(arg0) {
    5.22 +    return arg0.toString().length === 0;
    5.23 +}
    5.24 +
    5.25 +/*
    5.26 +function java_lang_String_codePointAtII(arg0,arg1) {
    5.27 +  var arg2;
    5.28 +;
    5.29 +  var stack = new Array(4);
    5.30 +  var gt = 0;
    5.31 +  for(;;) switch(gt) {
    5.32 +    case 0: stack.push(arg1); // 27
    5.33 +    case 1: if (stack.pop() < 0) { gt = 12; continue; } // 155 0 11
    5.34 +    case 4: stack.push(arg1); // 27
    5.35 +    case 5: stack.push(arg0); // 42
    5.36 +    case 6: stack.push(stack.pop().count); // 180 1 97
    5.37 +    case 9: if (stack.pop() > stack.pop()) { gt = 21; continue; } // 161 0 12
    5.38 +    case 12: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
    5.39 +    case 15: stack.push(stack[stack.length - 1]); // 89
    5.40 +    case 16: stack.push(arg1); // 27
    5.41 +    case 17: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
    5.42 +    case 20:  // 191
    5.43 +    case 21: stack.push(arg0); // 42
    5.44 +    case 22: stack.push(stack.pop().value); // 180 1 100
    5.45 +    case 25: stack.push(arg0); // 42
    5.46 +    case 26: stack.push(stack.pop().offset); // 180 1 99
    5.47 +    case 29: stack.push(arg1); // 27
    5.48 +    case 30: stack.push(stack.pop() + stack.pop()); // 96
    5.49 +    case 31: stack.push(arg0); // 42
    5.50 +    case 32: stack.push(stack.pop().offset); // 180 1 99
    5.51 +    case 35: stack.push(arg0); // 42
    5.52 +    case 36: stack.push(stack.pop().count); // 180 1 97
    5.53 +    case 39: stack.push(stack.pop() + stack.pop()); // 96
    5.54 +    case 40: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Character_codePointAtImplAIACAIAI(v0, v1, v2)); } // 184 1 113
    5.55 +    case 43: return stack.pop(); // 172
    5.56 +  }
    5.57 +}
    5.58 +function java_lang_String_codePointBeforeII(arg0,arg1) {
    5.59 +  var arg2;
    5.60 +  var arg3;
    5.61 +;
    5.62 +  var stack = new Array(3);
    5.63 +  var gt = 0;
    5.64 +  for(;;) switch(gt) {
    5.65 +    case 0: stack.push(arg1); // 27
    5.66 +    case 1: stack.push(1); // 4
    5.67 +    case 2: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
    5.68 +    case 3: arg2 = stack.pop(); // 61
    5.69 +    case 4: stack.push(arg2); // 28
    5.70 +    case 5: if (stack.pop() < 0) { gt = 16; continue; } // 155 0 11
    5.71 +    case 8: stack.push(arg2); // 28
    5.72 +    case 9: stack.push(arg0); // 42
    5.73 +    case 10: stack.push(stack.pop().count); // 180 1 97
    5.74 +    case 13: if (stack.pop() > stack.pop()) { gt = 25; continue; } // 161 0 12
    5.75 +    case 16: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
    5.76 +    case 19: stack.push(stack[stack.length - 1]); // 89
    5.77 +    case 20: stack.push(arg1); // 27
    5.78 +    case 21: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
    5.79 +    case 24:  // 191
    5.80 +    case 25: stack.push(arg0); // 42
    5.81 +    case 26: stack.push(stack.pop().value); // 180 1 100
    5.82 +    case 29: stack.push(arg0); // 42
    5.83 +    case 30: stack.push(stack.pop().offset); // 180 1 99
    5.84 +    case 33: stack.push(arg1); // 27
    5.85 +    case 34: stack.push(stack.pop() + stack.pop()); // 96
    5.86 +    case 35: stack.push(arg0); // 42
    5.87 +    case 36: stack.push(stack.pop().offset); // 180 1 99
    5.88 +    case 39: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Character_codePointBeforeImplAIACAIAI(v0, v1, v2)); } // 184 1 114
    5.89 +    case 42: return stack.pop(); // 172
    5.90 +  }
    5.91 +}
    5.92 +function java_lang_String_codePointCountIII(arg0,arg1,arg2) {
    5.93 +  var arg3;
    5.94 +;
    5.95 +  var stack = new Array(4);
    5.96 +  var gt = 0;
    5.97 +  for(;;) switch(gt) {
    5.98 +    case 0: stack.push(arg1); // 27
    5.99 +    case 1: if (stack.pop() < 0) { gt = 17; continue; } // 155 0 16
   5.100 +    case 4: stack.push(arg2); // 28
   5.101 +    case 5: stack.push(arg0); // 42
   5.102 +    case 6: stack.push(stack.pop().count); // 180 1 97
   5.103 +    case 9: if (stack.pop() < stack.pop()) { gt = 17; continue; } // 163 0 8
   5.104 +    case 12: stack.push(arg1); // 27
   5.105 +    case 13: stack.push(arg2); // 28
   5.106 +    case 14: if (stack.pop() >= stack.pop()) { gt = 25; continue; } // 164 0 11
   5.107 +    case 17: stack.push(new java_lang_IndexOutOfBoundsException); // 187 0 194
   5.108 +    case 20: stack.push(stack[stack.length - 1]); // 89
   5.109 +    case 21: { java_lang_IndexOutOfBoundsException_consV(stack.pop()); } // 183 1 124
   5.110 +    case 24:  // 191
   5.111 +    case 25: stack.push(arg0); // 42
   5.112 +    case 26: stack.push(stack.pop().value); // 180 1 100
   5.113 +    case 29: stack.push(arg0); // 42
   5.114 +    case 30: stack.push(stack.pop().offset); // 180 1 99
   5.115 +    case 33: stack.push(arg1); // 27
   5.116 +    case 34: stack.push(stack.pop() + stack.pop()); // 96
   5.117 +    case 35: stack.push(arg2); // 28
   5.118 +    case 36: stack.push(arg1); // 27
   5.119 +    case 37: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   5.120 +    case 38: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Character_codePointCountImplAIACAIAI(v0, v1, v2)); } // 184 1 115
   5.121 +    case 41: return stack.pop(); // 172
   5.122 +  }
   5.123 +}
   5.124 +function java_lang_String_offsetByCodePointsIII(arg0,arg1,arg2) {
   5.125 +  var arg3;
   5.126 +;
   5.127 +  var stack = new Array(5);
   5.128 +  var gt = 0;
   5.129 +  for(;;) switch(gt) {
   5.130 +    case 0: stack.push(arg1); // 27
   5.131 +    case 1: if (stack.pop() < 0) { gt = 12; continue; } // 155 0 11
   5.132 +    case 4: stack.push(arg1); // 27
   5.133 +    case 5: stack.push(arg0); // 42
   5.134 +    case 6: stack.push(stack.pop().count); // 180 1 97
   5.135 +    case 9: if (stack.pop() >= stack.pop()) { gt = 20; continue; } // 164 0 11
   5.136 +    case 12: stack.push(new java_lang_IndexOutOfBoundsException); // 187 0 194
   5.137 +    case 15: stack.push(stack[stack.length - 1]); // 89
   5.138 +    case 16: { java_lang_IndexOutOfBoundsException_consV(stack.pop()); } // 183 1 124
   5.139 +    case 19:  // 191
   5.140 +    case 20: stack.push(arg0); // 42
   5.141 +    case 21: stack.push(stack.pop().value); // 180 1 100
   5.142 +    case 24: stack.push(arg0); // 42
   5.143 +    case 25: stack.push(stack.pop().offset); // 180 1 99
   5.144 +    case 28: stack.push(arg0); // 42
   5.145 +    case 29: stack.push(stack.pop().count); // 180 1 97
   5.146 +    case 32: stack.push(arg0); // 42
   5.147 +    case 33: stack.push(stack.pop().offset); // 180 1 99
   5.148 +    case 36: stack.push(arg1); // 27
   5.149 +    case 37: stack.push(stack.pop() + stack.pop()); // 96
   5.150 +    case 38: stack.push(arg2); // 28
   5.151 +    case 39: { var v4 = stack.pop(); var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Character_offsetByCodePointsImplAIACAIAIAIAI(v0, v1, v2, v3, v4)); } // 184 1 116
   5.152 +    case 42: stack.push(arg0); // 42
   5.153 +    case 43: stack.push(stack.pop().offset); // 180 1 99
   5.154 +    case 46: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   5.155 +    case 47: return stack.pop(); // 172
   5.156 +  }
   5.157 +}
   5.158 +*/
   5.159 +
   5.160 +// public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) {
   5.161 +function java_lang_String_getCharsVIIACAI(arg0,arg1,arg2,arg3,arg4) {
   5.162 +    var s = arg0.toString();
   5.163 +    while (arg1 < arg2) {
   5.164 +        arg3[arg4++] = s[arg1++];
   5.165 +    }
   5.166 +}
   5.167 +
   5.168 +/*
   5.169 +function java_lang_String_getBytesVIIABI(arg0,arg1,arg2,arg3,arg4) {
   5.170 +  var arg5;
   5.171 +  var arg6;
   5.172 +  var arg7;
   5.173 +  var arg8;
   5.174 +  var arg9;
   5.175 +;
   5.176 +  var stack = new Array(4);
   5.177 +  var gt = 0;
   5.178 +  for(;;) switch(gt) {
   5.179 +    case 0: stack.push(arg1); // 27
   5.180 +    case 1: if (stack.pop() >= 0) { gt = 13; continue; } // 156 0 12
   5.181 +    case 4: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
   5.182 +    case 7: stack.push(stack[stack.length - 1]); // 89
   5.183 +    case 8: stack.push(arg1); // 27
   5.184 +    case 9: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
   5.185 +    case 12:  // 191
   5.186 +    case 13: stack.push(arg2); // 28
   5.187 +    case 14: stack.push(arg0); // 42
   5.188 +    case 15: stack.push(stack.pop().count); // 180 1 97
   5.189 +    case 18: if (stack.pop() >= stack.pop()) { gt = 30; continue; } // 164 0 12
   5.190 +    case 21: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
   5.191 +    case 24: stack.push(stack[stack.length - 1]); // 89
   5.192 +    case 25: stack.push(arg2); // 28
   5.193 +    case 26: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
   5.194 +    case 29:  // 191
   5.195 +    case 30: stack.push(arg1); // 27
   5.196 +    case 31: stack.push(arg2); // 28
   5.197 +    case 32: if (stack.pop() >= stack.pop()) { gt = 46; continue; } // 164 0 14
   5.198 +    case 35: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
   5.199 +    case 38: stack.push(stack[stack.length - 1]); // 89
   5.200 +    case 39: stack.push(arg2); // 28
   5.201 +    case 40: stack.push(arg1); // 27
   5.202 +    case 41: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   5.203 +    case 42: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
   5.204 +    case 45:  // 191
   5.205 +    case 46: stack.push(arg4); // 21 4
   5.206 +    case 48: arg5 = stack.pop() // 54 5
   5.207 +    case 50: stack.push(arg0); // 42
   5.208 +    case 51: stack.push(stack.pop().offset); // 180 1 99
   5.209 +    case 54: stack.push(arg2); // 28
   5.210 +    case 55: stack.push(stack.pop() + stack.pop()); // 96
   5.211 +    case 56: arg6 = stack.pop() // 54 6
   5.212 +    case 58: stack.push(arg0); // 42
   5.213 +    case 59: stack.push(stack.pop().offset); // 180 1 99
   5.214 +    case 62: stack.push(arg1); // 27
   5.215 +    case 63: stack.push(stack.pop() + stack.pop()); // 96
   5.216 +    case 64: arg7 = stack.pop() // 54 7
   5.217 +    case 66: stack.push(arg0); // 42
   5.218 +    case 67: stack.push(stack.pop().value); // 180 1 100
   5.219 +    case 70: arg8 = stack.pop() // 58 8
   5.220 +    case 72: stack.push(arg7); // 21 7
   5.221 +    case 74: stack.push(arg6); // 21 6
   5.222 +    case 76: if (stack.pop() <= stack.pop()) { gt = 98; continue; } // 162 0 22
   5.223 +    case 79: stack.push(arg3); // 45
   5.224 +    case 80: stack.push(arg5); // 21 5
   5.225 +    case 82: arg5++; // 132 5 1
   5.226 +    case 85: stack.push(arg8); // 25 8
   5.227 +    case 87: stack.push(arg7); // 21 7
   5.228 +    case 89: arg7++; // 132 7 1
   5.229 +    case 92: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.230 +    case 93: // number conversion  // 145
   5.231 +    case 94: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 84
   5.232 +    case 95: gt = 72; continue; // 167 255 233
   5.233 +    case 98: return; // 177
   5.234 +  }
   5.235 +}
   5.236 +function java_lang_String_getBytesABLjava_lang_String(arg0,arg1) {
   5.237 +  var arg2;
   5.238 +;
   5.239 +  var stack = new Array(4);
   5.240 +  var gt = 0;
   5.241 +  for(;;) switch(gt) {
   5.242 +    case 0: stack.push(arg1); // 43
   5.243 +    case 1: if (stack.pop()) { gt = 12; continue; } // 199 0 11
   5.244 +    case 4: stack.push(new java_lang_NullPointerException); // 187 0 198
   5.245 +    case 7: stack.push(stack[stack.length - 1]); // 89
   5.246 +    case 8: { java_lang_NullPointerException_consV(stack.pop()); } // 183 1 128
   5.247 +    case 11:  // 191
   5.248 +    case 12: stack.push(arg1); // 43
   5.249 +    case 13: stack.push(arg0); // 42
   5.250 +    case 14: stack.push(stack.pop().value); // 180 1 100
   5.251 +    case 17: stack.push(arg0); // 42
   5.252 +    case 18: stack.push(stack.pop().offset); // 180 1 99
   5.253 +    case 21: stack.push(arg0); // 42
   5.254 +    case 22: stack.push(stack.pop().count); // 180 1 97
   5.255 +    case 25: { var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_StringCoding_encodeABLjava_lang_StringACAIAI(v0, v1, v2, v3)); } // 184 1 166
   5.256 +    case 28: return stack.pop(); // 176
   5.257 +  }
   5.258 +}
   5.259 +function java_lang_String_getBytesABLjava_nio_charset_Charset(arg0,arg1) {
   5.260 +  var arg2;
   5.261 +;
   5.262 +  var stack = new Array(4);
   5.263 +  var gt = 0;
   5.264 +  for(;;) switch(gt) {
   5.265 +    case 0: stack.push(arg1); // 43
   5.266 +    case 1: if (stack.pop()) { gt = 12; continue; } // 199 0 11
   5.267 +    case 4: stack.push(new java_lang_NullPointerException); // 187 0 198
   5.268 +    case 7: stack.push(stack[stack.length - 1]); // 89
   5.269 +    case 8: { java_lang_NullPointerException_consV(stack.pop()); } // 183 1 128
   5.270 +    case 11:  // 191
   5.271 +    case 12: stack.push(arg1); // 43
   5.272 +    case 13: stack.push(arg0); // 42
   5.273 +    case 14: stack.push(stack.pop().value); // 180 1 100
   5.274 +    case 17: stack.push(arg0); // 42
   5.275 +    case 18: stack.push(stack.pop().offset); // 180 1 99
   5.276 +    case 21: stack.push(arg0); // 42
   5.277 +    case 22: stack.push(stack.pop().count); // 180 1 97
   5.278 +    case 25: { var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_StringCoding_encodeABLjava_nio_charset_CharsetACAIAI(v0, v1, v2, v3)); } // 184 1 168
   5.279 +    case 28: return stack.pop(); // 176
   5.280 +  }
   5.281 +}
   5.282 +function java_lang_String_getBytesAB(arg0) {
   5.283 +  var arg1;
   5.284 +;
   5.285 +  var stack = new Array(3);
   5.286 +  var gt = 0;
   5.287 +  for(;;) switch(gt) {
   5.288 +    case 0: stack.push(arg0); // 42
   5.289 +    case 1: stack.push(stack.pop().value); // 180 1 100
   5.290 +    case 4: stack.push(arg0); // 42
   5.291 +    case 5: stack.push(stack.pop().offset); // 180 1 99
   5.292 +    case 8: stack.push(arg0); // 42
   5.293 +    case 9: stack.push(stack.pop().count); // 180 1 97
   5.294 +    case 12: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_StringCoding_encodeABACAIAI(v0, v1, v2)); } // 184 1 164
   5.295 +    case 15: return stack.pop(); // 176
   5.296 +  }
   5.297 +}
   5.298 +function java_lang_String_equalsZLjava_lang_Object(arg0,arg1) {
   5.299 +  var arg2;
   5.300 +  var arg3;
   5.301 +  var arg4;
   5.302 +  var arg5;
   5.303 +  var arg6;
   5.304 +  var arg7;
   5.305 +  var arg8;
   5.306 +;
   5.307 +  var stack = new Array(3);
   5.308 +  var gt = 0;
   5.309 +  for(;;) switch(gt) {
   5.310 +    case 0: stack.push(arg0); // 42
   5.311 +    case 1: stack.push(arg1); // 43
   5.312 +    case 2:  // 166
   5.313 +    case 3:  // 0
   5.314 +    case 4: stack.push(2); // 5
   5.315 +    case 5: stack.push(1); // 4
   5.316 +    case 6: return stack.pop(); // 172
   5.317 +    case 7: stack.push(arg1); // 43
   5.318 +    case 8: stack.push(stack.pop().$instOf_java_lang_String ? 1 : 0); // 193 0 200
   5.319 +    case 11: if (stack.pop() == 0) { gt = 86; continue; } // 153 0 75
   5.320 +    case 14: stack.push(arg1); // 43
   5.321 +    case 15: if(stack[stack.length - 1].$instOf_java_lang_String != 1) throw {}; // 192 0 200
   5.322 +    case 18: arg2 = stack.pop(); // 77
   5.323 +    case 19: stack.push(arg0); // 42
   5.324 +    case 20: stack.push(stack.pop().count); // 180 1 97
   5.325 +    case 23: arg3 = stack.pop(); // 62
   5.326 +    case 24: stack.push(arg3); // 29
   5.327 +    case 25: stack.push(arg2); // 44
   5.328 +    case 26: stack.push(stack.pop().count); // 180 1 97
   5.329 +    case 29: if (stack.pop() != stack.pop()) { gt = 86; continue; } // 160 0 57
   5.330 +    case 32: stack.push(arg0); // 42
   5.331 +    case 33: stack.push(stack.pop().value); // 180 1 100
   5.332 +    case 36: arg4 = stack.pop() // 58 4
   5.333 +    case 38: stack.push(arg2); // 44
   5.334 +    case 39: stack.push(stack.pop().value); // 180 1 100
   5.335 +    case 42: arg5 = stack.pop() // 58 5
   5.336 +    case 44: stack.push(arg0); // 42
   5.337 +    case 45: stack.push(stack.pop().offset); // 180 1 99
   5.338 +    case 48: arg6 = stack.pop() // 54 6
   5.339 +    case 50: stack.push(arg2); // 44
   5.340 +    case 51: stack.push(stack.pop().offset); // 180 1 99
   5.341 +    case 54: arg7 = stack.pop() // 54 7
   5.342 +    case 56: stack.push(arg3); // 29
   5.343 +    case 57: arg3 += 255; // 132 3 255
   5.344 +    case 60: if (stack.pop() == 0) { gt = 84; continue; } // 153 0 24
   5.345 +    case 63: stack.push(arg4); // 25 4
   5.346 +    case 65: stack.push(arg6); // 21 6
   5.347 +    case 67: arg6++; // 132 6 1
   5.348 +    case 70: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.349 +    case 71: stack.push(arg5); // 25 5
   5.350 +    case 73: stack.push(arg7); // 21 7
   5.351 +    case 75: arg7++; // 132 7 1
   5.352 +    case 78: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.353 +    case 79: if (stack.pop() == stack.pop()) { gt = 56; continue; } // 159 255 233
   5.354 +    case 82: stack.push(0); // 3
   5.355 +    case 83: return stack.pop(); // 172
   5.356 +    case 84: stack.push(1); // 4
   5.357 +    case 85: return stack.pop(); // 172
   5.358 +    case 86: stack.push(0); // 3
   5.359 +    case 87: return stack.pop(); // 172
   5.360 +  }
   5.361 +}
   5.362 +function java_lang_String_contentEqualsZLjava_lang_StringBuffer(arg0,arg1) {
   5.363 +  var arg2;
   5.364 +  var arg3;
   5.365 +  var arg4;
   5.366 +;
   5.367 +  var stack = new Array(2);
   5.368 +  var gt = 0;
   5.369 +  for(;;) switch(gt) {
   5.370 +    case 0: stack.push(arg1); // 43
   5.371 +    case 1: stack.push(stack[stack.length - 1]); // 89
   5.372 +    case 2: arg2 = stack.pop(); // 77
   5.373 +    case 3:  // 194
   5.374 +    case 4: stack.push(arg0); // 42
   5.375 +    case 5: stack.push(arg1); // 43
   5.376 +    case 6: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.contentEqualsZLjava_lang_CharSequence(self, v0)); } // 182 1 146
   5.377 +    case 9: stack.push(arg2); // 44
   5.378 +    case 10:  // 195
   5.379 +    case 11: return stack.pop(); // 172
   5.380 +    case 12: arg3 = stack.pop(); // 78
   5.381 +    case 13: stack.push(arg2); // 44
   5.382 +    case 14:  // 195
   5.383 +    case 15: stack.push(arg3); // 45
   5.384 +    case 16:  // 191
   5.385 +  }
   5.386 +}
   5.387 +function java_lang_String_contentEqualsZLjava_lang_CharSequence(arg0,arg1) {
   5.388 +  var arg2;
   5.389 +  var arg3;
   5.390 +  var arg4;
   5.391 +  var arg5;
   5.392 +  var arg6;
   5.393 +  var arg7;
   5.394 +;
   5.395 +  var stack = new Array(3);
   5.396 +  var gt = 0;
   5.397 +  for(;;) switch(gt) {
   5.398 +    case 0: stack.push(arg0); // 42
   5.399 +    case 1: stack.push(stack.pop().count); // 180 1 97
   5.400 +    case 4: stack.push(arg1); // 43
   5.401 +    case 5: { var self = stack.pop(); stack.push(self.lengthI(self)); } // 185 1 188
   5.402 +    case 8:  // 1
   5.403 +    case 9:  // 0
   5.404 +    case 10: if (stack.pop() == stack.pop()) { gt = 15; continue; } // 159 0 5
   5.405 +    case 13: stack.push(0); // 3
   5.406 +    case 14: return stack.pop(); // 172
   5.407 +    case 15: stack.push(arg1); // 43
   5.408 +    case 16: stack.push(stack.pop().$instOf_java_lang_AbstractStringBuilder ? 1 : 0); // 193 0 186
   5.409 +    case 19: if (stack.pop() == 0) { gt = 77; continue; } // 153 0 58
   5.410 +    case 22: stack.push(arg0); // 42
   5.411 +    case 23: stack.push(stack.pop().value); // 180 1 100
   5.412 +    case 26: arg2 = stack.pop(); // 77
   5.413 +    case 27: stack.push(arg1); // 43
   5.414 +    case 28: if(stack[stack.length - 1].$instOf_java_lang_AbstractStringBuilder != 1) throw {}; // 192 0 186
   5.415 +    case 31: { var self = stack.pop(); stack.push(self.getValueAC(self)); } // 182 1 103
   5.416 +    case 34: arg3 = stack.pop(); // 78
   5.417 +    case 35: stack.push(arg0); // 42
   5.418 +    case 36: stack.push(stack.pop().offset); // 180 1 99
   5.419 +    case 39: arg4 = stack.pop() // 54 4
   5.420 +    case 41: stack.push(0); // 3
   5.421 +    case 42: arg5 = stack.pop() // 54 5
   5.422 +    case 44: stack.push(arg0); // 42
   5.423 +    case 45: stack.push(stack.pop().count); // 180 1 97
   5.424 +    case 48: arg6 = stack.pop() // 54 6
   5.425 +    case 50: stack.push(arg6); // 21 6
   5.426 +    case 52: arg6 += 255; // 132 6 255
   5.427 +    case 55: if (stack.pop() == 0) { gt = 77; continue; } // 153 0 22
   5.428 +    case 58: stack.push(arg2); // 44
   5.429 +    case 59: stack.push(arg4); // 21 4
   5.430 +    case 61: arg4++; // 132 4 1
   5.431 +    case 64: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.432 +    case 65: stack.push(arg3); // 45
   5.433 +    case 66: stack.push(arg5); // 21 5
   5.434 +    case 68: arg5++; // 132 5 1
   5.435 +    case 71: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.436 +    case 72: if (stack.pop() == stack.pop()) { gt = 50; continue; } // 159 255 234
   5.437 +    case 75: stack.push(0); // 3
   5.438 +    case 76: return stack.pop(); // 172
   5.439 +    case 77: stack.push(arg1); // 43
   5.440 +    case 78: stack.push(arg0); // 42
   5.441 +    case 79: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.equalsZLjava_lang_Object(self, v0)); } // 182 1 131
   5.442 +    case 82: if (stack.pop() == 0) { gt = 87; continue; } // 153 0 5
   5.443 +    case 85: stack.push(1); // 4
   5.444 +    case 86: return stack.pop(); // 172
   5.445 +    case 87: stack.push(arg0); // 42
   5.446 +    case 88: stack.push(stack.pop().value); // 180 1 100
   5.447 +    case 91: arg2 = stack.pop(); // 77
   5.448 +    case 92: stack.push(arg0); // 42
   5.449 +    case 93: stack.push(stack.pop().offset); // 180 1 99
   5.450 +    case 96: arg3 = stack.pop(); // 62
   5.451 +    case 97: stack.push(0); // 3
   5.452 +    case 98: arg4 = stack.pop() // 54 4
   5.453 +    case 100: stack.push(arg0); // 42
   5.454 +    case 101: stack.push(stack.pop().count); // 180 1 97
   5.455 +    case 104: arg5 = stack.pop() // 54 5
   5.456 +    case 106: stack.push(arg5); // 21 5
   5.457 +    case 108: arg5 += 255; // 132 5 255
   5.458 +    case 111: if (stack.pop() == 0) { gt = 136; continue; } // 153 0 25
   5.459 +    case 114: stack.push(arg2); // 44
   5.460 +    case 115: stack.push(arg3); // 29
   5.461 +    case 116: arg3++; // 132 3 1
   5.462 +    case 119: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.463 +    case 120: stack.push(arg1); // 43
   5.464 +    case 121: stack.push(arg4); // 21 4
   5.465 +    case 123: arg4++; // 132 4 1
   5.466 +    case 126: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.charAtCI(self, v0)); } // 185 1 189
   5.467 +    case 129:  // 2
   5.468 +    case 130:  // 0
   5.469 +    case 131: if (stack.pop() == stack.pop()) { gt = 106; continue; } // 159 255 231
   5.470 +    case 134: stack.push(0); // 3
   5.471 +    case 135: return stack.pop(); // 172
   5.472 +    case 136: stack.push(1); // 4
   5.473 +    case 137: return stack.pop(); // 172
   5.474 +  }
   5.475 +}
   5.476 +function java_lang_String_equalsIgnoreCaseZLjava_lang_String(arg0,arg1) {
   5.477 +  var arg2;
   5.478 +;
   5.479 +  var stack = new Array(6);
   5.480 +  var gt = 0;
   5.481 +  for(;;) switch(gt) {
   5.482 +    case 0: stack.push(arg0); // 42
   5.483 +    case 1: stack.push(arg1); // 43
   5.484 +    case 2:  // 166
   5.485 +    case 3:  // 0
   5.486 +    case 4: stack.push(4); // 7
   5.487 +    case 5: stack.push(1); // 4
   5.488 +    case 6: gt = 44; continue; // 167 0 38
   5.489 +    case 9: stack.push(arg1); // 43
   5.490 +    case 10: if (!stack.pop()) { gt = 43; continue; } // 198 0 33
   5.491 +    case 13: stack.push(arg1); // 43
   5.492 +    case 14: stack.push(stack.pop().count); // 180 1 97
   5.493 +    case 17: stack.push(arg0); // 42
   5.494 +    case 18: stack.push(stack.pop().count); // 180 1 97
   5.495 +    case 21: if (stack.pop() != stack.pop()) { gt = 43; continue; } // 160 0 22
   5.496 +    case 24: stack.push(arg0); // 42
   5.497 +    case 25: stack.push(1); // 4
   5.498 +    case 26: stack.push(0); // 3
   5.499 +    case 27: stack.push(arg1); // 43
   5.500 +    case 28: stack.push(0); // 3
   5.501 +    case 29: stack.push(arg0); // 42
   5.502 +    case 30: stack.push(stack.pop().count); // 180 1 97
   5.503 +    case 33: { var v4 = stack.pop(); var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.regionMatchesZZILjava_lang_StringII(self, v0, v1, v2, v3, v4)); } // 182 1 153
   5.504 +    case 36: if (stack.pop() == 0) { gt = 43; continue; } // 153 0 7
   5.505 +    case 39: stack.push(1); // 4
   5.506 +    case 40: gt = 44; continue; // 167 0 4
   5.507 +    case 43: stack.push(0); // 3
   5.508 +    case 44: return stack.pop(); // 172
   5.509 +  }
   5.510 +}
   5.511 +function java_lang_String_compareToILjava_lang_String(arg0,arg1) {
   5.512 +  var arg2;
   5.513 +  var arg3;
   5.514 +  var arg4;
   5.515 +  var arg5;
   5.516 +  var arg6;
   5.517 +  var arg7;
   5.518 +  var arg8;
   5.519 +  var arg9;
   5.520 +  var arg10;
   5.521 +  var arg11;
   5.522 +  var arg12;
   5.523 +  var arg13;
   5.524 +;
   5.525 +  var stack = new Array(2);
   5.526 +  var gt = 0;
   5.527 +  for(;;) switch(gt) {
   5.528 +    case 0: stack.push(arg0); // 42
   5.529 +    case 1: stack.push(stack.pop().count); // 180 1 97
   5.530 +    case 4: arg2 = stack.pop(); // 61
   5.531 +    case 5: stack.push(arg1); // 43
   5.532 +    case 6: stack.push(stack.pop().count); // 180 1 97
   5.533 +    case 9: arg3 = stack.pop(); // 62
   5.534 +    case 10: stack.push(arg2); // 28
   5.535 +    case 11: stack.push(arg3); // 29
   5.536 +    case 12: { var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Math_minIII(v0, v1)); } // 184 1 127
   5.537 +    case 15: arg4 = stack.pop() // 54 4
   5.538 +    case 17: stack.push(arg0); // 42
   5.539 +    case 18: stack.push(stack.pop().value); // 180 1 100
   5.540 +    case 21: arg5 = stack.pop() // 58 5
   5.541 +    case 23: stack.push(arg1); // 43
   5.542 +    case 24: stack.push(stack.pop().value); // 180 1 100
   5.543 +    case 27: arg6 = stack.pop() // 58 6
   5.544 +    case 29: stack.push(arg0); // 42
   5.545 +    case 30: stack.push(stack.pop().offset); // 180 1 99
   5.546 +    case 33: arg7 = stack.pop() // 54 7
   5.547 +    case 35: stack.push(arg1); // 43
   5.548 +    case 36: stack.push(stack.pop().offset); // 180 1 99
   5.549 +    case 39: arg8 = stack.pop() // 54 8
   5.550 +    case 41: stack.push(arg7); // 21 7
   5.551 +    case 43: stack.push(arg8); // 21 8
   5.552 +    case 45: if (stack.pop() != stack.pop()) { gt = 102; continue; } // 160 0 57
   5.553 +    case 48: stack.push(arg7); // 21 7
   5.554 +    case 50: arg9 = stack.pop() // 54 9
   5.555 +    case 52: stack.push(arg4); // 21 4
   5.556 +    case 54: stack.push(arg7); // 21 7
   5.557 +    case 56: stack.push(stack.pop() + stack.pop()); // 96
   5.558 +    case 57: arg10 = stack.pop() // 54 10
   5.559 +    case 59: stack.push(arg9); // 21 9
   5.560 +    case 61: stack.push(arg10); // 21 10
   5.561 +    case 63: if (stack.pop() <= stack.pop()) { gt = 99; continue; } // 162 0 36
   5.562 +    case 66: stack.push(arg5); // 25 5
   5.563 +    case 68: stack.push(arg9); // 21 9
   5.564 +    case 70: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.565 +    case 71: arg11 = stack.pop() // 54 11
   5.566 +    case 73: stack.push(arg6); // 25 6
   5.567 +    case 75: stack.push(arg9); // 21 9
   5.568 +    case 77: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.569 +    case 78: arg12 = stack.pop() // 54 12
   5.570 +    case 80: stack.push(arg11); // 21 11
   5.571 +    case 82: stack.push(arg12); // 21 12
   5.572 +    case 84: if (stack.pop() == stack.pop()) { gt = 93; continue; } // 159 0 9
   5.573 +    case 87: stack.push(arg11); // 21 11
   5.574 +    case 89: stack.push(arg12); // 21 12
   5.575 +    case 91: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   5.576 +    case 92: return stack.pop(); // 172
   5.577 +    case 93: arg9++; // 132 9 1
   5.578 +    case 96: gt = 59; continue; // 167 255 219
   5.579 +    case 99: gt = 146; continue; // 167 0 47
   5.580 +    case 102: stack.push(arg4); // 21 4
   5.581 +    case 104: arg4 += 255; // 132 4 255
   5.582 +    case 107: if (stack.pop() == 0) { gt = 146; continue; } // 153 0 39
   5.583 +    case 110: stack.push(arg5); // 25 5
   5.584 +    case 112: stack.push(arg7); // 21 7
   5.585 +    case 114: arg7++; // 132 7 1
   5.586 +    case 117: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.587 +    case 118: arg9 = stack.pop() // 54 9
   5.588 +    case 120: stack.push(arg6); // 25 6
   5.589 +    case 122: stack.push(arg8); // 21 8
   5.590 +    case 124: arg8++; // 132 8 1
   5.591 +    case 127: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.592 +    case 128: arg10 = stack.pop() // 54 10
   5.593 +    case 130: stack.push(arg9); // 21 9
   5.594 +    case 132: stack.push(arg10); // 21 10
   5.595 +    case 134: if (stack.pop() == stack.pop()) { gt = 143; continue; } // 159 0 9
   5.596 +    case 137: stack.push(arg9); // 21 9
   5.597 +    case 139: stack.push(arg10); // 21 10
   5.598 +    case 141: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   5.599 +    case 142: return stack.pop(); // 172
   5.600 +    case 143: gt = 102; continue; // 167 255 215
   5.601 +    case 146: stack.push(arg2); // 28
   5.602 +    case 147: stack.push(arg3); // 29
   5.603 +    case 148: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   5.604 +    case 149: return stack.pop(); // 172
   5.605 +  }
   5.606 +}
   5.607 +function java_lang_String_compareToIgnoreCaseILjava_lang_String(arg0,arg1) {
   5.608 +  var arg2;
   5.609 +;
   5.610 +  var stack = new Array(3);
   5.611 +  var gt = 0;
   5.612 +  for(;;) switch(gt) {
   5.613 +    case 0: stack.push(java_lang_String_CASE_INSENSITIVE_ORDER); // 178 1 102
   5.614 +    case 3: stack.push(arg0); // 42
   5.615 +    case 4: stack.push(arg1); // 43
   5.616 +    case 5: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.compareILjava_lang_ObjectLjava_lang_Object(self, v0, v1)); } // 185 1 190
   5.617 +    case 8: stack.push(0); // 3
   5.618 +    case 9:  // 0
   5.619 +    case 10: return stack.pop(); // 172
   5.620 +  }
   5.621 +}
   5.622 +function java_lang_String_regionMatchesZILjava_lang_StringII(arg0,arg1,arg2,arg3,arg4) {
   5.623 +  var arg5;
   5.624 +  var arg6;
   5.625 +  var arg7;
   5.626 +  var arg8;
   5.627 +  var arg9;
   5.628 +;
   5.629 +  var stack = new Array(6);
   5.630 +  var gt = 0;
   5.631 +  for(;;) switch(gt) {
   5.632 +    case 0: stack.push(arg0); // 42
   5.633 +    case 1: stack.push(stack.pop().value); // 180 1 100
   5.634 +    case 4: arg5 = stack.pop() // 58 5
   5.635 +    case 6: stack.push(arg0); // 42
   5.636 +    case 7: stack.push(stack.pop().offset); // 180 1 99
   5.637 +    case 10: stack.push(arg1); // 27
   5.638 +    case 11: stack.push(stack.pop() + stack.pop()); // 96
   5.639 +    case 12: arg6 = stack.pop() // 54 6
   5.640 +    case 14: stack.push(arg2); // 44
   5.641 +    case 15: stack.push(stack.pop().value); // 180 1 100
   5.642 +    case 18: arg7 = stack.pop() // 58 7
   5.643 +    case 20: stack.push(arg2); // 44
   5.644 +    case 21: stack.push(stack.pop().offset); // 180 1 99
   5.645 +    case 24: stack.push(arg3); // 29
   5.646 +    case 25: stack.push(stack.pop() + stack.pop()); // 96
   5.647 +    case 26: arg8 = stack.pop() // 54 8
   5.648 +    case 28: stack.push(arg3); // 29
   5.649 +    case 29: if (stack.pop() < 0) { gt = 66; continue; } // 155 0 37
   5.650 +    case 32: stack.push(arg1); // 27
   5.651 +    case 33: if (stack.pop() < 0) { gt = 66; continue; } // 155 0 33
   5.652 +    case 36: stack.push(arg1); // 27
   5.653 +    case 37: // number conversion  // 133
   5.654 +    case 38: stack.push(arg0); // 42
   5.655 +    case 39: stack.push(stack.pop().count); // 180 1 97
   5.656 +    case 42: // number conversion  // 133
   5.657 +    case 43: stack.push(arg4); // 21 4
   5.658 +    case 45: // number conversion  // 133
   5.659 +    case 46: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 101
   5.660 +    case 47: { var delta = stack.pop() - stack.pop(); stack.push(delta < 0 ?-1 : (delta == 0 ? 0 : 1)); } // 148
   5.661 +    case 48: if (stack.pop() > 0) { gt = 66; continue; } // 157 0 18
   5.662 +    case 51: stack.push(arg3); // 29
   5.663 +    case 52: // number conversion  // 133
   5.664 +    case 53: stack.push(arg2); // 44
   5.665 +    case 54: stack.push(stack.pop().count); // 180 1 97
   5.666 +    case 57: // number conversion  // 133
   5.667 +    case 58: stack.push(arg4); // 21 4
   5.668 +    case 60: // number conversion  // 133
   5.669 +    case 61: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 101
   5.670 +    case 62: { var delta = stack.pop() - stack.pop(); stack.push(delta < 0 ?-1 : (delta == 0 ? 0 : 1)); } // 148
   5.671 +    case 63: if (stack.pop() <= 0) { gt = 68; continue; } // 158 0 5
   5.672 +    case 66: stack.push(0); // 3
   5.673 +    case 67: return stack.pop(); // 172
   5.674 +    case 68: stack.push(arg4); // 21 4
   5.675 +    case 70: arg4 += 255; // 132 4 255
   5.676 +    case 73: if (stack.pop() <= 0) { gt = 97; continue; } // 158 0 24
   5.677 +    case 76: stack.push(arg5); // 25 5
   5.678 +    case 78: stack.push(arg6); // 21 6
   5.679 +    case 80: arg6++; // 132 6 1
   5.680 +    case 83: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.681 +    case 84: stack.push(arg7); // 25 7
   5.682 +    case 86: stack.push(arg8); // 21 8
   5.683 +    case 88: arg8++; // 132 8 1
   5.684 +    case 91: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.685 +    case 92: if (stack.pop() == stack.pop()) { gt = 68; continue; } // 159 255 232
   5.686 +    case 95: stack.push(0); // 3
   5.687 +    case 96: return stack.pop(); // 172
   5.688 +    case 97: stack.push(1); // 4
   5.689 +    case 98: return stack.pop(); // 172
   5.690 +  }
   5.691 +}
   5.692 +function java_lang_String_regionMatchesZZILjava_lang_StringII(arg0,arg1,arg2,arg3,arg4,arg5) {
   5.693 +  var arg6;
   5.694 +  var arg7;
   5.695 +  var arg8;
   5.696 +  var arg9;
   5.697 +  var arg10;
   5.698 +  var arg11;
   5.699 +  var arg12;
   5.700 +  var arg13;
   5.701 +  var arg14;
   5.702 +;
   5.703 +  var stack = new Array(6);
   5.704 +  var gt = 0;
   5.705 +  for(;;) switch(gt) {
   5.706 +    case 0: stack.push(arg0); // 42
   5.707 +    case 1: stack.push(stack.pop().value); // 180 1 100
   5.708 +    case 4: arg6 = stack.pop() // 58 6
   5.709 +    case 6: stack.push(arg0); // 42
   5.710 +    case 7: stack.push(stack.pop().offset); // 180 1 99
   5.711 +    case 10: stack.push(arg2); // 28
   5.712 +    case 11: stack.push(stack.pop() + stack.pop()); // 96
   5.713 +    case 12: arg7 = stack.pop() // 54 7
   5.714 +    case 14: stack.push(arg3); // 45
   5.715 +    case 15: stack.push(stack.pop().value); // 180 1 100
   5.716 +    case 18: arg8 = stack.pop() // 58 8
   5.717 +    case 20: stack.push(arg3); // 45
   5.718 +    case 21: stack.push(stack.pop().offset); // 180 1 99
   5.719 +    case 24: stack.push(arg4); // 21 4
   5.720 +    case 26: stack.push(stack.pop() + stack.pop()); // 96
   5.721 +    case 27: arg9 = stack.pop() // 54 9
   5.722 +    case 29: stack.push(arg4); // 21 4
   5.723 +    case 31: if (stack.pop() < 0) { gt = 69; continue; } // 155 0 38
   5.724 +    case 34: stack.push(arg2); // 28
   5.725 +    case 35: if (stack.pop() < 0) { gt = 69; continue; } // 155 0 34
   5.726 +    case 38: stack.push(arg2); // 28
   5.727 +    case 39: // number conversion  // 133
   5.728 +    case 40: stack.push(arg0); // 42
   5.729 +    case 41: stack.push(stack.pop().count); // 180 1 97
   5.730 +    case 44: // number conversion  // 133
   5.731 +    case 45: stack.push(arg5); // 21 5
   5.732 +    case 47: // number conversion  // 133
   5.733 +    case 48: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 101
   5.734 +    case 49: { var delta = stack.pop() - stack.pop(); stack.push(delta < 0 ?-1 : (delta == 0 ? 0 : 1)); } // 148
   5.735 +    case 50: if (stack.pop() > 0) { gt = 69; continue; } // 157 0 19
   5.736 +    case 53: stack.push(arg4); // 21 4
   5.737 +    case 55: // number conversion  // 133
   5.738 +    case 56: stack.push(arg3); // 45
   5.739 +    case 57: stack.push(stack.pop().count); // 180 1 97
   5.740 +    case 60: // number conversion  // 133
   5.741 +    case 61: stack.push(arg5); // 21 5
   5.742 +    case 63: // number conversion  // 133
   5.743 +    case 64: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 101
   5.744 +    case 65: { var delta = stack.pop() - stack.pop(); stack.push(delta < 0 ?-1 : (delta == 0 ? 0 : 1)); } // 148
   5.745 +    case 66: if (stack.pop() <= 0) { gt = 71; continue; } // 158 0 5
   5.746 +    case 69: stack.push(0); // 3
   5.747 +    case 70: return stack.pop(); // 172
   5.748 +    case 71: stack.push(arg5); // 21 5
   5.749 +    case 73: arg5 += 255; // 132 5 255
   5.750 +    case 76: if (stack.pop() <= 0) { gt = 155; continue; } // 158 0 79
   5.751 +    case 79: stack.push(arg6); // 25 6
   5.752 +    case 81: stack.push(arg7); // 21 7
   5.753 +    case 83: arg7++; // 132 7 1
   5.754 +    case 86: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.755 +    case 87: arg10 = stack.pop() // 54 10
   5.756 +    case 89: stack.push(arg8); // 25 8
   5.757 +    case 91: stack.push(arg9); // 21 9
   5.758 +    case 93: arg9++; // 132 9 1
   5.759 +    case 96: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.760 +    case 97: arg11 = stack.pop() // 54 11
   5.761 +    case 99: stack.push(arg10); // 21 10
   5.762 +    case 101: stack.push(arg11); // 21 11
   5.763 +    case 103: if (stack.pop() != stack.pop()) { gt = 109; continue; } // 160 0 6
   5.764 +    case 106: gt = 71; continue; // 167 255 221
   5.765 +    case 109: stack.push(arg1); // 27
   5.766 +    case 110: if (stack.pop() == 0) { gt = 153; continue; } // 153 0 43
   5.767 +    case 113: stack.push(arg10); // 21 10
   5.768 +    case 115: { var v0 = stack.pop(); stack.push(java_lang_Character_toUpperCaseCC(v0)); } // 184 1 105
   5.769 +    case 118: arg12 = stack.pop() // 54 12
   5.770 +    case 120: stack.push(arg11); // 21 11
   5.771 +    case 122: { var v0 = stack.pop(); stack.push(java_lang_Character_toUpperCaseCC(v0)); } // 184 1 105
   5.772 +    case 125: arg13 = stack.pop() // 54 13
   5.773 +    case 127: stack.push(arg12); // 21 12
   5.774 +    case 129: stack.push(arg13); // 21 13
   5.775 +    case 131: if (stack.pop() != stack.pop()) { gt = 137; continue; } // 160 0 6
   5.776 +    case 134: gt = 71; continue; // 167 255 193
   5.777 +    case 137: stack.push(arg12); // 21 12
   5.778 +    case 139: { var v0 = stack.pop(); stack.push(java_lang_Character_toLowerCaseCC(v0)); } // 184 1 104
   5.779 +    case 142: stack.push(arg13); // 21 13
   5.780 +    case 144: { var v0 = stack.pop(); stack.push(java_lang_Character_toLowerCaseCC(v0)); } // 184 1 104
   5.781 +    case 147: if (stack.pop() != stack.pop()) { gt = 153; continue; } // 160 0 6
   5.782 +    case 150: gt = 71; continue; // 167 255 177
   5.783 +    case 153: stack.push(0); // 3
   5.784 +    case 154: return stack.pop(); // 172
   5.785 +    case 155: stack.push(1); // 4
   5.786 +    case 156: return stack.pop(); // 172
   5.787 +  }
   5.788 +}
   5.789 +function java_lang_String_startsWithZLjava_lang_StringI(arg0,arg1,arg2) {
   5.790 +  var arg3;
   5.791 +  var arg4;
   5.792 +  var arg5;
   5.793 +  var arg6;
   5.794 +  var arg7;
   5.795 +  var arg8;
   5.796 +;
   5.797 +  var stack = new Array(3);
   5.798 +  var gt = 0;
   5.799 +  for(;;) switch(gt) {
   5.800 +    case 0: stack.push(arg0); // 42
   5.801 +    case 1: stack.push(stack.pop().value); // 180 1 100
   5.802 +    case 4: arg3 = stack.pop(); // 78
   5.803 +    case 5: stack.push(arg0); // 42
   5.804 +    case 6: stack.push(stack.pop().offset); // 180 1 99
   5.805 +    case 9: stack.push(arg2); // 28
   5.806 +    case 10: stack.push(stack.pop() + stack.pop()); // 96
   5.807 +    case 11: arg4 = stack.pop() // 54 4
   5.808 +    case 13: stack.push(arg1); // 43
   5.809 +    case 14: stack.push(stack.pop().value); // 180 1 100
   5.810 +    case 17: arg5 = stack.pop() // 58 5
   5.811 +    case 19: stack.push(arg1); // 43
   5.812 +    case 20: stack.push(stack.pop().offset); // 180 1 99
   5.813 +    case 23: arg6 = stack.pop() // 54 6
   5.814 +    case 25: stack.push(arg1); // 43
   5.815 +    case 26: stack.push(stack.pop().count); // 180 1 97
   5.816 +    case 29: arg7 = stack.pop() // 54 7
   5.817 +    case 31: stack.push(arg2); // 28
   5.818 +    case 32: if (stack.pop() < 0) { gt = 46; continue; } // 155 0 14
   5.819 +    case 35: stack.push(arg2); // 28
   5.820 +    case 36: stack.push(arg0); // 42
   5.821 +    case 37: stack.push(stack.pop().count); // 180 1 97
   5.822 +    case 40: stack.push(arg7); // 21 7
   5.823 +    case 42: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   5.824 +    case 43: if (stack.pop() >= stack.pop()) { gt = 48; continue; } // 164 0 5
   5.825 +    case 46: stack.push(0); // 3
   5.826 +    case 47: return stack.pop(); // 172
   5.827 +    case 48: arg7 += 255; // 132 7 255
   5.828 +    case 51: stack.push(arg7); // 21 7
   5.829 +    case 53: if (stack.pop() < 0) { gt = 76; continue; } // 155 0 23
   5.830 +    case 56: stack.push(arg3); // 45
   5.831 +    case 57: stack.push(arg4); // 21 4
   5.832 +    case 59: arg4++; // 132 4 1
   5.833 +    case 62: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.834 +    case 63: stack.push(arg5); // 25 5
   5.835 +    case 65: stack.push(arg6); // 21 6
   5.836 +    case 67: arg6++; // 132 6 1
   5.837 +    case 70: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.838 +    case 71: if (stack.pop() == stack.pop()) { gt = 48; continue; } // 159 255 233
   5.839 +    case 74: stack.push(0); // 3
   5.840 +    case 75: return stack.pop(); // 172
   5.841 +    case 76: stack.push(1); // 4
   5.842 +    case 77: return stack.pop(); // 172
   5.843 +  }
   5.844 +}
   5.845 +function java_lang_String_startsWithZLjava_lang_String(arg0,arg1) {
   5.846 +  var arg2;
   5.847 +;
   5.848 +  var stack = new Array(3);
   5.849 +  var gt = 0;
   5.850 +  for(;;) switch(gt) {
   5.851 +    case 0: stack.push(arg0); // 42
   5.852 +    case 1: stack.push(arg1); // 43
   5.853 +    case 2: stack.push(0); // 3
   5.854 +    case 3: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.startsWithZLjava_lang_StringI(self, v0, v1)); } // 182 1 152
   5.855 +    case 6: return stack.pop(); // 172
   5.856 +  }
   5.857 +}
   5.858 +function java_lang_String_endsWithZLjava_lang_String(arg0,arg1) {
   5.859 +  var arg2;
   5.860 +;
   5.861 +  var stack = new Array(4);
   5.862 +  var gt = 0;
   5.863 +  for(;;) switch(gt) {
   5.864 +    case 0: stack.push(arg0); // 42
   5.865 +    case 1: stack.push(arg1); // 43
   5.866 +    case 2: stack.push(arg0); // 42
   5.867 +    case 3: stack.push(stack.pop().count); // 180 1 97
   5.868 +    case 6: stack.push(arg1); // 43
   5.869 +    case 7: stack.push(stack.pop().count); // 180 1 97
   5.870 +    case 10: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   5.871 +    case 11: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.startsWithZLjava_lang_StringI(self, v0, v1)); } // 182 1 152
   5.872 +    case 14: return stack.pop(); // 172
   5.873 +  }
   5.874 +}
   5.875 +function java_lang_String_hashCodeI(arg0) {
   5.876 +  var arg1;
   5.877 +  var arg2;
   5.878 +  var arg3;
   5.879 +  var arg4;
   5.880 +  var arg5;
   5.881 +  var arg6;
   5.882 +;
   5.883 +  var stack = new Array(3);
   5.884 +  var gt = 0;
   5.885 +  for(;;) switch(gt) {
   5.886 +    case 0: stack.push(arg0); // 42
   5.887 +    case 1: stack.push(stack.pop().hash); // 180 1 98
   5.888 +    case 4: arg1 = stack.pop(); // 60
   5.889 +    case 5: stack.push(arg0); // 42
   5.890 +    case 6: stack.push(stack.pop().count); // 180 1 97
   5.891 +    case 9: arg2 = stack.pop(); // 61
   5.892 +    case 10: stack.push(arg1); // 27
   5.893 +    case 11: if (stack.pop() != 0) { gt = 62; continue; } // 154 0 51
   5.894 +    case 14: stack.push(arg2); // 28
   5.895 +    case 15: if (stack.pop() <= 0) { gt = 62; continue; } // 158 0 47
   5.896 +    case 18: stack.push(arg0); // 42
   5.897 +    case 19: stack.push(stack.pop().offset); // 180 1 99
   5.898 +    case 22: arg3 = stack.pop(); // 62
   5.899 +    case 23: stack.push(arg0); // 42
   5.900 +    case 24: stack.push(stack.pop().value); // 180 1 100
   5.901 +    case 27: arg4 = stack.pop() // 58 4
   5.902 +    case 29: stack.push(0); // 3
   5.903 +    case 30: arg5 = stack.pop() // 54 5
   5.904 +    case 32: stack.push(arg5); // 21 5
   5.905 +    case 34: stack.push(arg2); // 28
   5.906 +    case 35: if (stack.pop() <= stack.pop()) { gt = 57; continue; } // 162 0 22
   5.907 +    case 38: stack.push(31); // 16 31
   5.908 +    case 40: stack.push(arg1); // 27
   5.909 +    case 41: stack.push(stack.pop() * stack.pop()); // 104
   5.910 +    case 42: stack.push(arg4); // 25 4
   5.911 +    case 44: stack.push(arg3); // 29
   5.912 +    case 45: arg3++; // 132 3 1
   5.913 +    case 48: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.914 +    case 49: stack.push(stack.pop() + stack.pop()); // 96
   5.915 +    case 50: arg1 = stack.pop(); // 60
   5.916 +    case 51: arg5++; // 132 5 1
   5.917 +    case 54: gt = 32; continue; // 167 255 234
   5.918 +    case 57: stack.push(arg0); // 42
   5.919 +    case 58: stack.push(arg1); // 27
   5.920 +    case 59: { var v = stack.pop(); stack.pop().hash = v; } // 181 1 98
   5.921 +    case 62: stack.push(arg1); // 27
   5.922 +    case 63: return stack.pop(); // 172
   5.923 +  }
   5.924 +}
   5.925 +function java_lang_String_indexOfII(arg0,arg1) {
   5.926 +  var arg2;
   5.927 +;
   5.928 +  var stack = new Array(3);
   5.929 +  var gt = 0;
   5.930 +  for(;;) switch(gt) {
   5.931 +    case 0: stack.push(arg0); // 42
   5.932 +    case 1: stack.push(arg1); // 27
   5.933 +    case 2: stack.push(0); // 3
   5.934 +    case 3: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.indexOfIII(self, v0, v1)); } // 182 1 135
   5.935 +    case 6: return stack.pop(); // 172
   5.936 +  }
   5.937 +}
   5.938 +function java_lang_String_indexOfIII(arg0,arg1,arg2) {
   5.939 +  var arg3;
   5.940 +  var arg4;
   5.941 +  var arg5;
   5.942 +  var arg6;
   5.943 +  var arg7;
   5.944 +;
   5.945 +  var stack = new Array(3);
   5.946 +  var gt = 0;
   5.947 +  for(;;) switch(gt) {
   5.948 +    case 0: stack.push(arg0); // 42
   5.949 +    case 1: stack.push(stack.pop().offset); // 180 1 99
   5.950 +    case 4: stack.push(arg0); // 42
   5.951 +    case 5: stack.push(stack.pop().count); // 180 1 97
   5.952 +    case 8: stack.push(stack.pop() + stack.pop()); // 96
   5.953 +    case 9: arg3 = stack.pop(); // 62
   5.954 +    case 10: stack.push(arg0); // 42
   5.955 +    case 11: stack.push(stack.pop().value); // 180 1 100
   5.956 +    case 14: arg4 = stack.pop() // 58 4
   5.957 +    case 16: stack.push(arg2); // 28
   5.958 +    case 17: if (stack.pop() >= 0) { gt = 25; continue; } // 156 0 8
   5.959 +    case 20: stack.push(0); // 3
   5.960 +    case 21: arg2 = stack.pop(); // 61
   5.961 +    case 22: gt = 35; continue; // 167 0 13
   5.962 +    case 25: stack.push(arg2); // 28
   5.963 +    case 26: stack.push(arg0); // 42
   5.964 +    case 27: stack.push(stack.pop().count); // 180 1 97
   5.965 +    case 30: if (stack.pop() > stack.pop()) { gt = 35; continue; } // 161 0 5
   5.966 +    case 33:  // 2
   5.967 +    case 34: return stack.pop(); // 172
   5.968 +    case 35: stack.push(arg0); // 42
   5.969 +    case 36: stack.push(stack.pop().offset); // 180 1 99
   5.970 +    case 39: stack.push(arg2); // 28
   5.971 +    case 40: stack.push(stack.pop() + stack.pop()); // 96
   5.972 +    case 41: arg5 = stack.pop() // 54 5
   5.973 +    case 43: stack.push(arg1); // 27
   5.974 +    case 44: stack.push(65536); // 18 3
   5.975 +    case 46: if (stack.pop() <= stack.pop()) { gt = 80; continue; } // 162 0 34
   5.976 +    case 49: stack.push(arg5); // 21 5
   5.977 +    case 51: stack.push(arg3); // 29
   5.978 +    case 52: if (stack.pop() <= stack.pop()) { gt = 78; continue; } // 162 0 26
   5.979 +    case 55: stack.push(arg4); // 25 4
   5.980 +    case 57: stack.push(arg5); // 21 5
   5.981 +    case 59: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   5.982 +    case 60: stack.push(arg1); // 27
   5.983 +    case 61: if (stack.pop() != stack.pop()) { gt = 72; continue; } // 160 0 11
   5.984 +    case 64: stack.push(arg5); // 21 5
   5.985 +    case 66: stack.push(arg0); // 42
   5.986 +    case 67: stack.push(stack.pop().offset); // 180 1 99
   5.987 +    case 70: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   5.988 +    case 71: return stack.pop(); // 172
   5.989 +    case 72: arg5++; // 132 5 1
   5.990 +    case 75: gt = 49; continue; // 167 255 230
   5.991 +    case 78:  // 2
   5.992 +    case 79: return stack.pop(); // 172
   5.993 +    case 80: stack.push(arg1); // 27
   5.994 +    case 81: stack.push(1114111); // 18 4
   5.995 +    case 83: if (stack.pop() < stack.pop()) { gt = 149; continue; } // 163 0 66
   5.996 +    case 86: stack.push(arg1); // 27
   5.997 +    case 87: { var v0 = stack.pop(); stack.push(java_lang_Character_toCharsACI(v0)); } // 184 1 109
   5.998 +    case 90: arg6 = stack.pop() // 58 6
   5.999 +    case 92: stack.push(arg5); // 21 5
  5.1000 +    case 94: stack.push(arg3); // 29
  5.1001 +    case 95: if (stack.pop() <= stack.pop()) { gt = 149; continue; } // 162 0 54
  5.1002 +    case 98: stack.push(arg4); // 25 4
  5.1003 +    case 100: stack.push(arg5); // 21 5
  5.1004 +    case 102: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1005 +    case 103: stack.push(arg6); // 25 6
  5.1006 +    case 105: stack.push(0); // 3
  5.1007 +    case 106: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1008 +    case 107: if (stack.pop() != stack.pop()) { gt = 143; continue; } // 160 0 36
  5.1009 +    case 110: stack.push(arg5); // 21 5
  5.1010 +    case 112: stack.push(1); // 4
  5.1011 +    case 113: stack.push(stack.pop() + stack.pop()); // 96
  5.1012 +    case 114: stack.push(arg3); // 29
  5.1013 +    case 115: if (stack.pop() != stack.pop()) { gt = 121; continue; } // 160 0 6
  5.1014 +    case 118: gt = 149; continue; // 167 0 31
  5.1015 +    case 121: stack.push(arg4); // 25 4
  5.1016 +    case 123: stack.push(arg5); // 21 5
  5.1017 +    case 125: stack.push(1); // 4
  5.1018 +    case 126: stack.push(stack.pop() + stack.pop()); // 96
  5.1019 +    case 127: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1020 +    case 128: stack.push(arg6); // 25 6
  5.1021 +    case 130: stack.push(1); // 4
  5.1022 +    case 131: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1023 +    case 132: if (stack.pop() != stack.pop()) { gt = 143; continue; } // 160 0 11
  5.1024 +    case 135: stack.push(arg5); // 21 5
  5.1025 +    case 137: stack.push(arg0); // 42
  5.1026 +    case 138: stack.push(stack.pop().offset); // 180 1 99
  5.1027 +    case 141: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1028 +    case 142: return stack.pop(); // 172
  5.1029 +    case 143: arg5++; // 132 5 1
  5.1030 +    case 146: gt = 92; continue; // 167 255 202
  5.1031 +    case 149:  // 2
  5.1032 +    case 150: return stack.pop(); // 172
  5.1033 +  }
  5.1034 +}
  5.1035 +function java_lang_String_lastIndexOfII(arg0,arg1) {
  5.1036 +  var arg2;
  5.1037 +;
  5.1038 +  var stack = new Array(4);
  5.1039 +  var gt = 0;
  5.1040 +  for(;;) switch(gt) {
  5.1041 +    case 0: stack.push(arg0); // 42
  5.1042 +    case 1: stack.push(arg1); // 27
  5.1043 +    case 2: stack.push(arg0); // 42
  5.1044 +    case 3: stack.push(stack.pop().count); // 180 1 97
  5.1045 +    case 6: stack.push(1); // 4
  5.1046 +    case 7: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1047 +    case 8: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.lastIndexOfIII(self, v0, v1)); } // 182 1 136
  5.1048 +    case 11: return stack.pop(); // 172
  5.1049 +  }
  5.1050 +}
  5.1051 +function java_lang_String_lastIndexOfIII(arg0,arg1,arg2) {
  5.1052 +  var arg3;
  5.1053 +  var arg4;
  5.1054 +  var arg5;
  5.1055 +  var arg6;
  5.1056 +  var arg7;
  5.1057 +  var arg8;
  5.1058 +;
  5.1059 +  var stack = new Array(3);
  5.1060 +  var gt = 0;
  5.1061 +  for(;;) switch(gt) {
  5.1062 +    case 0: stack.push(arg0); // 42
  5.1063 +    case 1: stack.push(stack.pop().offset); // 180 1 99
  5.1064 +    case 4: arg3 = stack.pop(); // 62
  5.1065 +    case 5: stack.push(arg0); // 42
  5.1066 +    case 6: stack.push(stack.pop().value); // 180 1 100
  5.1067 +    case 9: arg4 = stack.pop() // 58 4
  5.1068 +    case 11: stack.push(arg0); // 42
  5.1069 +    case 12: stack.push(stack.pop().offset); // 180 1 99
  5.1070 +    case 15: stack.push(arg2); // 28
  5.1071 +    case 16: stack.push(arg0); // 42
  5.1072 +    case 17: stack.push(stack.pop().count); // 180 1 97
  5.1073 +    case 20: if (stack.pop() > stack.pop()) { gt = 32; continue; } // 161 0 12
  5.1074 +    case 23: stack.push(arg0); // 42
  5.1075 +    case 24: stack.push(stack.pop().count); // 180 1 97
  5.1076 +    case 27: stack.push(1); // 4
  5.1077 +    case 28: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1078 +    case 29: gt = 33; continue; // 167 0 4
  5.1079 +    case 32: stack.push(arg2); // 28
  5.1080 +    case 33: stack.push(stack.pop() + stack.pop()); // 96
  5.1081 +    case 34: arg5 = stack.pop() // 54 5
  5.1082 +    case 36: stack.push(arg1); // 27
  5.1083 +    case 37: stack.push(65536); // 18 3
  5.1084 +    case 39: if (stack.pop() <= stack.pop()) { gt = 73; continue; } // 162 0 34
  5.1085 +    case 42: stack.push(arg5); // 21 5
  5.1086 +    case 44: stack.push(arg3); // 29
  5.1087 +    case 45: if (stack.pop() > stack.pop()) { gt = 71; continue; } // 161 0 26
  5.1088 +    case 48: stack.push(arg4); // 25 4
  5.1089 +    case 50: stack.push(arg5); // 21 5
  5.1090 +    case 52: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1091 +    case 53: stack.push(arg1); // 27
  5.1092 +    case 54: if (stack.pop() != stack.pop()) { gt = 65; continue; } // 160 0 11
  5.1093 +    case 57: stack.push(arg5); // 21 5
  5.1094 +    case 59: stack.push(arg0); // 42
  5.1095 +    case 60: stack.push(stack.pop().offset); // 180 1 99
  5.1096 +    case 63: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1097 +    case 64: return stack.pop(); // 172
  5.1098 +    case 65: arg5 += 255; // 132 5 255
  5.1099 +    case 68: gt = 42; continue; // 167 255 230
  5.1100 +    case 71:  // 2
  5.1101 +    case 72: return stack.pop(); // 172
  5.1102 +    case 73: stack.push(arg0); // 42
  5.1103 +    case 74: stack.push(stack.pop().offset); // 180 1 99
  5.1104 +    case 77: stack.push(arg0); // 42
  5.1105 +    case 78: stack.push(stack.pop().count); // 180 1 97
  5.1106 +    case 81: stack.push(stack.pop() + stack.pop()); // 96
  5.1107 +    case 82: arg6 = stack.pop() // 54 6
  5.1108 +    case 84: stack.push(arg1); // 27
  5.1109 +    case 85: stack.push(1114111); // 18 4
  5.1110 +    case 87: if (stack.pop() < stack.pop()) { gt = 154; continue; } // 163 0 67
  5.1111 +    case 90: stack.push(arg1); // 27
  5.1112 +    case 91: { var v0 = stack.pop(); stack.push(java_lang_Character_toCharsACI(v0)); } // 184 1 109
  5.1113 +    case 94: arg7 = stack.pop() // 58 7
  5.1114 +    case 96: stack.push(arg5); // 21 5
  5.1115 +    case 98: stack.push(arg3); // 29
  5.1116 +    case 99: if (stack.pop() > stack.pop()) { gt = 154; continue; } // 161 0 55
  5.1117 +    case 102: stack.push(arg4); // 25 4
  5.1118 +    case 104: stack.push(arg5); // 21 5
  5.1119 +    case 106: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1120 +    case 107: stack.push(arg7); // 25 7
  5.1121 +    case 109: stack.push(0); // 3
  5.1122 +    case 110: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1123 +    case 111: if (stack.pop() != stack.pop()) { gt = 148; continue; } // 160 0 37
  5.1124 +    case 114: stack.push(arg5); // 21 5
  5.1125 +    case 116: stack.push(1); // 4
  5.1126 +    case 117: stack.push(stack.pop() + stack.pop()); // 96
  5.1127 +    case 118: stack.push(arg6); // 21 6
  5.1128 +    case 120: if (stack.pop() != stack.pop()) { gt = 126; continue; } // 160 0 6
  5.1129 +    case 123: gt = 154; continue; // 167 0 31
  5.1130 +    case 126: stack.push(arg4); // 25 4
  5.1131 +    case 128: stack.push(arg5); // 21 5
  5.1132 +    case 130: stack.push(1); // 4
  5.1133 +    case 131: stack.push(stack.pop() + stack.pop()); // 96
  5.1134 +    case 132: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1135 +    case 133: stack.push(arg7); // 25 7
  5.1136 +    case 135: stack.push(1); // 4
  5.1137 +    case 136: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1138 +    case 137: if (stack.pop() != stack.pop()) { gt = 148; continue; } // 160 0 11
  5.1139 +    case 140: stack.push(arg5); // 21 5
  5.1140 +    case 142: stack.push(arg0); // 42
  5.1141 +    case 143: stack.push(stack.pop().offset); // 180 1 99
  5.1142 +    case 146: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1143 +    case 147: return stack.pop(); // 172
  5.1144 +    case 148: arg5 += 255; // 132 5 255
  5.1145 +    case 151: gt = 96; continue; // 167 255 201
  5.1146 +    case 154:  // 2
  5.1147 +    case 155: return stack.pop(); // 172
  5.1148 +  }
  5.1149 +}
  5.1150 +function java_lang_String_indexOfILjava_lang_String(arg0,arg1) {
  5.1151 +  var arg2;
  5.1152 +;
  5.1153 +  var stack = new Array(3);
  5.1154 +  var gt = 0;
  5.1155 +  for(;;) switch(gt) {
  5.1156 +    case 0: stack.push(arg0); // 42
  5.1157 +    case 1: stack.push(arg1); // 43
  5.1158 +    case 2: stack.push(0); // 3
  5.1159 +    case 3: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.indexOfILjava_lang_StringI(self, v0, v1)); } // 182 1 150
  5.1160 +    case 6: return stack.pop(); // 172
  5.1161 +  }
  5.1162 +}
  5.1163 +function java_lang_String_indexOfILjava_lang_StringI(arg0,arg1,arg2) {
  5.1164 +  var arg3;
  5.1165 +;
  5.1166 +  var stack = new Array(7);
  5.1167 +  var gt = 0;
  5.1168 +  for(;;) switch(gt) {
  5.1169 +    case 0: stack.push(arg0); // 42
  5.1170 +    case 1: stack.push(stack.pop().value); // 180 1 100
  5.1171 +    case 4: stack.push(arg0); // 42
  5.1172 +    case 5: stack.push(stack.pop().offset); // 180 1 99
  5.1173 +    case 8: stack.push(arg0); // 42
  5.1174 +    case 9: stack.push(stack.pop().count); // 180 1 97
  5.1175 +    case 12: stack.push(arg1); // 43
  5.1176 +    case 13: stack.push(stack.pop().value); // 180 1 100
  5.1177 +    case 16: stack.push(arg1); // 43
  5.1178 +    case 17: stack.push(stack.pop().offset); // 180 1 99
  5.1179 +    case 20: stack.push(arg1); // 43
  5.1180 +    case 21: stack.push(stack.pop().count); // 180 1 97
  5.1181 +    case 24: stack.push(arg2); // 28
  5.1182 +    case 25: { var v6 = stack.pop(); var v5 = stack.pop(); var v4 = stack.pop(); var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_String_indexOfAIACAIAIACAIAIAI(v0, v1, v2, v3, v4, v5, v6)); } // 184 1 144
  5.1183 +    case 28: return stack.pop(); // 172
  5.1184 +  }
  5.1185 +}
  5.1186 +function java_lang_String_indexOfIACIIACIII(arg0,arg1,arg2,arg3,arg4,arg5,arg6) {
  5.1187 +  var arg7;
  5.1188 +  var arg8;
  5.1189 +  var arg9;
  5.1190 +  var arg10;
  5.1191 +  var arg11;
  5.1192 +  var arg12;
  5.1193 +  var stack = new Array();
  5.1194 +  var gt = 0;
  5.1195 +  for(;;) switch(gt) {
  5.1196 +    case 0: stack.push(arg6); // 21 6
  5.1197 +    case 2: stack.push(arg2); // 28
  5.1198 +    case 3: if (stack.pop() > stack.pop()) { gt = 17; continue; } // 161 0 14
  5.1199 +    case 6: stack.push(arg5); // 21 5
  5.1200 +    case 8: if (stack.pop() != 0) { gt = 15; continue; } // 154 0 7
  5.1201 +    case 11: stack.push(arg2); // 28
  5.1202 +    case 12: gt = 16; continue; // 167 0 4
  5.1203 +    case 15:  // 2
  5.1204 +    case 16: return stack.pop(); // 172
  5.1205 +    case 17: stack.push(arg6); // 21 6
  5.1206 +    case 19: if (stack.pop() >= 0) { gt = 25; continue; } // 156 0 6
  5.1207 +    case 22: stack.push(0); // 3
  5.1208 +    case 23: arg6 = stack.pop() // 54 6
  5.1209 +    case 25: stack.push(arg5); // 21 5
  5.1210 +    case 27: if (stack.pop() != 0) { gt = 33; continue; } // 154 0 6
  5.1211 +    case 30: stack.push(arg6); // 21 6
  5.1212 +    case 32: return stack.pop(); // 172
  5.1213 +    case 33: stack.push(arg3); // 45
  5.1214 +    case 34: stack.push(arg4); // 21 4
  5.1215 +    case 36: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1216 +    case 37: arg7 = stack.pop() // 54 7
  5.1217 +    case 39: stack.push(arg1); // 27
  5.1218 +    case 40: stack.push(arg2); // 28
  5.1219 +    case 41: stack.push(arg5); // 21 5
  5.1220 +    case 43: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1221 +    case 44: stack.push(stack.pop() + stack.pop()); // 96
  5.1222 +    case 45: arg8 = stack.pop() // 54 8
  5.1223 +    case 47: stack.push(arg1); // 27
  5.1224 +    case 48: stack.push(arg6); // 21 6
  5.1225 +    case 50: stack.push(stack.pop() + stack.pop()); // 96
  5.1226 +    case 51: arg9 = stack.pop() // 54 9
  5.1227 +    case 53: stack.push(arg9); // 21 9
  5.1228 +    case 55: stack.push(arg8); // 21 8
  5.1229 +    case 57: if (stack.pop() < stack.pop()) { gt = 164; continue; } // 163 0 107
  5.1230 +    case 60: stack.push(arg0); // 42
  5.1231 +    case 61: stack.push(arg9); // 21 9
  5.1232 +    case 63: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1233 +    case 64: stack.push(arg7); // 21 7
  5.1234 +    case 66: if (stack.pop() == stack.pop()) { gt = 91; continue; } // 159 0 25
  5.1235 +    case 69: arg9++; // 132 9 1
  5.1236 +    case 72: stack.push(arg9); // 21 9
  5.1237 +    case 74: stack.push(arg8); // 21 8
  5.1238 +    case 76: if (stack.pop() < stack.pop()) { gt = 91; continue; } // 163 0 15
  5.1239 +    case 79: stack.push(arg0); // 42
  5.1240 +    case 80: stack.push(arg9); // 21 9
  5.1241 +    case 82: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1242 +    case 83: stack.push(arg7); // 21 7
  5.1243 +    case 85: if (stack.pop() == stack.pop()) { gt = 91; continue; } // 159 0 6
  5.1244 +    case 88: gt = 69; continue; // 167 255 237
  5.1245 +    case 91: stack.push(arg9); // 21 9
  5.1246 +    case 93: stack.push(arg8); // 21 8
  5.1247 +    case 95: if (stack.pop() < stack.pop()) { gt = 158; continue; } // 163 0 63
  5.1248 +    case 98: stack.push(arg9); // 21 9
  5.1249 +    case 100: stack.push(1); // 4
  5.1250 +    case 101: stack.push(stack.pop() + stack.pop()); // 96
  5.1251 +    case 102: arg10 = stack.pop() // 54 10
  5.1252 +    case 104: stack.push(arg10); // 21 10
  5.1253 +    case 106: stack.push(arg5); // 21 5
  5.1254 +    case 108: stack.push(stack.pop() + stack.pop()); // 96
  5.1255 +    case 109: stack.push(1); // 4
  5.1256 +    case 110: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1257 +    case 111: arg11 = stack.pop() // 54 11
  5.1258 +    case 113: stack.push(arg4); // 21 4
  5.1259 +    case 115: stack.push(1); // 4
  5.1260 +    case 116: stack.push(stack.pop() + stack.pop()); // 96
  5.1261 +    case 117: arg12 = stack.pop() // 54 12
  5.1262 +    case 119: stack.push(arg10); // 21 10
  5.1263 +    case 121: stack.push(arg11); // 21 11
  5.1264 +    case 123: if (stack.pop() <= stack.pop()) { gt = 146; continue; } // 162 0 23
  5.1265 +    case 126: stack.push(arg0); // 42
  5.1266 +    case 127: stack.push(arg10); // 21 10
  5.1267 +    case 129: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1268 +    case 130: stack.push(arg3); // 45
  5.1269 +    case 131: stack.push(arg12); // 21 12
  5.1270 +    case 133: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1271 +    case 134: if (stack.pop() != stack.pop()) { gt = 146; continue; } // 160 0 12
  5.1272 +    case 137: arg10++; // 132 10 1
  5.1273 +    case 140: arg12++; // 132 12 1
  5.1274 +    case 143: gt = 119; continue; // 167 255 232
  5.1275 +    case 146: stack.push(arg10); // 21 10
  5.1276 +    case 148: stack.push(arg11); // 21 11
  5.1277 +    case 150: if (stack.pop() != stack.pop()) { gt = 158; continue; } // 160 0 8
  5.1278 +    case 153: stack.push(arg9); // 21 9
  5.1279 +    case 155: stack.push(arg1); // 27
  5.1280 +    case 156: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1281 +    case 157: return stack.pop(); // 172
  5.1282 +    case 158: arg9++; // 132 9 1
  5.1283 +    case 161: gt = 53; continue; // 167 255 148
  5.1284 +    case 164:  // 2
  5.1285 +    case 165: return stack.pop(); // 172
  5.1286 +  }
  5.1287 +}
  5.1288 +function java_lang_String_lastIndexOfILjava_lang_String(arg0,arg1) {
  5.1289 +  var arg2;
  5.1290 +;
  5.1291 +  var stack = new Array(3);
  5.1292 +  var gt = 0;
  5.1293 +  for(;;) switch(gt) {
  5.1294 +    case 0: stack.push(arg0); // 42
  5.1295 +    case 1: stack.push(arg1); // 43
  5.1296 +    case 2: stack.push(arg0); // 42
  5.1297 +    case 3: stack.push(stack.pop().count); // 180 1 97
  5.1298 +    case 6: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.lastIndexOfILjava_lang_StringI(self, v0, v1)); } // 182 1 151
  5.1299 +    case 9: return stack.pop(); // 172
  5.1300 +  }
  5.1301 +}
  5.1302 +function java_lang_String_lastIndexOfILjava_lang_StringI(arg0,arg1,arg2) {
  5.1303 +  var arg3;
  5.1304 +;
  5.1305 +  var stack = new Array(7);
  5.1306 +  var gt = 0;
  5.1307 +  for(;;) switch(gt) {
  5.1308 +    case 0: stack.push(arg0); // 42
  5.1309 +    case 1: stack.push(stack.pop().value); // 180 1 100
  5.1310 +    case 4: stack.push(arg0); // 42
  5.1311 +    case 5: stack.push(stack.pop().offset); // 180 1 99
  5.1312 +    case 8: stack.push(arg0); // 42
  5.1313 +    case 9: stack.push(stack.pop().count); // 180 1 97
  5.1314 +    case 12: stack.push(arg1); // 43
  5.1315 +    case 13: stack.push(stack.pop().value); // 180 1 100
  5.1316 +    case 16: stack.push(arg1); // 43
  5.1317 +    case 17: stack.push(stack.pop().offset); // 180 1 99
  5.1318 +    case 20: stack.push(arg1); // 43
  5.1319 +    case 21: stack.push(stack.pop().count); // 180 1 97
  5.1320 +    case 24: stack.push(arg2); // 28
  5.1321 +    case 25: { var v6 = stack.pop(); var v5 = stack.pop(); var v4 = stack.pop(); var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_String_lastIndexOfAIACAIAIACAIAIAI(v0, v1, v2, v3, v4, v5, v6)); } // 184 1 145
  5.1322 +    case 28: return stack.pop(); // 172
  5.1323 +  }
  5.1324 +}
  5.1325 +function java_lang_String_lastIndexOfIACIIACIII(arg0,arg1,arg2,arg3,arg4,arg5,arg6) {
  5.1326 +  var arg7;
  5.1327 +  var arg8;
  5.1328 +  var arg9;
  5.1329 +  var arg10;
  5.1330 +  var arg11;
  5.1331 +  var arg12;
  5.1332 +  var arg13;
  5.1333 +  var arg14;
  5.1334 +  var stack = new Array();
  5.1335 +  var gt = 0;
  5.1336 +  for(;;) switch(gt) {
  5.1337 +    case 0: stack.push(arg2); // 28
  5.1338 +    case 1: stack.push(arg5); // 21 5
  5.1339 +    case 3: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1340 +    case 4: arg7 = stack.pop() // 54 7
  5.1341 +    case 6: stack.push(arg6); // 21 6
  5.1342 +    case 8: if (stack.pop() >= 0) { gt = 13; continue; } // 156 0 5
  5.1343 +    case 11:  // 2
  5.1344 +    case 12: return stack.pop(); // 172
  5.1345 +    case 13: stack.push(arg6); // 21 6
  5.1346 +    case 15: stack.push(arg7); // 21 7
  5.1347 +    case 17: if (stack.pop() >= stack.pop()) { gt = 24; continue; } // 164 0 7
  5.1348 +    case 20: stack.push(arg7); // 21 7
  5.1349 +    case 22: arg6 = stack.pop() // 54 6
  5.1350 +    case 24: stack.push(arg5); // 21 5
  5.1351 +    case 26: if (stack.pop() != 0) { gt = 32; continue; } // 154 0 6
  5.1352 +    case 29: stack.push(arg6); // 21 6
  5.1353 +    case 31: return stack.pop(); // 172
  5.1354 +    case 32: stack.push(arg4); // 21 4
  5.1355 +    case 34: stack.push(arg5); // 21 5
  5.1356 +    case 36: stack.push(stack.pop() + stack.pop()); // 96
  5.1357 +    case 37: stack.push(1); // 4
  5.1358 +    case 38: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1359 +    case 39: arg8 = stack.pop() // 54 8
  5.1360 +    case 41: stack.push(arg3); // 45
  5.1361 +    case 42: stack.push(arg8); // 21 8
  5.1362 +    case 44: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1363 +    case 45: arg9 = stack.pop() // 54 9
  5.1364 +    case 47: stack.push(arg1); // 27
  5.1365 +    case 48: stack.push(arg5); // 21 5
  5.1366 +    case 50: stack.push(stack.pop() + stack.pop()); // 96
  5.1367 +    case 51: stack.push(1); // 4
  5.1368 +    case 52: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1369 +    case 53: arg10 = stack.pop() // 54 10
  5.1370 +    case 55: stack.push(arg10); // 21 10
  5.1371 +    case 57: stack.push(arg6); // 21 6
  5.1372 +    case 59: stack.push(stack.pop() + stack.pop()); // 96
  5.1373 +    case 60: arg11 = stack.pop() // 54 11
  5.1374 +    case 62: stack.push(arg11); // 21 11
  5.1375 +    case 64: stack.push(arg10); // 21 10
  5.1376 +    case 66: if (stack.pop() > stack.pop()) { gt = 84; continue; } // 161 0 18
  5.1377 +    case 69: stack.push(arg0); // 42
  5.1378 +    case 70: stack.push(arg11); // 21 11
  5.1379 +    case 72: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1380 +    case 73: stack.push(arg9); // 21 9
  5.1381 +    case 75: if (stack.pop() == stack.pop()) { gt = 84; continue; } // 159 0 9
  5.1382 +    case 78: arg11 += 255; // 132 11 255
  5.1383 +    case 81: gt = 62; continue; // 167 255 237
  5.1384 +    case 84: stack.push(arg11); // 21 11
  5.1385 +    case 86: stack.push(arg10); // 21 10
  5.1386 +    case 88: if (stack.pop() <= stack.pop()) { gt = 93; continue; } // 162 0 5
  5.1387 +    case 91:  // 2
  5.1388 +    case 92: return stack.pop(); // 172
  5.1389 +    case 93: stack.push(arg11); // 21 11
  5.1390 +    case 95: stack.push(1); // 4
  5.1391 +    case 96: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1392 +    case 97: arg12 = stack.pop() // 54 12
  5.1393 +    case 99: stack.push(arg12); // 21 12
  5.1394 +    case 101: stack.push(arg5); // 21 5
  5.1395 +    case 103: stack.push(1); // 4
  5.1396 +    case 104: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1397 +    case 105: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1398 +    case 106: arg13 = stack.pop() // 54 13
  5.1399 +    case 108: stack.push(arg8); // 21 8
  5.1400 +    case 110: stack.push(1); // 4
  5.1401 +    case 111: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1402 +    case 112: arg14 = stack.pop() // 54 14
  5.1403 +    case 114: stack.push(arg12); // 21 12
  5.1404 +    case 116: stack.push(arg13); // 21 13
  5.1405 +    case 118: if (stack.pop() >= stack.pop()) { gt = 144; continue; } // 164 0 26
  5.1406 +    case 121: stack.push(arg0); // 42
  5.1407 +    case 122: stack.push(arg12); // 21 12
  5.1408 +    case 124: arg12 += 255; // 132 12 255
  5.1409 +    case 127: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1410 +    case 128: stack.push(arg3); // 45
  5.1411 +    case 129: stack.push(arg14); // 21 14
  5.1412 +    case 131: arg14 += 255; // 132 14 255
  5.1413 +    case 134: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1414 +    case 135: if (stack.pop() == stack.pop()) { gt = 114; continue; } // 159 255 235
  5.1415 +    case 138: arg11 += 255; // 132 11 255
  5.1416 +    case 141: gt = 62; continue; // 167 255 177
  5.1417 +    case 144: stack.push(arg13); // 21 13
  5.1418 +    case 146: stack.push(arg1); // 27
  5.1419 +    case 147: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1420 +    case 148: stack.push(1); // 4
  5.1421 +    case 149: stack.push(stack.pop() + stack.pop()); // 96
  5.1422 +    case 150: return stack.pop(); // 172
  5.1423 +  }
  5.1424 +}
  5.1425 +function java_lang_String_substringLjava_lang_StringI(arg0,arg1) {
  5.1426 +  var arg2;
  5.1427 +;
  5.1428 +  var stack = new Array(3);
  5.1429 +  var gt = 0;
  5.1430 +  for(;;) switch(gt) {
  5.1431 +    case 0: stack.push(arg0); // 42
  5.1432 +    case 1: stack.push(arg1); // 27
  5.1433 +    case 2: stack.push(arg0); // 42
  5.1434 +    case 3: stack.push(stack.pop().count); // 180 1 97
  5.1435 +    case 6: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.substringLjava_lang_StringII(self, v0, v1)); } // 182 1 147
  5.1436 +    case 9: return stack.pop(); // 176
  5.1437 +  }
  5.1438 +}
  5.1439 +function java_lang_String_substringLjava_lang_StringII(arg0,arg1,arg2) {
  5.1440 +  var arg3;
  5.1441 +;
  5.1442 +  var stack = new Array(5);
  5.1443 +  var gt = 0;
  5.1444 +  for(;;) switch(gt) {
  5.1445 +    case 0: stack.push(arg1); // 27
  5.1446 +    case 1: if (stack.pop() >= 0) { gt = 13; continue; } // 156 0 12
  5.1447 +    case 4: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
  5.1448 +    case 7: stack.push(stack[stack.length - 1]); // 89
  5.1449 +    case 8: stack.push(arg1); // 27
  5.1450 +    case 9: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
  5.1451 +    case 12:  // 191
  5.1452 +    case 13: stack.push(arg2); // 28
  5.1453 +    case 14: stack.push(arg0); // 42
  5.1454 +    case 15: stack.push(stack.pop().count); // 180 1 97
  5.1455 +    case 18: if (stack.pop() >= stack.pop()) { gt = 30; continue; } // 164 0 12
  5.1456 +    case 21: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
  5.1457 +    case 24: stack.push(stack[stack.length - 1]); // 89
  5.1458 +    case 25: stack.push(arg2); // 28
  5.1459 +    case 26: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
  5.1460 +    case 29:  // 191
  5.1461 +    case 30: stack.push(arg1); // 27
  5.1462 +    case 31: stack.push(arg2); // 28
  5.1463 +    case 32: if (stack.pop() >= stack.pop()) { gt = 46; continue; } // 164 0 14
  5.1464 +    case 35: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
  5.1465 +    case 38: stack.push(stack[stack.length - 1]); // 89
  5.1466 +    case 39: stack.push(arg2); // 28
  5.1467 +    case 40: stack.push(arg1); // 27
  5.1468 +    case 41: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1469 +    case 42: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
  5.1470 +    case 45:  // 191
  5.1471 +    case 46: stack.push(arg1); // 27
  5.1472 +    case 47: if (stack.pop() != 0) { gt = 62; continue; } // 154 0 15
  5.1473 +    case 50: stack.push(arg2); // 28
  5.1474 +    case 51: stack.push(arg0); // 42
  5.1475 +    case 52: stack.push(stack.pop().count); // 180 1 97
  5.1476 +    case 55: if (stack.pop() != stack.pop()) { gt = 62; continue; } // 160 0 7
  5.1477 +    case 58: stack.push(arg0); // 42
  5.1478 +    case 59: gt = 82; continue; // 167 0 23
  5.1479 +    case 62: stack.push(new java_lang_String); // 187 0 200
  5.1480 +    case 65: stack.push(stack[stack.length - 1]); // 89
  5.1481 +    case 66: stack.push(arg0); // 42
  5.1482 +    case 67: stack.push(stack.pop().offset); // 180 1 99
  5.1483 +    case 70: stack.push(arg1); // 27
  5.1484 +    case 71: stack.push(stack.pop() + stack.pop()); // 96
  5.1485 +    case 72: stack.push(arg2); // 28
  5.1486 +    case 73: stack.push(arg1); // 27
  5.1487 +    case 74: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1488 +    case 75: stack.push(arg0); // 42
  5.1489 +    case 76: stack.push(stack.pop().value); // 180 1 100
  5.1490 +    case 79: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_String_consVIIAC(stack.pop(), v0, v1, v2); } // 183 1 137
  5.1491 +    case 82: return stack.pop(); // 176
  5.1492 +  }
  5.1493 +}
  5.1494 +function java_lang_String_subSequenceLjava_lang_CharSequenceII(arg0,arg1,arg2) {
  5.1495 +  var arg3;
  5.1496 +;
  5.1497 +  var stack = new Array(3);
  5.1498 +  var gt = 0;
  5.1499 +  for(;;) switch(gt) {
  5.1500 +    case 0: stack.push(arg0); // 42
  5.1501 +    case 1: stack.push(arg1); // 27
  5.1502 +    case 2: stack.push(arg2); // 28
  5.1503 +    case 3: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.substringLjava_lang_StringII(self, v0, v1)); } // 182 1 147
  5.1504 +    case 6: return stack.pop(); // 176
  5.1505 +  }
  5.1506 +}
  5.1507 +function java_lang_String_concatLjava_lang_StringLjava_lang_String(arg0,arg1) {
  5.1508 +  var arg2;
  5.1509 +  var arg3;
  5.1510 +  var arg4;
  5.1511 +;
  5.1512 +  var stack = new Array(5);
  5.1513 +  var gt = 0;
  5.1514 +  for(;;) switch(gt) {
  5.1515 +    case 0: stack.push(arg1); // 43
  5.1516 +    case 1: { var self = stack.pop(); stack.push(self.lengthI(self)); } // 182 1 133
  5.1517 +    case 4: arg2 = stack.pop(); // 61
  5.1518 +    case 5: stack.push(arg2); // 28
  5.1519 +    case 6: if (stack.pop() != 0) { gt = 11; continue; } // 154 0 5
  5.1520 +    case 9: stack.push(arg0); // 42
  5.1521 +    case 10: return stack.pop(); // 176
  5.1522 +    case 11: stack.push(arg0); // 42
  5.1523 +    case 12: stack.push(stack.pop().count); // 180 1 97
  5.1524 +    case 15: stack.push(arg2); // 28
  5.1525 +    case 16: stack.push(stack.pop() + stack.pop()); // 96
  5.1526 +    case 17: stack.push(new Array(stack.pop())); // 188 5
  5.1527 +    case 19: arg3 = stack.pop(); // 78
  5.1528 +    case 20: stack.push(arg0); // 42
  5.1529 +    case 21: stack.push(0); // 3
  5.1530 +    case 22: stack.push(arg0); // 42
  5.1531 +    case 23: stack.push(stack.pop().count); // 180 1 97
  5.1532 +    case 26: stack.push(arg3); // 45
  5.1533 +    case 27: stack.push(0); // 3
  5.1534 +    case 28: { var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); self.getCharsVIIACAI(self, v0, v1, v2, v3); } // 182 1 138
  5.1535 +    case 31: stack.push(arg1); // 43
  5.1536 +    case 32: stack.push(0); // 3
  5.1537 +    case 33: stack.push(arg2); // 28
  5.1538 +    case 34: stack.push(arg3); // 45
  5.1539 +    case 35: stack.push(arg0); // 42
  5.1540 +    case 36: stack.push(stack.pop().count); // 180 1 97
  5.1541 +    case 39: { var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); self.getCharsVIIACAI(self, v0, v1, v2, v3); } // 182 1 138
  5.1542 +    case 42: stack.push(new java_lang_String); // 187 0 200
  5.1543 +    case 45: stack.push(stack[stack.length - 1]); // 89
  5.1544 +    case 46: stack.push(0); // 3
  5.1545 +    case 47: stack.push(arg0); // 42
  5.1546 +    case 48: stack.push(stack.pop().count); // 180 1 97
  5.1547 +    case 51: stack.push(arg2); // 28
  5.1548 +    case 52: stack.push(stack.pop() + stack.pop()); // 96
  5.1549 +    case 53: stack.push(arg3); // 45
  5.1550 +    case 54: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_String_consVIIAC(stack.pop(), v0, v1, v2); } // 183 1 137
  5.1551 +    case 57: return stack.pop(); // 176
  5.1552 +  }
  5.1553 +}
  5.1554 +function java_lang_String_replaceLjava_lang_StringCC(arg0,arg1,arg2) {
  5.1555 +  var arg3;
  5.1556 +  var arg4;
  5.1557 +  var arg5;
  5.1558 +  var arg6;
  5.1559 +  var arg7;
  5.1560 +  var arg8;
  5.1561 +  var arg9;
  5.1562 +;
  5.1563 +  var stack = new Array(5);
  5.1564 +  var gt = 0;
  5.1565 +  for(;;) switch(gt) {
  5.1566 +    case 0: stack.push(arg1); // 27
  5.1567 +    case 1: stack.push(arg2); // 28
  5.1568 +    case 2: if (stack.pop() == stack.pop()) { gt = 140; continue; } // 159 0 138
  5.1569 +    case 5: stack.push(arg0); // 42
  5.1570 +    case 6: stack.push(stack.pop().count); // 180 1 97
  5.1571 +    case 9: arg3 = stack.pop(); // 62
  5.1572 +    case 10:  // 2
  5.1573 +    case 11: arg4 = stack.pop() // 54 4
  5.1574 +    case 13: stack.push(arg0); // 42
  5.1575 +    case 14: stack.push(stack.pop().value); // 180 1 100
  5.1576 +    case 17: arg5 = stack.pop() // 58 5
  5.1577 +    case 19: stack.push(arg0); // 42
  5.1578 +    case 20: stack.push(stack.pop().offset); // 180 1 99
  5.1579 +    case 23: arg6 = stack.pop() // 54 6
  5.1580 +    case 25: arg4++; // 132 4 1
  5.1581 +    case 28: stack.push(arg4); // 21 4
  5.1582 +    case 30: stack.push(arg3); // 29
  5.1583 +    case 31: if (stack.pop() <= stack.pop()) { gt = 49; continue; } // 162 0 18
  5.1584 +    case 34: stack.push(arg5); // 25 5
  5.1585 +    case 36: stack.push(arg6); // 21 6
  5.1586 +    case 38: stack.push(arg4); // 21 4
  5.1587 +    case 40: stack.push(stack.pop() + stack.pop()); // 96
  5.1588 +    case 41: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1589 +    case 42: stack.push(arg1); // 27
  5.1590 +    case 43: if (stack.pop() != stack.pop()) { gt = 25; continue; } // 160 255 238
  5.1591 +    case 46: gt = 49; continue; // 167 0 3
  5.1592 +    case 49: stack.push(arg4); // 21 4
  5.1593 +    case 51: stack.push(arg3); // 29
  5.1594 +    case 52: if (stack.pop() <= stack.pop()) { gt = 140; continue; } // 162 0 88
  5.1595 +    case 55: stack.push(arg3); // 29
  5.1596 +    case 56: stack.push(new Array(stack.pop())); // 188 5
  5.1597 +    case 58: arg7 = stack.pop() // 58 7
  5.1598 +    case 60: stack.push(0); // 3
  5.1599 +    case 61: arg8 = stack.pop() // 54 8
  5.1600 +    case 63: stack.push(arg8); // 21 8
  5.1601 +    case 65: stack.push(arg4); // 21 4
  5.1602 +    case 67: if (stack.pop() <= stack.pop()) { gt = 89; continue; } // 162 0 22
  5.1603 +    case 70: stack.push(arg7); // 25 7
  5.1604 +    case 72: stack.push(arg8); // 21 8
  5.1605 +    case 74: stack.push(arg5); // 25 5
  5.1606 +    case 76: stack.push(arg6); // 21 6
  5.1607 +    case 78: stack.push(arg8); // 21 8
  5.1608 +    case 80: stack.push(stack.pop() + stack.pop()); // 96
  5.1609 +    case 81: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1610 +    case 82: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
  5.1611 +    case 83: arg8++; // 132 8 1
  5.1612 +    case 86: gt = 63; continue; // 167 255 233
  5.1613 +    case 89: stack.push(arg4); // 21 4
  5.1614 +    case 91: stack.push(arg3); // 29
  5.1615 +    case 92: if (stack.pop() <= stack.pop()) { gt = 128; continue; } // 162 0 36
  5.1616 +    case 95: stack.push(arg5); // 25 5
  5.1617 +    case 97: stack.push(arg6); // 21 6
  5.1618 +    case 99: stack.push(arg4); // 21 4
  5.1619 +    case 101: stack.push(stack.pop() + stack.pop()); // 96
  5.1620 +    case 102: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1621 +    case 103: arg8 = stack.pop() // 54 8
  5.1622 +    case 105: stack.push(arg7); // 25 7
  5.1623 +    case 107: stack.push(arg4); // 21 4
  5.1624 +    case 109: stack.push(arg8); // 21 8
  5.1625 +    case 111: stack.push(arg1); // 27
  5.1626 +    case 112: if (stack.pop() != stack.pop()) { gt = 119; continue; } // 160 0 7
  5.1627 +    case 115: stack.push(arg2); // 28
  5.1628 +    case 116: gt = 121; continue; // 167 0 5
  5.1629 +    case 119: stack.push(arg8); // 21 8
  5.1630 +    case 121: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
  5.1631 +    case 122: arg4++; // 132 4 1
  5.1632 +    case 125: gt = 89; continue; // 167 255 220
  5.1633 +    case 128: stack.push(new java_lang_String); // 187 0 200
  5.1634 +    case 131: stack.push(stack[stack.length - 1]); // 89
  5.1635 +    case 132: stack.push(0); // 3
  5.1636 +    case 133: stack.push(arg3); // 29
  5.1637 +    case 134: stack.push(arg7); // 25 7
  5.1638 +    case 136: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_String_consVIIAC(stack.pop(), v0, v1, v2); } // 183 1 137
  5.1639 +    case 139: return stack.pop(); // 176
  5.1640 +    case 140: stack.push(arg0); // 42
  5.1641 +    case 141: return stack.pop(); // 176
  5.1642 +  }
  5.1643 +}
  5.1644 +function java_lang_String_matchesZLjava_lang_String(arg0,arg1) {
  5.1645 +  var arg2;
  5.1646 +;
  5.1647 +  var stack = new Array(2);
  5.1648 +  var gt = 0;
  5.1649 +  for(;;) switch(gt) {
  5.1650 +    case 0: stack.push(arg1); // 43
  5.1651 +    case 1: stack.push(arg0); // 42
  5.1652 +    case 2: { var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_util_regex_Pattern_matchesZLjava_lang_StringLjava_lang_CharSequence(v0, v1)); } // 184 1 183
  5.1653 +    case 5: return stack.pop(); // 172
  5.1654 +  }
  5.1655 +}
  5.1656 +function java_lang_String_containsZLjava_lang_CharSequence(arg0,arg1) {
  5.1657 +  var arg2;
  5.1658 +;
  5.1659 +  var stack = new Array(2);
  5.1660 +  var gt = 0;
  5.1661 +  for(;;) switch(gt) {
  5.1662 +    case 0: stack.push(arg0); // 42
  5.1663 +    case 1: stack.push(arg1); // 43
  5.1664 +    case 2: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 132
  5.1665 +    case 5: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.indexOfILjava_lang_String(self, v0)); } // 182 1 149
  5.1666 +    case 8:  // 2
  5.1667 +    case 9: if (stack.pop() >= stack.pop()) { gt = 16; continue; } // 164 0 7
  5.1668 +    case 12: stack.push(1); // 4
  5.1669 +    case 13: gt = 17; continue; // 167 0 4
  5.1670 +    case 16: stack.push(0); // 3
  5.1671 +    case 17: return stack.pop(); // 172
  5.1672 +  }
  5.1673 +}
  5.1674 +function java_lang_String_replaceFirstLjava_lang_StringLjava_lang_StringLjava_lang_String(arg0,arg1,arg2) {
  5.1675 +  var arg3;
  5.1676 +;
  5.1677 +  var stack = new Array(2);
  5.1678 +  var gt = 0;
  5.1679 +  for(;;) switch(gt) {
  5.1680 +    case 0: stack.push(arg1); // 43
  5.1681 +    case 1: { var v0 = stack.pop(); stack.push(java_util_regex_Pattern_compileLjava_util_regex_PatternLjava_lang_String(v0)); } // 184 1 186
  5.1682 +    case 4: stack.push(arg0); // 42
  5.1683 +    case 5: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.matcherLjava_util_regex_MatcherLjava_lang_CharSequence(self, v0)); } // 182 1 185
  5.1684 +    case 8: stack.push(arg2); // 44
  5.1685 +    case 9: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.replaceFirstLjava_lang_StringLjava_lang_String(self, v0)); } // 182 1 182
  5.1686 +    case 12: return stack.pop(); // 176
  5.1687 +  }
  5.1688 +}
  5.1689 +function java_lang_String_replaceAllLjava_lang_StringLjava_lang_StringLjava_lang_String(arg0,arg1,arg2) {
  5.1690 +  var arg3;
  5.1691 +;
  5.1692 +  var stack = new Array(2);
  5.1693 +  var gt = 0;
  5.1694 +  for(;;) switch(gt) {
  5.1695 +    case 0: stack.push(arg1); // 43
  5.1696 +    case 1: { var v0 = stack.pop(); stack.push(java_util_regex_Pattern_compileLjava_util_regex_PatternLjava_lang_String(v0)); } // 184 1 186
  5.1697 +    case 4: stack.push(arg0); // 42
  5.1698 +    case 5: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.matcherLjava_util_regex_MatcherLjava_lang_CharSequence(self, v0)); } // 182 1 185
  5.1699 +    case 8: stack.push(arg2); // 44
  5.1700 +    case 9: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.replaceAllLjava_lang_StringLjava_lang_String(self, v0)); } // 182 1 181
  5.1701 +    case 12: return stack.pop(); // 176
  5.1702 +  }
  5.1703 +}
  5.1704 +function java_lang_String_replaceLjava_lang_StringLjava_lang_CharSequenceLjava_lang_CharSequence(arg0,arg1,arg2) {
  5.1705 +  var arg3;
  5.1706 +;
  5.1707 +  var stack = new Array(2);
  5.1708 +  var gt = 0;
  5.1709 +  for(;;) switch(gt) {
  5.1710 +    case 0: stack.push(arg1); // 43
  5.1711 +    case 1: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 132
  5.1712 +    case 4: stack.push(16); // 16 16
  5.1713 +    case 6: { var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_util_regex_Pattern_compileLjava_util_regex_PatternLjava_lang_StringI(v0, v1)); } // 184 1 187
  5.1714 +    case 9: stack.push(arg0); // 42
  5.1715 +    case 10: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.matcherLjava_util_regex_MatcherLjava_lang_CharSequence(self, v0)); } // 182 1 185
  5.1716 +    case 13: stack.push(arg2); // 44
  5.1717 +    case 14: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 132
  5.1718 +    case 17: { var v0 = stack.pop(); stack.push(java_util_regex_Matcher_quoteReplacementLjava_lang_StringLjava_lang_String(v0)); } // 184 1 180
  5.1719 +    case 20: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.replaceAllLjava_lang_StringLjava_lang_String(self, v0)); } // 182 1 181
  5.1720 +    case 23: return stack.pop(); // 176
  5.1721 +  }
  5.1722 +}
  5.1723 +function java_lang_String_splitALjava_lang_StringLjava_lang_StringI(arg0,arg1,arg2) {
  5.1724 +  var arg3;
  5.1725 +;
  5.1726 +  var stack = new Array(3);
  5.1727 +  var gt = 0;
  5.1728 +  for(;;) switch(gt) {
  5.1729 +    case 0: stack.push(arg1); // 43
  5.1730 +    case 1: { var v0 = stack.pop(); stack.push(java_util_regex_Pattern_compileLjava_util_regex_PatternLjava_lang_String(v0)); } // 184 1 186
  5.1731 +    case 4: stack.push(arg0); // 42
  5.1732 +    case 5: stack.push(arg2); // 28
  5.1733 +    case 6: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.splitALjava_lang_StringLjava_lang_CharSequenceI(self, v0, v1)); } // 182 1 184
  5.1734 +    case 9: return stack.pop(); // 176
  5.1735 +  }
  5.1736 +}
  5.1737 +function java_lang_String_splitALjava_lang_StringLjava_lang_String(arg0,arg1) {
  5.1738 +  var arg2;
  5.1739 +;
  5.1740 +  var stack = new Array(3);
  5.1741 +  var gt = 0;
  5.1742 +  for(;;) switch(gt) {
  5.1743 +    case 0: stack.push(arg0); // 42
  5.1744 +    case 1: stack.push(arg1); // 43
  5.1745 +    case 2: stack.push(0); // 3
  5.1746 +    case 3: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.splitALjava_lang_StringLjava_lang_StringI(self, v0, v1)); } // 182 1 157
  5.1747 +    case 6: return stack.pop(); // 176
  5.1748 +  }
  5.1749 +}
  5.1750 +function java_lang_String_toLowerCaseLjava_lang_StringLjava_util_Locale(arg0,arg1) {
  5.1751 +  var arg2;
  5.1752 +  var arg3;
  5.1753 +  var arg4;
  5.1754 +  var arg5;
  5.1755 +  var arg6;
  5.1756 +  var arg7;
  5.1757 +  var arg8;
  5.1758 +  var arg9;
  5.1759 +  var arg10;
  5.1760 +  var arg11;
  5.1761 +  var arg12;
  5.1762 +  var arg13;
  5.1763 +  var arg14;
  5.1764 +;
  5.1765 +  var stack = new Array(6);
  5.1766 +  var gt = 0;
  5.1767 +  for(;;) switch(gt) {
  5.1768 +    case 0: stack.push(arg1); // 43
  5.1769 +    case 1: if (stack.pop()) { gt = 12; continue; } // 199 0 11
  5.1770 +    case 4: stack.push(new java_lang_NullPointerException); // 187 0 198
  5.1771 +    case 7: stack.push(stack[stack.length - 1]); // 89
  5.1772 +    case 8: { java_lang_NullPointerException_consV(stack.pop()); } // 183 1 128
  5.1773 +    case 11:  // 191
  5.1774 +    case 12: stack.push(0); // 3
  5.1775 +    case 13: arg2 = stack.pop(); // 61
  5.1776 +    case 14: stack.push(arg2); // 28
  5.1777 +    case 15: stack.push(arg0); // 42
  5.1778 +    case 16: stack.push(stack.pop().count); // 180 1 97
  5.1779 +    case 19: if (stack.pop() <= stack.pop()) { gt = 94; continue; } // 162 0 75
  5.1780 +    case 22: stack.push(arg0); // 42
  5.1781 +    case 23: stack.push(stack.pop().value); // 180 1 100
  5.1782 +    case 26: stack.push(arg0); // 42
  5.1783 +    case 27: stack.push(stack.pop().offset); // 180 1 99
  5.1784 +    case 30: stack.push(arg2); // 28
  5.1785 +    case 31: stack.push(stack.pop() + stack.pop()); // 96
  5.1786 +    case 32: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1787 +    case 33: arg3 = stack.pop(); // 62
  5.1788 +    case 34: stack.push(arg3); // 29
  5.1789 +    case 35: stack.push(55296); // 18 1
  5.1790 +    case 37: if (stack.pop() > stack.pop()) { gt = 77; continue; } // 161 0 40
  5.1791 +    case 40: stack.push(arg3); // 29
  5.1792 +    case 41: stack.push(56319); // 18 2
  5.1793 +    case 43: if (stack.pop() < stack.pop()) { gt = 77; continue; } // 163 0 34
  5.1794 +    case 46: stack.push(arg0); // 42
  5.1795 +    case 47: stack.push(arg2); // 28
  5.1796 +    case 48: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.codePointAtII(self, v0)); } // 182 1 134
  5.1797 +    case 51: arg4 = stack.pop() // 54 4
  5.1798 +    case 53: stack.push(arg4); // 21 4
  5.1799 +    case 55: stack.push(arg4); // 21 4
  5.1800 +    case 57: { var v0 = stack.pop(); stack.push(java_lang_Character_toLowerCaseII(v0)); } // 184 1 107
  5.1801 +    case 60: if (stack.pop() == stack.pop()) { gt = 66; continue; } // 159 0 6
  5.1802 +    case 63: gt = 96; continue; // 167 0 33
  5.1803 +    case 66: stack.push(arg2); // 28
  5.1804 +    case 67: stack.push(arg4); // 21 4
  5.1805 +    case 69: { var v0 = stack.pop(); stack.push(java_lang_Character_charCountII(v0)); } // 184 1 106
  5.1806 +    case 72: stack.push(stack.pop() + stack.pop()); // 96
  5.1807 +    case 73: arg2 = stack.pop(); // 61
  5.1808 +    case 74: gt = 91; continue; // 167 0 17
  5.1809 +    case 77: stack.push(arg3); // 29
  5.1810 +    case 78: stack.push(arg3); // 29
  5.1811 +    case 79: { var v0 = stack.pop(); stack.push(java_lang_Character_toLowerCaseCC(v0)); } // 184 1 104
  5.1812 +    case 82: if (stack.pop() == stack.pop()) { gt = 88; continue; } // 159 0 6
  5.1813 +    case 85: gt = 96; continue; // 167 0 11
  5.1814 +    case 88: arg2++; // 132 2 1
  5.1815 +    case 91: gt = 14; continue; // 167 255 179
  5.1816 +    case 94: stack.push(arg0); // 42
  5.1817 +    case 95: return stack.pop(); // 176
  5.1818 +    case 96: stack.push(arg0); // 42
  5.1819 +    case 97: stack.push(stack.pop().count); // 180 1 97
  5.1820 +    case 100: stack.push(new Array(stack.pop())); // 188 5
  5.1821 +    case 102: arg3 = stack.pop(); // 78
  5.1822 +    case 103: stack.push(0); // 3
  5.1823 +    case 104: arg4 = stack.pop() // 54 4
  5.1824 +    case 106: stack.push(arg0); // 42
  5.1825 +    case 107: stack.push(stack.pop().value); // 180 1 100
  5.1826 +    case 110: stack.push(arg0); // 42
  5.1827 +    case 111: stack.push(stack.pop().offset); // 180 1 99
  5.1828 +    case 114: stack.push(arg3); // 45
  5.1829 +    case 115: stack.push(0); // 3
  5.1830 +    case 116: stack.push(arg2); // 28
  5.1831 +    case 117: { 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
  5.1832 +    case 120: stack.push(arg1); // 43
  5.1833 +    case 121: { var self = stack.pop(); stack.push(self.getLanguageLjava_lang_String(self)); } // 182 1 178
  5.1834 +    case 124: arg5 = stack.pop() // 58 5
  5.1835 +    case 126: stack.push(arg5); // 25 5
  5.1836 +    case 128: stack.push("tr"); // 18 11
  5.1837 +    case 130:  // 165
  5.1838 +    case 131:  // 0
  5.1839 +    case 132: stack.push(6405); // 17 25 5
  5.1840 +    case 135: stack.push("az"); // 18 5
  5.1841 +    case 137:  // 165
  5.1842 +    case 138:  // 0
  5.1843 +    case 139: stack.push(1); // 10
  5.1844 +    case 140: stack.push(arg5); // 25 5
  5.1845 +    case 142: stack.push("lt"); // 18 9
  5.1846 +    case 144:  // 166
  5.1847 +    case 145:  // 0
  5.1848 +    case 146: stack.push(4); // 7
  5.1849 +    case 147: stack.push(1); // 4
  5.1850 +    case 148: gt = 152; continue; // 167 0 4
  5.1851 +    case 151: stack.push(0); // 3
  5.1852 +    case 152: arg6 = stack.pop() // 54 6
  5.1853 +    case 154: stack.push(arg2); // 28
  5.1854 +    case 155: arg11 = stack.pop() // 54 11
  5.1855 +    case 157: stack.push(arg11); // 21 11
  5.1856 +    case 159: stack.push(arg0); // 42
  5.1857 +    case 160: stack.push(stack.pop().count); // 180 1 97
  5.1858 +    case 163: if (stack.pop() <= stack.pop()) { gt = 419; continue; } // 162 1 0
  5.1859 +    case 166: stack.push(arg0); // 42
  5.1860 +    case 167: stack.push(stack.pop().value); // 180 1 100
  5.1861 +    case 170: stack.push(arg0); // 42
  5.1862 +    case 171: stack.push(stack.pop().offset); // 180 1 99
  5.1863 +    case 174: stack.push(arg11); // 21 11
  5.1864 +    case 176: stack.push(stack.pop() + stack.pop()); // 96
  5.1865 +    case 177: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1866 +    case 178: arg9 = stack.pop() // 54 9
  5.1867 +    case 180: stack.push(arg9); // 21 9
  5.1868 +    case 182: // number conversion  // 146
  5.1869 +    case 183: stack.push(55296); // 18 1
  5.1870 +    case 185: if (stack.pop() > stack.pop()) { gt = 214; continue; } // 161 0 29
  5.1871 +    case 188: stack.push(arg9); // 21 9
  5.1872 +    case 190: // number conversion  // 146
  5.1873 +    case 191: stack.push(56319); // 18 2
  5.1874 +    case 193: if (stack.pop() < stack.pop()) { gt = 214; continue; } // 163 0 21
  5.1875 +    case 196: stack.push(arg0); // 42
  5.1876 +    case 197: stack.push(arg11); // 21 11
  5.1877 +    case 199: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.codePointAtII(self, v0)); } // 182 1 134
  5.1878 +    case 202: arg9 = stack.pop() // 54 9
  5.1879 +    case 204: stack.push(arg9); // 21 9
  5.1880 +    case 206: { var v0 = stack.pop(); stack.push(java_lang_Character_charCountII(v0)); } // 184 1 106
  5.1881 +    case 209: arg10 = stack.pop() // 54 10
  5.1882 +    case 211: gt = 217; continue; // 167 0 6
  5.1883 +    case 214: stack.push(1); // 4
  5.1884 +    case 215: arg10 = stack.pop() // 54 10
  5.1885 +    case 217: stack.push(arg6); // 21 6
  5.1886 +    case 219: if (stack.pop() != 0) { gt = 230; continue; } // 154 0 11
  5.1887 +    case 222: stack.push(arg9); // 21 9
  5.1888 +    case 224: stack.push(931); // 17 3 163
  5.1889 +    case 227: if (stack.pop() != stack.pop()) { gt = 242; continue; } // 160 0 15
  5.1890 +    case 230: stack.push(arg0); // 42
  5.1891 +    case 231: stack.push(arg11); // 21 11
  5.1892 +    case 233: stack.push(arg1); // 43
  5.1893 +    case 234: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_ConditionalSpecialCasing_toLowerCaseExILjava_lang_StringILjava_util_Locale(v0, v1, v2)); } // 184 1 117
  5.1894 +    case 237: arg8 = stack.pop() // 54 8
  5.1895 +    case 239: gt = 249; continue; // 167 0 10
  5.1896 +    case 242: stack.push(arg9); // 21 9
  5.1897 +    case 244: { var v0 = stack.pop(); stack.push(java_lang_Character_toLowerCaseII(v0)); } // 184 1 107
  5.1898 +    case 247: arg8 = stack.pop() // 54 8
  5.1899 +    case 249: stack.push(arg8); // 21 8
  5.1900 +    case 251:  // 2
  5.1901 +    case 252: if (stack.pop() == stack.pop()) { gt = 262; continue; } // 159 0 10
  5.1902 +    case 255: stack.push(arg8); // 21 8
  5.1903 +    case 257: stack.push(65536); // 18 3
  5.1904 +    case 259: if (stack.pop() > stack.pop()) { gt = 399; continue; } // 161 0 140
  5.1905 +    case 262: stack.push(arg8); // 21 8
  5.1906 +    case 264:  // 2
  5.1907 +    case 265: if (stack.pop() != stack.pop()) { gt = 280; continue; } // 160 0 15
  5.1908 +    case 268: stack.push(arg0); // 42
  5.1909 +    case 269: stack.push(arg11); // 21 11
  5.1910 +    case 271: stack.push(arg1); // 43
  5.1911 +    case 272: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_ConditionalSpecialCasing_toLowerCaseCharArrayACLjava_lang_StringILjava_util_Locale(v0, v1, v2)); } // 184 1 119
  5.1912 +    case 275: arg7 = stack.pop() // 58 7
  5.1913 +    case 277: gt = 315; continue; // 167 0 38
  5.1914 +    case 280: stack.push(arg10); // 21 10
  5.1915 +    case 282: stack.push(2); // 5
  5.1916 +    case 283: if (stack.pop() != stack.pop()) { gt = 308; continue; } // 160 0 25
  5.1917 +    case 286: stack.push(arg4); // 21 4
  5.1918 +    case 288: stack.push(arg8); // 21 8
  5.1919 +    case 290: stack.push(arg3); // 45
  5.1920 +    case 291: stack.push(arg11); // 21 11
  5.1921 +    case 293: stack.push(arg4); // 21 4
  5.1922 +    case 295: stack.push(stack.pop() + stack.pop()); // 96
  5.1923 +    case 296: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Character_toCharsAIIACAI(v0, v1, v2)); } // 184 1 111
  5.1924 +    case 299: stack.push(arg10); // 21 10
  5.1925 +    case 301: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1926 +    case 302: stack.push(stack.pop() + stack.pop()); // 96
  5.1927 +    case 303: arg4 = stack.pop() // 54 4
  5.1928 +    case 305: gt = 409; continue; // 167 0 104
  5.1929 +    case 308: stack.push(arg8); // 21 8
  5.1930 +    case 310: { var v0 = stack.pop(); stack.push(java_lang_Character_toCharsACI(v0)); } // 184 1 109
  5.1931 +    case 313: arg7 = stack.pop() // 58 7
  5.1932 +    case 315: stack.push(arg7); // 25 7
  5.1933 +    case 317: stack.push(stack.pop().length); // 190
  5.1934 +    case 318: arg12 = stack.pop() // 54 12
  5.1935 +    case 320: stack.push(arg12); // 21 12
  5.1936 +    case 322: stack.push(arg10); // 21 10
  5.1937 +    case 324: if (stack.pop() >= stack.pop()) { gt = 355; continue; } // 164 0 31
  5.1938 +    case 327: stack.push(arg3); // 45
  5.1939 +    case 328: stack.push(stack.pop().length); // 190
  5.1940 +    case 329: stack.push(arg12); // 21 12
  5.1941 +    case 331: stack.push(stack.pop() + stack.pop()); // 96
  5.1942 +    case 332: stack.push(arg10); // 21 10
  5.1943 +    case 334: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1944 +    case 335: stack.push(new Array(stack.pop())); // 188 5
  5.1945 +    case 337: arg13 = stack.pop() // 58 13
  5.1946 +    case 339: stack.push(arg3); // 45
  5.1947 +    case 340: stack.push(0); // 3
  5.1948 +    case 341: stack.push(arg13); // 25 13
  5.1949 +    case 343: stack.push(0); // 3
  5.1950 +    case 344: stack.push(arg11); // 21 11
  5.1951 +    case 346: stack.push(arg4); // 21 4
  5.1952 +    case 348: stack.push(stack.pop() + stack.pop()); // 96
  5.1953 +    case 349: { 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
  5.1954 +    case 352: stack.push(arg13); // 25 13
  5.1955 +    case 354: arg3 = stack.pop(); // 78
  5.1956 +    case 355: stack.push(0); // 3
  5.1957 +    case 356: arg13 = stack.pop() // 54 13
  5.1958 +    case 358: stack.push(arg13); // 21 13
  5.1959 +    case 360: stack.push(arg12); // 21 12
  5.1960 +    case 362: if (stack.pop() <= stack.pop()) { gt = 386; continue; } // 162 0 24
  5.1961 +    case 365: stack.push(arg3); // 45
  5.1962 +    case 366: stack.push(arg11); // 21 11
  5.1963 +    case 368: stack.push(arg4); // 21 4
  5.1964 +    case 370: stack.push(stack.pop() + stack.pop()); // 96
  5.1965 +    case 371: stack.push(arg13); // 21 13
  5.1966 +    case 373: stack.push(stack.pop() + stack.pop()); // 96
  5.1967 +    case 374: stack.push(arg7); // 25 7
  5.1968 +    case 376: stack.push(arg13); // 21 13
  5.1969 +    case 378: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.1970 +    case 379: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
  5.1971 +    case 380: arg13++; // 132 13 1
  5.1972 +    case 383: gt = 358; continue; // 167 255 231
  5.1973 +    case 386: stack.push(arg4); // 21 4
  5.1974 +    case 388: stack.push(arg12); // 21 12
  5.1975 +    case 390: stack.push(arg10); // 21 10
  5.1976 +    case 392: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.1977 +    case 393: stack.push(stack.pop() + stack.pop()); // 96
  5.1978 +    case 394: arg4 = stack.pop() // 54 4
  5.1979 +    case 396: gt = 409; continue; // 167 0 13
  5.1980 +    case 399: stack.push(arg3); // 45
  5.1981 +    case 400: stack.push(arg11); // 21 11
  5.1982 +    case 402: stack.push(arg4); // 21 4
  5.1983 +    case 404: stack.push(stack.pop() + stack.pop()); // 96
  5.1984 +    case 405: stack.push(arg8); // 21 8
  5.1985 +    case 407: // number conversion  // 146
  5.1986 +    case 408: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
  5.1987 +    case 409: stack.push(arg11); // 21 11
  5.1988 +    case 411: stack.push(arg10); // 21 10
  5.1989 +    case 413: stack.push(stack.pop() + stack.pop()); // 96
  5.1990 +    case 414: arg11 = stack.pop() // 54 11
  5.1991 +    case 416: gt = 157; continue; // 167 254 253
  5.1992 +    case 419: stack.push(new java_lang_String); // 187 0 200
  5.1993 +    case 422: stack.push(stack[stack.length - 1]); // 89
  5.1994 +    case 423: stack.push(0); // 3
  5.1995 +    case 424: stack.push(arg0); // 42
  5.1996 +    case 425: stack.push(stack.pop().count); // 180 1 97
  5.1997 +    case 428: stack.push(arg4); // 21 4
  5.1998 +    case 430: stack.push(stack.pop() + stack.pop()); // 96
  5.1999 +    case 431: stack.push(arg3); // 45
  5.2000 +    case 432: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_String_consVIIAC(stack.pop(), v0, v1, v2); } // 183 1 137
  5.2001 +    case 435: return stack.pop(); // 176
  5.2002 +  }
  5.2003 +}
  5.2004 +function java_lang_String_toLowerCaseLjava_lang_String(arg0) {
  5.2005 +  var arg1;
  5.2006 +;
  5.2007 +  var stack = new Array(2);
  5.2008 +  var gt = 0;
  5.2009 +  for(;;) switch(gt) {
  5.2010 +    case 0: stack.push(arg0); // 42
  5.2011 +    case 1: { stack.push(java_util_Locale_getDefaultLjava_util_Locale()); } // 184 1 179
  5.2012 +    case 4: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.toLowerCaseLjava_lang_StringLjava_util_Locale(self, v0)); } // 182 1 158
  5.2013 +    case 7: return stack.pop(); // 176
  5.2014 +  }
  5.2015 +}
  5.2016 +function java_lang_String_toUpperCaseLjava_lang_StringLjava_util_Locale(arg0,arg1) {
  5.2017 +  var arg2;
  5.2018 +  var arg3;
  5.2019 +  var arg4;
  5.2020 +  var arg5;
  5.2021 +  var arg6;
  5.2022 +  var arg7;
  5.2023 +  var arg8;
  5.2024 +  var arg9;
  5.2025 +  var arg10;
  5.2026 +  var arg11;
  5.2027 +  var arg12;
  5.2028 +  var arg13;
  5.2029 +  var arg14;
  5.2030 +;
  5.2031 +  var stack = new Array(6);
  5.2032 +  var gt = 0;
  5.2033 +  for(;;) switch(gt) {
  5.2034 +    case 0: stack.push(arg1); // 43
  5.2035 +    case 1: if (stack.pop()) { gt = 12; continue; } // 199 0 11
  5.2036 +    case 4: stack.push(new java_lang_NullPointerException); // 187 0 198
  5.2037 +    case 7: stack.push(stack[stack.length - 1]); // 89
  5.2038 +    case 8: { java_lang_NullPointerException_consV(stack.pop()); } // 183 1 128
  5.2039 +    case 11:  // 191
  5.2040 +    case 12: stack.push(0); // 3
  5.2041 +    case 13: arg2 = stack.pop(); // 61
  5.2042 +    case 14: stack.push(arg2); // 28
  5.2043 +    case 15: stack.push(arg0); // 42
  5.2044 +    case 16: stack.push(stack.pop().count); // 180 1 97
  5.2045 +    case 19: if (stack.pop() <= stack.pop()) { gt = 93; continue; } // 162 0 74
  5.2046 +    case 22: stack.push(arg0); // 42
  5.2047 +    case 23: stack.push(stack.pop().value); // 180 1 100
  5.2048 +    case 26: stack.push(arg0); // 42
  5.2049 +    case 27: stack.push(stack.pop().offset); // 180 1 99
  5.2050 +    case 30: stack.push(arg2); // 28
  5.2051 +    case 31: stack.push(stack.pop() + stack.pop()); // 96
  5.2052 +    case 32: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.2053 +    case 33: arg3 = stack.pop(); // 62
  5.2054 +    case 34: stack.push(arg3); // 29
  5.2055 +    case 35: stack.push(55296); // 18 1
  5.2056 +    case 37: if (stack.pop() > stack.pop()) { gt = 61; continue; } // 161 0 24
  5.2057 +    case 40: stack.push(arg3); // 29
  5.2058 +    case 41: stack.push(56319); // 18 2
  5.2059 +    case 43: if (stack.pop() < stack.pop()) { gt = 61; continue; } // 163 0 18
  5.2060 +    case 46: stack.push(arg0); // 42
  5.2061 +    case 47: stack.push(arg2); // 28
  5.2062 +    case 48: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.codePointAtII(self, v0)); } // 182 1 134
  5.2063 +    case 51: arg3 = stack.pop(); // 62
  5.2064 +    case 52: stack.push(arg3); // 29
  5.2065 +    case 53: { var v0 = stack.pop(); stack.push(java_lang_Character_charCountII(v0)); } // 184 1 106
  5.2066 +    case 56: arg4 = stack.pop() // 54 4
  5.2067 +    case 58: gt = 64; continue; // 167 0 6
  5.2068 +    case 61: stack.push(1); // 4
  5.2069 +    case 62: arg4 = stack.pop() // 54 4
  5.2070 +    case 64: stack.push(arg3); // 29
  5.2071 +    case 65: { var v0 = stack.pop(); stack.push(java_lang_Character_toUpperCaseExII(v0)); } // 184 1 108
  5.2072 +    case 68: arg5 = stack.pop() // 54 5
  5.2073 +    case 70: stack.push(arg5); // 21 5
  5.2074 +    case 72:  // 2
  5.2075 +    case 73: if (stack.pop() == stack.pop()) { gt = 95; continue; } // 159 0 22
  5.2076 +    case 76: stack.push(arg3); // 29
  5.2077 +    case 77: stack.push(arg5); // 21 5
  5.2078 +    case 79: if (stack.pop() == stack.pop()) { gt = 85; continue; } // 159 0 6
  5.2079 +    case 82: gt = 95; continue; // 167 0 13
  5.2080 +    case 85: stack.push(arg2); // 28
  5.2081 +    case 86: stack.push(arg4); // 21 4
  5.2082 +    case 88: stack.push(stack.pop() + stack.pop()); // 96
  5.2083 +    case 89: arg2 = stack.pop(); // 61
  5.2084 +    case 90: gt = 14; continue; // 167 255 180
  5.2085 +    case 93: stack.push(arg0); // 42
  5.2086 +    case 94: return stack.pop(); // 176
  5.2087 +    case 95: stack.push(arg0); // 42
  5.2088 +    case 96: stack.push(stack.pop().count); // 180 1 97
  5.2089 +    case 99: stack.push(new Array(stack.pop())); // 188 5
  5.2090 +    case 101: arg3 = stack.pop(); // 78
  5.2091 +    case 102: stack.push(0); // 3
  5.2092 +    case 103: arg4 = stack.pop() // 54 4
  5.2093 +    case 105: stack.push(arg0); // 42
  5.2094 +    case 106: stack.push(stack.pop().value); // 180 1 100
  5.2095 +    case 109: stack.push(arg0); // 42
  5.2096 +    case 110: stack.push(stack.pop().offset); // 180 1 99
  5.2097 +    case 113: stack.push(arg3); // 45
  5.2098 +    case 114: stack.push(0); // 3
  5.2099 +    case 115: stack.push(arg2); // 28
  5.2100 +    case 116: { 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
  5.2101 +    case 119: stack.push(arg1); // 43
  5.2102 +    case 120: { var self = stack.pop(); stack.push(self.getLanguageLjava_lang_String(self)); } // 182 1 178
  5.2103 +    case 123: arg5 = stack.pop() // 58 5
  5.2104 +    case 125: stack.push(arg5); // 25 5
  5.2105 +    case 127: stack.push("tr"); // 18 11
  5.2106 +    case 129:  // 165
  5.2107 +    case 130:  // 0
  5.2108 +    case 131: stack.push(6405); // 17 25 5
  5.2109 +    case 134: stack.push("az"); // 18 5
  5.2110 +    case 136:  // 165
  5.2111 +    case 137:  // 0
  5.2112 +    case 138: stack.push(1); // 10
  5.2113 +    case 139: stack.push(arg5); // 25 5
  5.2114 +    case 141: stack.push("lt"); // 18 9
  5.2115 +    case 143:  // 166
  5.2116 +    case 144:  // 0
  5.2117 +    case 145: stack.push(4); // 7
  5.2118 +    case 146: stack.push(1); // 4
  5.2119 +    case 147: gt = 151; continue; // 167 0 4
  5.2120 +    case 150: stack.push(0); // 3
  5.2121 +    case 151: arg6 = stack.pop() // 54 6
  5.2122 +    case 153: stack.push(arg2); // 28
  5.2123 +    case 154: arg11 = stack.pop() // 54 11
  5.2124 +    case 156: stack.push(arg11); // 21 11
  5.2125 +    case 158: stack.push(arg0); // 42
  5.2126 +    case 159: stack.push(stack.pop().count); // 180 1 97
  5.2127 +    case 162: if (stack.pop() <= stack.pop()) { gt = 425; continue; } // 162 1 7
  5.2128 +    case 165: stack.push(arg0); // 42
  5.2129 +    case 166: stack.push(stack.pop().value); // 180 1 100
  5.2130 +    case 169: stack.push(arg0); // 42
  5.2131 +    case 170: stack.push(stack.pop().offset); // 180 1 99
  5.2132 +    case 173: stack.push(arg11); // 21 11
  5.2133 +    case 175: stack.push(stack.pop() + stack.pop()); // 96
  5.2134 +    case 176: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.2135 +    case 177: arg9 = stack.pop() // 54 9
  5.2136 +    case 179: stack.push(arg9); // 21 9
  5.2137 +    case 181: // number conversion  // 146
  5.2138 +    case 182: stack.push(55296); // 18 1
  5.2139 +    case 184: if (stack.pop() > stack.pop()) { gt = 213; continue; } // 161 0 29
  5.2140 +    case 187: stack.push(arg9); // 21 9
  5.2141 +    case 189: // number conversion  // 146
  5.2142 +    case 190: stack.push(56319); // 18 2
  5.2143 +    case 192: if (stack.pop() < stack.pop()) { gt = 213; continue; } // 163 0 21
  5.2144 +    case 195: stack.push(arg0); // 42
  5.2145 +    case 196: stack.push(arg11); // 21 11
  5.2146 +    case 198: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.codePointAtII(self, v0)); } // 182 1 134
  5.2147 +    case 201: arg9 = stack.pop() // 54 9
  5.2148 +    case 203: stack.push(arg9); // 21 9
  5.2149 +    case 205: { var v0 = stack.pop(); stack.push(java_lang_Character_charCountII(v0)); } // 184 1 106
  5.2150 +    case 208: arg10 = stack.pop() // 54 10
  5.2151 +    case 210: gt = 216; continue; // 167 0 6
  5.2152 +    case 213: stack.push(1); // 4
  5.2153 +    case 214: arg10 = stack.pop() // 54 10
  5.2154 +    case 216: stack.push(arg6); // 21 6
  5.2155 +    case 218: if (stack.pop() == 0) { gt = 233; continue; } // 153 0 15
  5.2156 +    case 221: stack.push(arg0); // 42
  5.2157 +    case 222: stack.push(arg11); // 21 11
  5.2158 +    case 224: stack.push(arg1); // 43
  5.2159 +    case 225: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_ConditionalSpecialCasing_toUpperCaseExILjava_lang_StringILjava_util_Locale(v0, v1, v2)); } // 184 1 118
  5.2160 +    case 228: arg8 = stack.pop() // 54 8
  5.2161 +    case 230: gt = 240; continue; // 167 0 10
  5.2162 +    case 233: stack.push(arg9); // 21 9
  5.2163 +    case 235: { var v0 = stack.pop(); stack.push(java_lang_Character_toUpperCaseExII(v0)); } // 184 1 108
  5.2164 +    case 238: arg8 = stack.pop() // 54 8
  5.2165 +    case 240: stack.push(arg8); // 21 8
  5.2166 +    case 242:  // 2
  5.2167 +    case 243: if (stack.pop() == stack.pop()) { gt = 253; continue; } // 159 0 10
  5.2168 +    case 246: stack.push(arg8); // 21 8
  5.2169 +    case 248: stack.push(65536); // 18 3
  5.2170 +    case 250: if (stack.pop() > stack.pop()) { gt = 405; continue; } // 161 0 155
  5.2171 +    case 253: stack.push(arg8); // 21 8
  5.2172 +    case 255:  // 2
  5.2173 +    case 256: if (stack.pop() != stack.pop()) { gt = 286; continue; } // 160 0 30
  5.2174 +    case 259: stack.push(arg6); // 21 6
  5.2175 +    case 261: if (stack.pop() == 0) { gt = 276; continue; } // 153 0 15
  5.2176 +    case 264: stack.push(arg0); // 42
  5.2177 +    case 265: stack.push(arg11); // 21 11
  5.2178 +    case 267: stack.push(arg1); // 43
  5.2179 +    case 268: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_ConditionalSpecialCasing_toUpperCaseCharArrayACLjava_lang_StringILjava_util_Locale(v0, v1, v2)); } // 184 1 120
  5.2180 +    case 271: arg7 = stack.pop() // 58 7
  5.2181 +    case 273: gt = 321; continue; // 167 0 48
  5.2182 +    case 276: stack.push(arg9); // 21 9
  5.2183 +    case 278: { var v0 = stack.pop(); stack.push(java_lang_Character_toUpperCaseCharArrayACI(v0)); } // 184 1 110
  5.2184 +    case 281: arg7 = stack.pop() // 58 7
  5.2185 +    case 283: gt = 321; continue; // 167 0 38
  5.2186 +    case 286: stack.push(arg10); // 21 10
  5.2187 +    case 288: stack.push(2); // 5
  5.2188 +    case 289: if (stack.pop() != stack.pop()) { gt = 314; continue; } // 160 0 25
  5.2189 +    case 292: stack.push(arg4); // 21 4
  5.2190 +    case 294: stack.push(arg8); // 21 8
  5.2191 +    case 296: stack.push(arg3); // 45
  5.2192 +    case 297: stack.push(arg11); // 21 11
  5.2193 +    case 299: stack.push(arg4); // 21 4
  5.2194 +    case 301: stack.push(stack.pop() + stack.pop()); // 96
  5.2195 +    case 302: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Character_toCharsAIIACAI(v0, v1, v2)); } // 184 1 111
  5.2196 +    case 305: stack.push(arg10); // 21 10
  5.2197 +    case 307: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.2198 +    case 308: stack.push(stack.pop() + stack.pop()); // 96
  5.2199 +    case 309: arg4 = stack.pop() // 54 4
  5.2200 +    case 311: gt = 415; continue; // 167 0 104
  5.2201 +    case 314: stack.push(arg8); // 21 8
  5.2202 +    case 316: { var v0 = stack.pop(); stack.push(java_lang_Character_toCharsACI(v0)); } // 184 1 109
  5.2203 +    case 319: arg7 = stack.pop() // 58 7
  5.2204 +    case 321: stack.push(arg7); // 25 7
  5.2205 +    case 323: stack.push(stack.pop().length); // 190
  5.2206 +    case 324: arg12 = stack.pop() // 54 12
  5.2207 +    case 326: stack.push(arg12); // 21 12
  5.2208 +    case 328: stack.push(arg10); // 21 10
  5.2209 +    case 330: if (stack.pop() >= stack.pop()) { gt = 361; continue; } // 164 0 31
  5.2210 +    case 333: stack.push(arg3); // 45
  5.2211 +    case 334: stack.push(stack.pop().length); // 190
  5.2212 +    case 335: stack.push(arg12); // 21 12
  5.2213 +    case 337: stack.push(stack.pop() + stack.pop()); // 96
  5.2214 +    case 338: stack.push(arg10); // 21 10
  5.2215 +    case 340: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.2216 +    case 341: stack.push(new Array(stack.pop())); // 188 5
  5.2217 +    case 343: arg13 = stack.pop() // 58 13
  5.2218 +    case 345: stack.push(arg3); // 45
  5.2219 +    case 346: stack.push(0); // 3
  5.2220 +    case 347: stack.push(arg13); // 25 13
  5.2221 +    case 349: stack.push(0); // 3
  5.2222 +    case 350: stack.push(arg11); // 21 11
  5.2223 +    case 352: stack.push(arg4); // 21 4
  5.2224 +    case 354: stack.push(stack.pop() + stack.pop()); // 96
  5.2225 +    case 355: { 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
  5.2226 +    case 358: stack.push(arg13); // 25 13
  5.2227 +    case 360: arg3 = stack.pop(); // 78
  5.2228 +    case 361: stack.push(0); // 3
  5.2229 +    case 362: arg13 = stack.pop() // 54 13
  5.2230 +    case 364: stack.push(arg13); // 21 13
  5.2231 +    case 366: stack.push(arg12); // 21 12
  5.2232 +    case 368: if (stack.pop() <= stack.pop()) { gt = 392; continue; } // 162 0 24
  5.2233 +    case 371: stack.push(arg3); // 45
  5.2234 +    case 372: stack.push(arg11); // 21 11
  5.2235 +    case 374: stack.push(arg4); // 21 4
  5.2236 +    case 376: stack.push(stack.pop() + stack.pop()); // 96
  5.2237 +    case 377: stack.push(arg13); // 21 13
  5.2238 +    case 379: stack.push(stack.pop() + stack.pop()); // 96
  5.2239 +    case 380: stack.push(arg7); // 25 7
  5.2240 +    case 382: stack.push(arg13); // 21 13
  5.2241 +    case 384: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.2242 +    case 385: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
  5.2243 +    case 386: arg13++; // 132 13 1
  5.2244 +    case 389: gt = 364; continue; // 167 255 231
  5.2245 +    case 392: stack.push(arg4); // 21 4
  5.2246 +    case 394: stack.push(arg12); // 21 12
  5.2247 +    case 396: stack.push(arg10); // 21 10
  5.2248 +    case 398: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.2249 +    case 399: stack.push(stack.pop() + stack.pop()); // 96
  5.2250 +    case 400: arg4 = stack.pop() // 54 4
  5.2251 +    case 402: gt = 415; continue; // 167 0 13
  5.2252 +    case 405: stack.push(arg3); // 45
  5.2253 +    case 406: stack.push(arg11); // 21 11
  5.2254 +    case 408: stack.push(arg4); // 21 4
  5.2255 +    case 410: stack.push(stack.pop() + stack.pop()); // 96
  5.2256 +    case 411: stack.push(arg8); // 21 8
  5.2257 +    case 413: // number conversion  // 146
  5.2258 +    case 414: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
  5.2259 +    case 415: stack.push(arg11); // 21 11
  5.2260 +    case 417: stack.push(arg10); // 21 10
  5.2261 +    case 419: stack.push(stack.pop() + stack.pop()); // 96
  5.2262 +    case 420: arg11 = stack.pop() // 54 11
  5.2263 +    case 422: gt = 156; continue; // 167 254 246
  5.2264 +    case 425: stack.push(new java_lang_String); // 187 0 200
  5.2265 +    case 428: stack.push(stack[stack.length - 1]); // 89
  5.2266 +    case 429: stack.push(0); // 3
  5.2267 +    case 430: stack.push(arg0); // 42
  5.2268 +    case 431: stack.push(stack.pop().count); // 180 1 97
  5.2269 +    case 434: stack.push(arg4); // 21 4
  5.2270 +    case 436: stack.push(stack.pop() + stack.pop()); // 96
  5.2271 +    case 437: stack.push(arg3); // 45
  5.2272 +    case 438: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_String_consVIIAC(stack.pop(), v0, v1, v2); } // 183 1 137
  5.2273 +    case 441: return stack.pop(); // 176
  5.2274 +  }
  5.2275 +}
  5.2276 +function java_lang_String_toUpperCaseLjava_lang_String(arg0) {
  5.2277 +  var arg1;
  5.2278 +;
  5.2279 +  var stack = new Array(2);
  5.2280 +  var gt = 0;
  5.2281 +  for(;;) switch(gt) {
  5.2282 +    case 0: stack.push(arg0); // 42
  5.2283 +    case 1: { stack.push(java_util_Locale_getDefaultLjava_util_Locale()); } // 184 1 179
  5.2284 +    case 4: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.toUpperCaseLjava_lang_StringLjava_util_Locale(self, v0)); } // 182 1 159
  5.2285 +    case 7: return stack.pop(); // 176
  5.2286 +  }
  5.2287 +}
  5.2288 +function java_lang_String_trimLjava_lang_String(arg0) {
  5.2289 +  var arg1;
  5.2290 +  var arg2;
  5.2291 +  var arg3;
  5.2292 +  var arg4;
  5.2293 +  var arg5;
  5.2294 +;
  5.2295 +  var stack = new Array(3);
  5.2296 +  var gt = 0;
  5.2297 +  for(;;) switch(gt) {
  5.2298 +    case 0: stack.push(arg0); // 42
  5.2299 +    case 1: stack.push(stack.pop().count); // 180 1 97
  5.2300 +    case 4: arg1 = stack.pop(); // 60
  5.2301 +    case 5: stack.push(0); // 3
  5.2302 +    case 6: arg2 = stack.pop(); // 61
  5.2303 +    case 7: stack.push(arg0); // 42
  5.2304 +    case 8: stack.push(stack.pop().offset); // 180 1 99
  5.2305 +    case 11: arg3 = stack.pop(); // 62
  5.2306 +    case 12: stack.push(arg0); // 42
  5.2307 +    case 13: stack.push(stack.pop().value); // 180 1 100
  5.2308 +    case 16: arg4 = stack.pop() // 58 4
  5.2309 +    case 18: stack.push(arg2); // 28
  5.2310 +    case 19: stack.push(arg1); // 27
  5.2311 +    case 20: if (stack.pop() <= stack.pop()) { gt = 40; continue; } // 162 0 20
  5.2312 +    case 23: stack.push(arg4); // 25 4
  5.2313 +    case 25: stack.push(arg3); // 29
  5.2314 +    case 26: stack.push(arg2); // 28
  5.2315 +    case 27: stack.push(stack.pop() + stack.pop()); // 96
  5.2316 +    case 28: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.2317 +    case 29: stack.push(32); // 16 32
  5.2318 +    case 31: if (stack.pop() < stack.pop()) { gt = 40; continue; } // 163 0 9
  5.2319 +    case 34: arg2++; // 132 2 1
  5.2320 +    case 37: gt = 18; continue; // 167 255 237
  5.2321 +    case 40: stack.push(arg2); // 28
  5.2322 +    case 41: stack.push(arg1); // 27
  5.2323 +    case 42: if (stack.pop() <= stack.pop()) { gt = 64; continue; } // 162 0 22
  5.2324 +    case 45: stack.push(arg4); // 25 4
  5.2325 +    case 47: stack.push(arg3); // 29
  5.2326 +    case 48: stack.push(arg1); // 27
  5.2327 +    case 49: stack.push(stack.pop() + stack.pop()); // 96
  5.2328 +    case 50: stack.push(1); // 4
  5.2329 +    case 51: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  5.2330 +    case 52: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  5.2331 +    case 53: stack.push(32); // 16 32
  5.2332 +    case 55: if (stack.pop() < stack.pop()) { gt = 64; continue; } // 163 0 9
  5.2333 +    case 58: arg1 += 255; // 132 1 255
  5.2334 +    case 61: gt = 40; continue; // 167 255 235
  5.2335 +    case 64: stack.push(arg2); // 28
  5.2336 +    case 65: if (stack.pop() > 0) { gt = 76; continue; } // 157 0 11
  5.2337 +    case 68: stack.push(arg1); // 27
  5.2338 +    case 69: stack.push(arg0); // 42
  5.2339 +    case 70: stack.push(stack.pop().count); // 180 1 97
  5.2340 +    case 73: if (stack.pop() <= stack.pop()) { gt = 85; continue; } // 162 0 12
  5.2341 +    case 76: stack.push(arg0); // 42
  5.2342 +    case 77: stack.push(arg2); // 28
  5.2343 +    case 78: stack.push(arg1); // 27
  5.2344 +    case 79: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.substringLjava_lang_StringII(self, v0, v1)); } // 182 1 147
  5.2345 +    case 82: gt = 86; continue; // 167 0 4
  5.2346 +    case 85: stack.push(arg0); // 42
  5.2347 +    case 86: return stack.pop(); // 176
  5.2348 +  }
  5.2349 +}
  5.2350 +*/
  5.2351 +function java_lang_String_toStringLjava_lang_String(arg0) {
  5.2352 +    return arg0.toString();
  5.2353 +}
  5.2354 +/*
  5.2355 +function java_lang_String_toCharArrayAC(arg0) {
  5.2356 +  var arg1;
  5.2357 +  var arg2;
  5.2358 +;
  5.2359 +  var stack = new Array(5);
  5.2360 +  var gt = 0;
  5.2361 +  for(;;) switch(gt) {
  5.2362 +    case 0: stack.push(arg0); // 42
  5.2363 +    case 1: stack.push(stack.pop().count); // 180 1 97
  5.2364 +    case 4: stack.push(new Array(stack.pop())); // 188 5
  5.2365 +    case 6: arg1 = stack.pop(); // 76
  5.2366 +    case 7: stack.push(arg0); // 42
  5.2367 +    case 8: stack.push(0); // 3
  5.2368 +    case 9: stack.push(arg0); // 42
  5.2369 +    case 10: stack.push(stack.pop().count); // 180 1 97
  5.2370 +    case 13: stack.push(arg1); // 43
  5.2371 +    case 14: stack.push(0); // 3
  5.2372 +    case 15: { var v3 = stack.pop(); var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); self.getCharsVIIACAI(self, v0, v1, v2, v3); } // 182 1 138
  5.2373 +    case 18: stack.push(arg1); // 43
  5.2374 +    case 19: return stack.pop(); // 176
  5.2375 +  }
  5.2376 +}
  5.2377 +function java_lang_String_formatLjava_lang_StringLjava_lang_StringLjava_lang_Object(arg0,arg1) {
  5.2378 +  var stack = new Array();
  5.2379 +  var gt = 0;
  5.2380 +  for(;;) switch(gt) {
  5.2381 +    case 0: stack.push(new java_util_Formatter); // 187 0 211
  5.2382 +    case 3: stack.push(stack[stack.length - 1]); // 89
  5.2383 +    case 4: { java_util_Formatter_consV(stack.pop()); } // 183 1 174
  5.2384 +    case 7: stack.push(arg0); // 42
  5.2385 +    case 8: stack.push(arg1); // 43
  5.2386 +    case 9: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.formatALjava_util_FormatterLjava_lang_StringALjava_lang_Object(self, v0, v1)); } // 182 1 177
  5.2387 +    case 12: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 175
  5.2388 +    case 15: return stack.pop(); // 176
  5.2389 +  }
  5.2390 +}
  5.2391 +function java_lang_String_formatLjava_lang_StringLjava_util_LocaleLjava_lang_StringLjava_lang_Object(arg0,arg1,arg2) {
  5.2392 +  var stack = new Array();
  5.2393 +  var gt = 0;
  5.2394 +  for(;;) switch(gt) {
  5.2395 +    case 0: stack.push(new java_util_Formatter); // 187 0 211
  5.2396 +    case 3: stack.push(stack[stack.length - 1]); // 89
  5.2397 +    case 4: stack.push(arg0); // 42
  5.2398 +    case 5: { var v0 = stack.pop(); java_util_Formatter_consVLjava_util_Locale(stack.pop(), v0); } // 183 1 176
  5.2399 +    case 8: stack.push(arg1); // 43
  5.2400 +    case 9: stack.push(arg2); // 44
  5.2401 +    case 10: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.formatALjava_util_FormatterLjava_lang_StringALjava_lang_Object(self, v0, v1)); } // 182 1 177
  5.2402 +    case 13: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 175
  5.2403 +    case 16: return stack.pop(); // 176
  5.2404 +  }
  5.2405 +}
  5.2406 +function java_lang_String_valueOfLjava_lang_StringLjava_lang_Object(arg0) {
  5.2407 +  var stack = new Array();
  5.2408 +  var gt = 0;
  5.2409 +  for(;;) switch(gt) {
  5.2410 +    case 0: stack.push(arg0); // 42
  5.2411 +    case 1: if (stack.pop()) { gt = 9; continue; } // 199 0 8
  5.2412 +    case 4: stack.push("null"); // 18 10
  5.2413 +    case 6: gt = 13; continue; // 167 0 7
  5.2414 +    case 9: stack.push(arg0); // 42
  5.2415 +    case 10: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 132
  5.2416 +    case 13: return stack.pop(); // 176
  5.2417 +  }
  5.2418 +}
  5.2419 +function java_lang_String_valueOfLjava_lang_StringAC(arg0) {
  5.2420 +  var stack = new Array();
  5.2421 +  var gt = 0;
  5.2422 +  for(;;) switch(gt) {
  5.2423 +    case 0: stack.push(new java_lang_String); // 187 0 200
  5.2424 +    case 3: stack.push(stack[stack.length - 1]); // 89
  5.2425 +    case 4: stack.push(arg0); // 42
  5.2426 +    case 5: { var v0 = stack.pop(); java_lang_String_consVAC(stack.pop(), v0); } // 183 1 142
  5.2427 +    case 8: return stack.pop(); // 176
  5.2428 +  }
  5.2429 +}
  5.2430 +function java_lang_String_valueOfLjava_lang_StringACII(arg0,arg1,arg2) {
  5.2431 +  var stack = new Array();
  5.2432 +  var gt = 0;
  5.2433 +  for(;;) switch(gt) {
  5.2434 +    case 0: stack.push(new java_lang_String); // 187 0 200
  5.2435 +    case 3: stack.push(stack[stack.length - 1]); // 89
  5.2436 +    case 4: stack.push(arg0); // 42
  5.2437 +    case 5: stack.push(arg1); // 27
  5.2438 +    case 6: stack.push(arg2); // 28
  5.2439 +    case 7: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_String_consVACAIAI(stack.pop(), v0, v1, v2); } // 183 1 143
  5.2440 +    case 10: return stack.pop(); // 176
  5.2441 +  }
  5.2442 +}
  5.2443 +function java_lang_String_copyValueOfLjava_lang_StringACII(arg0,arg1,arg2) {
  5.2444 +  var stack = new Array();
  5.2445 +  var gt = 0;
  5.2446 +  for(;;) switch(gt) {
  5.2447 +    case 0: stack.push(new java_lang_String); // 187 0 200
  5.2448 +    case 3: stack.push(stack[stack.length - 1]); // 89
  5.2449 +    case 4: stack.push(arg0); // 42
  5.2450 +    case 5: stack.push(arg1); // 27
  5.2451 +    case 6: stack.push(arg2); // 28
  5.2452 +    case 7: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_String_consVACAIAI(stack.pop(), v0, v1, v2); } // 183 1 143
  5.2453 +    case 10: return stack.pop(); // 176
  5.2454 +  }
  5.2455 +}
  5.2456 +function java_lang_String_copyValueOfLjava_lang_StringAC(arg0) {
  5.2457 +  var stack = new Array();
  5.2458 +  var gt = 0;
  5.2459 +  for(;;) switch(gt) {
  5.2460 +    case 0: stack.push(arg0); // 42
  5.2461 +    case 1: stack.push(0); // 3
  5.2462 +    case 2: stack.push(arg0); // 42
  5.2463 +    case 3: stack.push(stack.pop().length); // 190
  5.2464 +    case 4: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_String_copyValueOfALjava_lang_StringACAIAI(v0, v1, v2)); } // 184 1 155
  5.2465 +    case 7: return stack.pop(); // 176
  5.2466 +  }
  5.2467 +}
  5.2468 +function java_lang_String_valueOfLjava_lang_StringZ(arg0) {
  5.2469 +  var stack = new Array();
  5.2470 +  var gt = 0;
  5.2471 +  for(;;) switch(gt) {
  5.2472 +    case 0: stack.push(arg0); // 26
  5.2473 +    case 1: if (stack.pop() == 0) { gt = 9; continue; } // 153 0 8
  5.2474 +    case 4: stack.push("true"); // 18 12
  5.2475 +    case 6: gt = 11; continue; // 167 0 5
  5.2476 +    case 9: stack.push("false"); // 18 8
  5.2477 +    case 11: return stack.pop(); // 176
  5.2478 +  }
  5.2479 +}
  5.2480 +function java_lang_String_valueOfLjava_lang_StringC(arg0) {
  5.2481 +  var arg1;
  5.2482 +  var stack = new Array();
  5.2483 +  var gt = 0;
  5.2484 +  for(;;) switch(gt) {
  5.2485 +    case 0: stack.push(1); // 4
  5.2486 +    case 1: stack.push(new Array(stack.pop())); // 188 5
  5.2487 +    case 3: stack.push(stack[stack.length - 1]); // 89
  5.2488 +    case 4: stack.push(0); // 3
  5.2489 +    case 5: stack.push(arg0); // 26
  5.2490 +    case 6: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
  5.2491 +    case 7: arg1 = stack.pop(); // 76
  5.2492 +    case 8: stack.push(new java_lang_String); // 187 0 200
  5.2493 +    case 11: stack.push(stack[stack.length - 1]); // 89
  5.2494 +    case 12: stack.push(0); // 3
  5.2495 +    case 13: stack.push(1); // 4
  5.2496 +    case 14: stack.push(arg1); // 43
  5.2497 +    case 15: { var v2 = stack.pop(); var v1 = stack.pop(); var v0 = stack.pop(); java_lang_String_consVIIAC(stack.pop(), v0, v1, v2); } // 183 1 137
  5.2498 +    case 18: return stack.pop(); // 176
  5.2499 +  }
  5.2500 +}
  5.2501 +function java_lang_String_valueOfLjava_lang_StringI(arg0) {
  5.2502 +  var stack = new Array();
  5.2503 +  var gt = 0;
  5.2504 +  for(;;) switch(gt) {
  5.2505 +    case 0: stack.push(arg0); // 26
  5.2506 +    case 1: stack.push(10); // 16 10
  5.2507 +    case 3: { var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Integer_toStringLjava_lang_StringII(v0, v1)); } // 184 1 125
  5.2508 +    case 6: return stack.pop(); // 176
  5.2509 +  }
  5.2510 +}
  5.2511 +function java_lang_String_valueOfLjava_lang_StringJ(arg0) {
  5.2512 +  var arg1;
  5.2513 +  var stack = new Array();
  5.2514 +  var gt = 0;
  5.2515 +  for(;;) switch(gt) {
  5.2516 +    case 0: stack.push(arg0); // 30
  5.2517 +    case 1: stack.push(10); // 16 10
  5.2518 +    case 3: { var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Long_toStringLjava_lang_StringJI(v0, v1)); } // 184 1 126
  5.2519 +    case 6: return stack.pop(); // 176
  5.2520 +  }
  5.2521 +}
  5.2522 +function java_lang_String_valueOfLjava_lang_StringF(arg0) {
  5.2523 +  var stack = new Array();
  5.2524 +  var gt = 0;
  5.2525 +  for(;;) switch(gt) {
  5.2526 +    case 0: stack.push(arg0); // 34
  5.2527 +    case 1: { var v0 = stack.pop(); stack.push(java_lang_Float_toStringLjava_lang_StringF(v0)); } // 184 1 122
  5.2528 +    case 4: return stack.pop(); // 176
  5.2529 +  }
  5.2530 +}
  5.2531 +function java_lang_String_valueOfLjava_lang_StringD(arg0) {
  5.2532 +  var arg1;
  5.2533 +  var stack = new Array();
  5.2534 +  var gt = 0;
  5.2535 +  for(;;) switch(gt) {
  5.2536 +    case 0: stack.push(arg0); // 38
  5.2537 +    case 1: { var v0 = stack.pop(); stack.push(java_lang_Double_toStringLjava_lang_StringD(v0)); } // 184 1 121
  5.2538 +    case 4: return stack.pop(); // 176
  5.2539 +  }
  5.2540 +}
  5.2541 +function java_lang_String_internLjava_lang_String(arg0) {
  5.2542 +  // no code found for null 
  5.2543 +}
  5.2544 +function java_lang_String_compareToILjava_lang_Object(arg0,arg1) {
  5.2545 +  var arg2;
  5.2546 +;
  5.2547 +  var stack = new Array(2);
  5.2548 +  var gt = 0;
  5.2549 +  for(;;) switch(gt) {
  5.2550 +    case 0: stack.push(arg0); // 42
  5.2551 +    case 1: stack.push(arg1); // 43
  5.2552 +    case 2: if(stack[stack.length - 1].$instOf_java_lang_String != 1) throw {}; // 192 0 200
  5.2553 +    case 5: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.compareToILjava_lang_String(self, v0)); } // 182 1 148
  5.2554 +    case 8: return stack.pop(); // 172
  5.2555 +  }
  5.2556 +}
  5.2557 +function java_lang_String_classV() {
  5.2558 +  var stack = new Array();
  5.2559 +  var gt = 0;
  5.2560 +  for(;;) switch(gt) {
  5.2561 +    case 0: stack.push(0); // 3
  5.2562 +    case 1: stack.push(new Array(stack.pop())); // 189 0 183
  5.2563 +    case 4: java_lang_String_serialPersistentFields = stack.pop(); // 179 1 101
  5.2564 +    case 7: stack.push(new java_lang_String$CaseInsensitiveComparator); // 187 0 202
  5.2565 +    case 10: stack.push(stack[stack.length - 1]); // 89
  5.2566 +    case 11:  // 1
  5.2567 +    case 12: { var v0 = stack.pop(); java_lang_String$CaseInsensitiveComparator_consVLjava_lang_String$1(stack.pop(), v0); } // 183 1 160
  5.2568 +    case 15: java_lang_String_CASE_INSENSITIVE_ORDER = stack.pop(); // 179 1 102
  5.2569 +    case 18: return; // 177
  5.2570 +  }
  5.2571 +}
  5.2572 +*/
  5.2573 +var java_lang_String_serialVersionUID = 0;
  5.2574 +var java_lang_String_serialPersistentFields = 0;
  5.2575 +var java_lang_String_CASE_INSENSITIVE_ORDER = 0;
  5.2576 +function java_lang_String() {
  5.2577 +  /** the real value of this 'string' we delegate to */
  5.2578 +  this.r = '';
  5.2579 +  
  5.2580 +  var self = this;
  5.2581 +    /*
  5.2582 +  this.value = 0;
  5.2583 +  this.offset = 0;
  5.2584 +  this.count = 0;
  5.2585 +  this.hash = 0;
  5.2586 +  */
  5.2587 +  this.toString = function() { return self.r; };
  5.2588 +}
  5.2589 +java_lang_String.prototype = new String;
  5.2590 +//java_lang_String_classV();
  5.2591 +
  5.2592 +/* new method for JavaScript String */
  5.2593 +String.prototype.charAtCI = java_lang_String_charAtCI;
  5.2594 +String.prototype.lengthI = java_lang_String_lengthI;
  5.2595 +String.prototype.isEmptyZ = java_lang_String_isEmptyZ;
  5.2596 +String.prototype.getCharsVIIACI = java_lang_String_getCharsVIIACAI;
  5.2597 +String.prototype.toStringLjava_lang_String = java_lang_String_toStringLjava_lang_String;
  5.2598 +String.prototype.$instOf_java_lang_String = true;
  5.2599 +String.prototype.$instOf_java_io_Serializable = true;
  5.2600 +String.prototype.$instOf_java_lang_Comparable = true;
  5.2601 +String.prototype.$instOf_java_lang_CharSequence = true;
  5.2602 +
  5.2603 +/*
  5.2604 +  this.lengthI = java_lang_String_lengthI;
  5.2605 +  this.isEmptyZ = java_lang_String_isEmptyZ;
  5.2606 +  this.charAtCI = java_lang_String_charAtCI;
  5.2607 +  this.codePointAtII = java_lang_String_codePointAtII;
  5.2608 +  this.codePointBeforeII = java_lang_String_codePointBeforeII;
  5.2609 +  this.codePointCountIII = java_lang_String_codePointCountIII;
  5.2610 +  this.offsetByCodePointsIII = java_lang_String_offsetByCodePointsIII;
  5.2611 +  this.getCharsVACI = java_lang_String_getCharsVACI;
  5.2612 +  this.getCharsVIIACI = java_lang_String_getCharsVIIACI;
  5.2613 +  this.getBytesVIIABI = java_lang_String_getBytesVIIABI;
  5.2614 +  this.getBytesABLjava_lang_String = java_lang_String_getBytesABLjava_lang_String;
  5.2615 +  this.getBytesABLjava_nio_charset_Charset = java_lang_String_getBytesABLjava_nio_charset_Charset;
  5.2616 +  this.getBytesAB = java_lang_String_getBytesAB;
  5.2617 +  this.equalsZLjava_lang_Object = java_lang_String_equalsZLjava_lang_Object;
  5.2618 +  this.contentEqualsZLjava_lang_StringBuffer = java_lang_String_contentEqualsZLjava_lang_StringBuffer;
  5.2619 +  this.contentEqualsZLjava_lang_CharSequence = java_lang_String_contentEqualsZLjava_lang_CharSequence;
  5.2620 +  this.equalsIgnoreCaseZLjava_lang_String = java_lang_String_equalsIgnoreCaseZLjava_lang_String;
  5.2621 +  this.compareToILjava_lang_String = java_lang_String_compareToILjava_lang_String;
  5.2622 +  this.compareToIgnoreCaseILjava_lang_String = java_lang_String_compareToIgnoreCaseILjava_lang_String;
  5.2623 +  this.regionMatchesZILjava_lang_StringII = java_lang_String_regionMatchesZILjava_lang_StringII;
  5.2624 +  this.regionMatchesZZILjava_lang_StringII = java_lang_String_regionMatchesZZILjava_lang_StringII;
  5.2625 +  this.startsWithZLjava_lang_StringI = java_lang_String_startsWithZLjava_lang_StringI;
  5.2626 +  this.startsWithZLjava_lang_String = java_lang_String_startsWithZLjava_lang_String;
  5.2627 +  this.endsWithZLjava_lang_String = java_lang_String_endsWithZLjava_lang_String;
  5.2628 +  this.hashCodeI = java_lang_String_hashCodeI;
  5.2629 +  this.indexOfII = java_lang_String_indexOfII;
  5.2630 +  this.indexOfIII = java_lang_String_indexOfIII;
  5.2631 +  this.lastIndexOfII = java_lang_String_lastIndexOfII;
  5.2632 +  this.lastIndexOfIII = java_lang_String_lastIndexOfIII;
  5.2633 +  this.indexOfILjava_lang_String = java_lang_String_indexOfILjava_lang_String;
  5.2634 +  this.indexOfILjava_lang_StringI = java_lang_String_indexOfILjava_lang_StringI;
  5.2635 +  this.lastIndexOfILjava_lang_String = java_lang_String_lastIndexOfILjava_lang_String;
  5.2636 +  this.lastIndexOfILjava_lang_StringI = java_lang_String_lastIndexOfILjava_lang_StringI;
  5.2637 +  this.substringLjava_lang_StringI = java_lang_String_substringLjava_lang_StringI;
  5.2638 +  this.substringLjava_lang_StringII = java_lang_String_substringLjava_lang_StringII;
  5.2639 +  this.subSequenceLjava_lang_CharSequenceII = java_lang_String_subSequenceLjava_lang_CharSequenceII;
  5.2640 +  this.concatLjava_lang_StringLjava_lang_String = java_lang_String_concatLjava_lang_StringLjava_lang_String;
  5.2641 +  this.replaceLjava_lang_StringCC = java_lang_String_replaceLjava_lang_StringCC;
  5.2642 +  this.matchesZLjava_lang_String = java_lang_String_matchesZLjava_lang_String;
  5.2643 +  this.containsZLjava_lang_CharSequence = java_lang_String_containsZLjava_lang_CharSequence;
  5.2644 +  this.replaceFirstLjava_lang_StringLjava_lang_StringLjava_lang_String = java_lang_String_replaceFirstLjava_lang_StringLjava_lang_StringLjava_lang_String;
  5.2645 +  this.replaceAllLjava_lang_StringLjava_lang_StringLjava_lang_String = java_lang_String_replaceAllLjava_lang_StringLjava_lang_StringLjava_lang_String;
  5.2646 +  this.replaceLjava_lang_StringLjava_lang_CharSequenceLjava_lang_CharSequence = java_lang_String_replaceLjava_lang_StringLjava_lang_CharSequenceLjava_lang_CharSequence;
  5.2647 +  this.splitALjava_lang_StringLjava_lang_StringI = java_lang_String_splitALjava_lang_StringLjava_lang_StringI;
  5.2648 +  this.splitALjava_lang_StringLjava_lang_String = java_lang_String_splitALjava_lang_StringLjava_lang_String;
  5.2649 +  this.toLowerCaseLjava_lang_StringLjava_util_Locale = java_lang_String_toLowerCaseLjava_lang_StringLjava_util_Locale;
  5.2650 +  this.toLowerCaseLjava_lang_String = java_lang_String_toLowerCaseLjava_lang_String;
  5.2651 +  this.toUpperCaseLjava_lang_StringLjava_util_Locale = java_lang_String_toUpperCaseLjava_lang_StringLjava_util_Locale;
  5.2652 +  this.toUpperCaseLjava_lang_String = java_lang_String_toUpperCaseLjava_lang_String;
  5.2653 +  this.trimLjava_lang_String = java_lang_String_trimLjava_lang_String;
  5.2654 +  this.toStringLjava_lang_String = java_lang_String_toStringLjava_lang_String;
  5.2655 +  this.toCharArrayAC = java_lang_String_toCharArrayAC;
  5.2656 +  this.internLjava_lang_String = java_lang_String_internLjava_lang_String;
  5.2657 +  this.compareToILjava_lang_Object = java_lang_String_compareToILjava_lang_Object;
  5.2658 + */
  5.2659 +
  5.2660 +
  5.2661 +
     6.1 --- a/vm/pom.xml	Wed Oct 03 08:19:44 2012 -0700
     6.2 +++ b/vm/pom.xml	Mon Oct 08 17:10:27 2012 -0700
     6.3 @@ -92,5 +92,11 @@
     6.4        <version>1.0-SNAPSHOT</version>
     6.5        <type>jar</type>
     6.6      </dependency>
     6.7 +    <dependency>
     6.8 +      <groupId>org.apidesign.bck2brwsr</groupId>
     6.9 +      <artifactId>emul</artifactId>
    6.10 +      <version>1.0-SNAPSHOT</version>
    6.11 +      <scope>test</scope>
    6.12 +    </dependency>
    6.13    </dependencies>
    6.14  </project>
     7.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Wed Oct 03 08:19:44 2012 -0700
     7.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Mon Oct 08 17:10:27 2012 -0700
     7.3 @@ -85,7 +85,7 @@
     7.4              String res = ((PrimitiveElementValue)annVal).getValue().getValue().toString();
     7.5              scripts.add(res);
     7.6              final AnnotationComponent process = a.getComponent("processByteCode");
     7.7 -            if (process != null && "false".equals(process.getValue().toString())) {
     7.8 +            if (process != null && "const=0".equals(process.getValue().toString())) {
     7.9                  return;
    7.10              }
    7.11          }
    7.12 @@ -333,6 +333,24 @@
    7.13                  case bc_lxor:
    7.14                      out.append("stack.push(stack.pop() ^ stack.pop());");
    7.15                      break;
    7.16 +                case bc_ineg:
    7.17 +                case bc_lneg:
    7.18 +                case bc_fneg:
    7.19 +                case bc_dneg:
    7.20 +                    out.append("stack.push(- stack.pop());");
    7.21 +                    break;
    7.22 +                case bc_ishl:
    7.23 +                case bc_lshl:
    7.24 +                    out.append("{ var v = stack.pop(); stack.push(stack.pop() << v); }");
    7.25 +                    break;
    7.26 +                case bc_ishr:
    7.27 +                case bc_lshr:
    7.28 +                    out.append("{ var v = stack.pop(); stack.push(stack.pop() >> v); }");
    7.29 +                    break;
    7.30 +                case bc_iushr:
    7.31 +                case bc_lushr:
    7.32 +                    out.append("{ var v = stack.pop(); stack.push(stack.pop() >>> v); }");
    7.33 +                    break;
    7.34                  case bc_iinc: {
    7.35                      final int varIndx = (byteCodes[++i] + 256) % 256;
    7.36                      final int incrBy = (byteCodes[++i] + 256) % 256;
    7.37 @@ -569,6 +587,11 @@
    7.38                      out.append("{ var indx = stack.pop(); stack.push(stack.pop()[indx]); }");
    7.39                      break;
    7.40                  }
    7.41 +                case bc_pop2:
    7.42 +                    out.append("stack.pop();");
    7.43 +                case bc_pop:
    7.44 +                    out.append("stack.pop();");
    7.45 +                    break;
    7.46                  case bc_dup:
    7.47                      out.append("stack.push(stack[stack.length - 1]);");
    7.48                      break;
    7.49 @@ -701,6 +724,7 @@
    7.50                              sig.insert(firstPos, 'A');
    7.51                          }
    7.52                      }
    7.53 +                    array = false;
    7.54                      continue;
    7.55                  case 'V': 
    7.56                      assert !count;
    7.57 @@ -863,7 +887,9 @@
    7.58  
    7.59      private String encodeConstant(CPEntry entry) {
    7.60          final String v;
    7.61 -        if (entry instanceof CPStringInfo) {
    7.62 +        if (entry instanceof CPClassInfo) {
    7.63 +            v = "new java_lang_Class";
    7.64 +        } else if (entry instanceof CPStringInfo) {
    7.65              v = "\"" + entry.getValue().toString().replace("\"", "\\\"") + "\"";
    7.66          } else {
    7.67              v = entry.getValue().toString();
     8.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java	Wed Oct 03 08:19:44 2012 -0700
     8.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java	Mon Oct 08 17:10:27 2012 -0700
     8.3 @@ -5,7 +5,9 @@
     8.4  import java.io.IOException;
     8.5  import java.io.InputStream;
     8.6  import java.io.Writer;
     8.7 +import java.net.URL;
     8.8  import java.util.Arrays;
     8.9 +import java.util.Enumeration;
    8.10  import java.util.HashSet;
    8.11  import java.util.LinkedList;
    8.12  import java.util.List;
    8.13 @@ -43,17 +45,23 @@
    8.14              }
    8.15              String name = toProcess.getFirst();
    8.16              processed.add(name);
    8.17 -            if (name.startsWith("sun/")) {
    8.18 -                continue;
    8.19 -            }
    8.20 -            if (name.startsWith("java/") 
    8.21 +            if (name.startsWith("java/")
    8.22                  && !name.equals("java/lang/Object")
    8.23 +                && !name.equals("java/lang/Class")
    8.24 +                && !name.equals("java/lang/Number")
    8.25 +                && !name.equals("java/lang/Integer")
    8.26 +                && !name.equals("java/lang/Throwable")
    8.27 +                && !name.equals("java/lang/Exception")
    8.28 +                && !name.equals("java/lang/RuntimeException")
    8.29 +                && !name.equals("java/lang/UnsupportedOperationException")
    8.30 +                && !name.equals("java/lang/String")
    8.31 +                && !name.equals("java/lang/String$CaseInsensitiveComparator")
    8.32                  && !name.equals("java/lang/StringBuilder")
    8.33                  && !name.equals("java/lang/AbstractStringBuilder")
    8.34              ) {
    8.35                  continue;
    8.36 -            }
    8.37 -            InputStream is = GenJS.class.getClassLoader().getResourceAsStream(name + ".class");
    8.38 +            }            
    8.39 +            InputStream is = loadClass(name);
    8.40              if (is == null) {
    8.41                  throw new IOException("Can't find class " + name); 
    8.42              }
    8.43 @@ -132,5 +140,17 @@
    8.44              emul.close();
    8.45          }
    8.46      }
    8.47 +
    8.48 +    private static InputStream loadClass(String name) throws IOException {
    8.49 +        Enumeration<URL> en = ClassLoader.getSystemClassLoader().getResources(name + ".class");
    8.50 +        URL u = null;
    8.51 +        while (en.hasMoreElements()) {
    8.52 +            u = en.nextElement();
    8.53 +        }
    8.54 +        if (u == null) {
    8.55 +            throw new IOException("Can't find " + name);
    8.56 +        }
    8.57 +        return u.openStream();
    8.58 +    }
    8.59      
    8.60  }
     9.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethod.java	Wed Oct 03 08:19:44 2012 -0700
     9.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethod.java	Mon Oct 08 17:10:27 2012 -0700
     9.3 @@ -61,6 +61,16 @@
     9.4      public static long orOrAnd(boolean doOr, int a, int b) {
     9.5          return doOr ? a | b : a & b;
     9.6      }
     9.7 +    public static int shiftLeft(int what, int much) {
     9.8 +        return what << much;
     9.9 +    }
    9.10 +    public static int shiftArithmRight(int what, int much, boolean signed) {
    9.11 +        if (signed) {
    9.12 +            return what >> much;
    9.13 +        } else {
    9.14 +            return what >>> much;
    9.15 +        }
    9.16 +    }
    9.17      public static long factRec(int n) {
    9.18          if (n <= 1) {
    9.19              return 1;
    10.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java	Wed Oct 03 08:19:44 2012 -0700
    10.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java	Mon Oct 08 17:10:27 2012 -0700
    10.3 @@ -143,6 +143,47 @@
    10.4          );
    10.5      }
    10.6      
    10.7 +    @Test public void shiftLeftInJava() throws Exception {
    10.8 +        int res = StaticMethod.shiftLeft(1, 8);
    10.9 +        assertEquals(res, 256);
   10.10 +    }
   10.11 +
   10.12 +    @Test public void shiftLeftInJS() throws Exception {
   10.13 +        assertExec(
   10.14 +            "Setting 9th bit",
   10.15 +            "org_apidesign_vm4brwsr_StaticMethod_shiftLeftIII",
   10.16 +            Double.valueOf(256),
   10.17 +            1, 8
   10.18 +        );
   10.19 +    }
   10.20 +
   10.21 +    @Test public void shiftRightInJava() throws Exception {
   10.22 +        int res = StaticMethod.shiftArithmRight(-8, 3, true);
   10.23 +        assertEquals(res, -1);
   10.24 +    }
   10.25 +
   10.26 +    @Test public void shiftRightInJS() throws Exception {
   10.27 +        assertExec(
   10.28 +            "Get -1",
   10.29 +            "org_apidesign_vm4brwsr_StaticMethod_shiftArithmRightIIIZ",
   10.30 +            Double.valueOf(-1),
   10.31 +            -8, 3, true
   10.32 +        );
   10.33 +    }
   10.34 +    @Test public void unsignedShiftRightInJava() throws Exception {
   10.35 +        int res = StaticMethod.shiftArithmRight(8, 3, false);
   10.36 +        assertEquals(res, 1);
   10.37 +    }
   10.38 +
   10.39 +    @Test public void unsignedShiftRightInJS() throws Exception {
   10.40 +        assertExec(
   10.41 +            "Get -1",
   10.42 +            "org_apidesign_vm4brwsr_StaticMethod_shiftArithmRightIIIZ",
   10.43 +            Double.valueOf(1),
   10.44 +            8, 3, false
   10.45 +        );
   10.46 +    }
   10.47 +    
   10.48      private static void assertExec(String msg, String methodName, Object expRes, Object... args) throws Exception {
   10.49          StringBuilder sb = new StringBuilder();
   10.50          Invocable i = compileClass(sb, "org/apidesign/vm4brwsr/StaticMethod");
    11.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java	Wed Oct 03 08:19:44 2012 -0700
    11.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java	Mon Oct 08 17:10:27 2012 -0700
    11.3 @@ -1,12 +1,9 @@
    11.4  package org.apidesign.vm4brwsr;
    11.5  
    11.6 -import org.apidesign.bck2brwsr.core.ExtraJavaScript;
    11.7 -
    11.8  /**
    11.9   *
   11.10   * @author Jaroslav Tulach <jtulach@netbeans.org>
   11.11   */
   11.12 -@ExtraJavaScript(resource="/org/apidesign/vm4brwsr/emulation/java_lang_String.js")
   11.13  public class StringSample {
   11.14      public static final String HELLO = "Hello World!";
   11.15      private static int counter;
   11.16 @@ -31,7 +28,7 @@
   11.17          for (int i = 0; i < howMuch; i++) {
   11.18              ss = new StringSample();
   11.19          }
   11.20 -        return ss.toString();
   11.21 +        return ss.toString().toString();
   11.22      }
   11.23  
   11.24      @Override
    12.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java	Wed Oct 03 08:19:44 2012 -0700
    12.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java	Mon Oct 08 17:10:27 2012 -0700
    12.3 @@ -26,7 +26,7 @@
    12.4          );
    12.5      }
    12.6  
    12.7 -    @Test public void toStringConcatenation() throws Exception {
    12.8 +    @Test(timeOut=10000) public void toStringConcatenation() throws Exception {
    12.9          assertExec(
   12.10              "Five executions should generate 5Hello World!",
   12.11              "org_apidesign_vm4brwsr_StringSample_toStringTestLjava_lang_StringI",