Rewriting String to use more of @JavaScriptBody & co.
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 02 Dec 2012 23:10:51 +0100
changeset 2404e88a33d7972
parent 239 8ceee38f5840
child 241 2177242dff06
Rewriting String to use more of @JavaScriptBody & co.
core/src/main/java/org/apidesign/bck2brwsr/core/JavaScriptOnly.java
core/src/main/java/org/apidesign/bck2brwsr/core/NoJavaScript.java
emul/src/main/java/java/lang/String.java
emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js
javap/src/main/java/org/apidesign/javap/AnnotationParser.java
javap/src/main/java/org/apidesign/javap/FieldData.java
vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/core/src/main/java/org/apidesign/bck2brwsr/core/JavaScriptOnly.java	Sun Dec 02 23:10:51 2012 +0100
     1.3 @@ -0,0 +1,37 @@
     1.4 +/**
     1.5 + * Back 2 Browser Bytecode Translator
     1.6 + * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     1.7 + *
     1.8 + * This program is free software: you can redistribute it and/or modify
     1.9 + * it under the terms of the GNU General Public License as published by
    1.10 + * the Free Software Foundation, version 2 of the License.
    1.11 + *
    1.12 + * This program is distributed in the hope that it will be useful,
    1.13 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    1.14 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    1.15 + * GNU General Public License for more details.
    1.16 + *
    1.17 + * You should have received a copy of the GNU General Public License
    1.18 + * along with this program. Look for COPYING file in the top folder.
    1.19 + * If not, see http://opensource.org/licenses/GPL-2.0.
    1.20 + */
    1.21 +package org.apidesign.bck2brwsr.core;
    1.22 +
    1.23 +import java.lang.annotation.ElementType;
    1.24 +import java.lang.annotation.Retention;
    1.25 +import java.lang.annotation.RetentionPolicy;
    1.26 +import java.lang.annotation.Target;
    1.27 +
    1.28 +/** Don't include given field or method in generated JavaScript. Rather
    1.29 + * generate completely independent JavaScript code.
    1.30 + *
    1.31 + * @author Jaroslav Tulach <jtulach@netbeans.org>
    1.32 + */
    1.33 +@Retention(RetentionPolicy.CLASS)
    1.34 +@Target({ ElementType.METHOD, ElementType.FIELD })
    1.35 +public @interface JavaScriptOnly {
    1.36 +    /** name of the variable to assign given value to */
    1.37 +    String name() default "";
    1.38 +    /** value to assign to given field */
    1.39 +    String value() default "";
    1.40 +}
     2.1 --- a/core/src/main/java/org/apidesign/bck2brwsr/core/NoJavaScript.java	Sun Dec 02 21:00:12 2012 +0100
     2.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.3 @@ -1,33 +0,0 @@
     2.4 -/**
     2.5 - * Back 2 Browser Bytecode Translator
     2.6 - * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     2.7 - *
     2.8 - * This program is free software: you can redistribute it and/or modify
     2.9 - * it under the terms of the GNU General Public License as published by
    2.10 - * the Free Software Foundation, version 2 of the License.
    2.11 - *
    2.12 - * This program is distributed in the hope that it will be useful,
    2.13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    2.14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    2.15 - * GNU General Public License for more details.
    2.16 - *
    2.17 - * You should have received a copy of the GNU General Public License
    2.18 - * along with this program. Look for COPYING file in the top folder.
    2.19 - * If not, see http://opensource.org/licenses/GPL-2.0.
    2.20 - */
    2.21 -package org.apidesign.bck2brwsr.core;
    2.22 -
    2.23 -import java.lang.annotation.ElementType;
    2.24 -import java.lang.annotation.Retention;
    2.25 -import java.lang.annotation.RetentionPolicy;
    2.26 -import java.lang.annotation.Target;
    2.27 -
    2.28 -/** Don't include given field or method in generated JavaScript.
    2.29 - *
    2.30 - * @author Jaroslav Tulach <jtulach@netbeans.org>
    2.31 - */
    2.32 -@Retention(RetentionPolicy.CLASS)
    2.33 -@Target({ ElementType.METHOD, ElementType.FIELD })
    2.34 -public @interface NoJavaScript {
    2.35 -    
    2.36 -}
     3.1 --- a/emul/src/main/java/java/lang/String.java	Sun Dec 02 21:00:12 2012 +0100
     3.2 +++ b/emul/src/main/java/java/lang/String.java	Sun Dec 02 23:10:51 2012 +0100
     3.3 @@ -25,8 +25,11 @@
     3.4  
     3.5  package java.lang;
     3.6  
     3.7 +import java.util.Comparator;
     3.8  import org.apidesign.bck2brwsr.core.ExtraJavaScript;
     3.9 -import java.util.Comparator;
    3.10 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
    3.11 +import org.apidesign.bck2brwsr.core.JavaScriptOnly;
    3.12 +import org.apidesign.bck2brwsr.core.JavaScriptPrototype;
    3.13  
    3.14  /**
    3.15   * The <code>String</code> class represents character strings. All
    3.16 @@ -99,25 +102,41 @@
    3.17  
    3.18  @ExtraJavaScript(
    3.19      resource="/org/apidesign/vm4brwsr/emul/java_lang_String.js",
    3.20 -    processByteCode=false
    3.21 +    processByteCode=true
    3.22  )
    3.23 +@JavaScriptPrototype(container = "String.prototype", prototype = "new String")
    3.24  public final class String
    3.25      implements java.io.Serializable, Comparable<String>, CharSequence
    3.26  {
    3.27 +    @JavaScriptOnly
    3.28      /** The value is used for character storage. */
    3.29      private final char value[];
    3.30  
    3.31 +    @JavaScriptOnly
    3.32      /** The offset is the first index of the storage that is used. */
    3.33      private final int offset;
    3.34  
    3.35 +    @JavaScriptOnly
    3.36      /** The count is the number of characters in the String. */
    3.37      private final int count;
    3.38  
    3.39 +    @JavaScriptOnly
    3.40      /** Cache the hash code for the string */
    3.41      private int hash; // Default to 0
    3.42 +    
    3.43 +    /** real string to delegate to */
    3.44 +    private Object r;
    3.45  
    3.46      /** use serialVersionUID from JDK 1.0.2 for interoperability */
    3.47      private static final long serialVersionUID = -6849794470754667710L;
    3.48 +    
    3.49 +    @JavaScriptOnly(name="toString", value="function() { return this.fld_r; }")
    3.50 +    private static void jsToString() {
    3.51 +    }
    3.52 +    
    3.53 +    @JavaScriptOnly(name="valueOf", value="function() { return this.toString().valueOf(); }")
    3.54 +    private static void jsValudOf() {
    3.55 +    }
    3.56  
    3.57      /**
    3.58       * Class String is special cased within the Serialization Stream Protocol.
    3.59 @@ -139,6 +158,7 @@
    3.60       * an empty character sequence.  Note that use of this constructor is
    3.61       * unnecessary since Strings are immutable.
    3.62       */
    3.63 +    @JavaScriptBody(args = "self", body = "self.fld_r = '';")
    3.64      public String() {
    3.65          this.offset = 0;
    3.66          this.count = 0;
    3.67 @@ -155,6 +175,7 @@
    3.68       * @param  original
    3.69       *         A {@code String}
    3.70       */
    3.71 +    @JavaScriptBody(args = {"self", "original"}, body = "self.fld_r = original.toString();")
    3.72      public String(String original) {
    3.73          int size = original.count;
    3.74          char[] originalValue = original.value;
    3.75 @@ -184,6 +205,12 @@
    3.76       * @param  value
    3.77       *         The initial value of the string
    3.78       */
    3.79 +    @JavaScriptBody(args = { "self", "charArr" }, body=
    3.80 +        "for (var i = 0; i < charArr.length; i++) {\n"
    3.81 +      + "  if (typeof charArr[i] === 'number') charArr[i] = String.fromCharCode(charArr[i]);\n"
    3.82 +      + "}\n"
    3.83 +      + "self.fld_r = charArr.join('');\n"
    3.84 +    )
    3.85      public String(char value[]) {
    3.86          int size = value.length;
    3.87          this.offset = 0;
    3.88 @@ -212,6 +239,13 @@
    3.89       *          If the {@code offset} and {@code count} arguments index
    3.90       *          characters outside the bounds of the {@code value} array
    3.91       */
    3.92 +    @JavaScriptBody(args = { "self", "charArr", "off", "cnt" }, body =
    3.93 +        "var up = off + cnt;\n" +
    3.94 +        "for (var i = off; i < up; i++) {\n" +
    3.95 +        "  if (typeof charArr[i] === 'number') charArr[i] = String.fromCharCode(charArr[i]);\n" +
    3.96 +        "}\n" +
    3.97 +        "self.fld_r = charArr.slice(off, up).join(\"\");\n"
    3.98 +    )
    3.99      public String(char value[], int offset, int count) {
   3.100          if (offset < 0) {
   3.101              throw new StringIndexOutOfBoundsException(offset);
   3.102 @@ -613,10 +647,10 @@
   3.103       *         A {@code StringBuffer}
   3.104       */
   3.105      public String(StringBuffer buffer) {
   3.106 -        String result = buffer.toString();
   3.107 -        this.value = result.value;
   3.108 -        this.count = result.count;
   3.109 -        this.offset = result.offset;
   3.110 +        r = buffer.toString();
   3.111 +        this.value = null;
   3.112 +        this.count = 0;
   3.113 +        this.offset = -1;
   3.114      }
   3.115  
   3.116      /**
   3.117 @@ -635,10 +669,10 @@
   3.118       * @since  1.5
   3.119       */
   3.120      public String(StringBuilder builder) {
   3.121 -        String result = builder.toString();
   3.122 -        this.value = result.value;
   3.123 -        this.count = result.count;
   3.124 -        this.offset = result.offset;
   3.125 +        r = builder.toString();
   3.126 +        this.value = null;
   3.127 +        this.count = 0;
   3.128 +        this.offset = -1;
   3.129      }
   3.130  
   3.131      /**
   3.132 @@ -649,6 +683,7 @@
   3.133       * @return  the length of the sequence of characters represented by this
   3.134       *          object.
   3.135       */
   3.136 +    @JavaScriptBody(args = "self", body = "return self.toString().length;")
   3.137      public int length() {
   3.138          return count;
   3.139      }
   3.140 @@ -661,6 +696,7 @@
   3.141       *
   3.142       * @since 1.6
   3.143       */
   3.144 +    @JavaScriptBody(args = "self", body="return self.toString().length === 0;")
   3.145      public boolean isEmpty() {
   3.146          return count == 0;
   3.147      }
   3.148 @@ -683,6 +719,9 @@
   3.149       *             argument is negative or not less than the length of this
   3.150       *             string.
   3.151       */
   3.152 +    @JavaScriptBody(args = { "self", "index" }, 
   3.153 +        body = "return self.toString().charCodeAt(index);"
   3.154 +    )
   3.155      public char charAt(int index) {
   3.156          if ((index < 0) || (index >= count)) {
   3.157              throw new StringIndexOutOfBoundsException(index);
   3.158 @@ -809,6 +848,12 @@
   3.159       * Copy characters from this string into dst starting at dstBegin.
   3.160       * This method doesn't perform any range checking.
   3.161       */
   3.162 +    @JavaScriptBody(args = { "self", "arr", "to" }, body = 
   3.163 +        "var s = self.toString();\n" +
   3.164 +        "for (var i = 0; i < s.length; i++) {\n" +
   3.165 +        "   arr[to++] = s[i];\n" +
   3.166 +        "}"
   3.167 +    )
   3.168      void getChars(char dst[], int dstBegin) {
   3.169          AbstractStringBuilder.arraycopy(value, offset, dst, dstBegin, count);
   3.170      }
   3.171 @@ -843,6 +888,12 @@
   3.172       *            <li><code>dstBegin+(srcEnd-srcBegin)</code> is larger than
   3.173       *                <code>dst.length</code></ul>
   3.174       */
   3.175 +    @JavaScriptBody(args = { "self", "beg", "end", "arr", "dst" }, body=
   3.176 +        "var s = self.toString();\n" +
   3.177 +        "while (beg < end) {\n" +
   3.178 +        "  arr[dst++] = s[beg++];\n" +
   3.179 +        "}\n"
   3.180 +    )
   3.181      public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) {
   3.182          if (srcBegin < 0) {
   3.183              throw new StringIndexOutOfBoundsException(srcBegin);
   3.184 @@ -1010,6 +1061,10 @@
   3.185       * @see  #compareTo(String)
   3.186       * @see  #equalsIgnoreCase(String)
   3.187       */
   3.188 +    @JavaScriptBody(args = { "self", "obj" }, body = 
   3.189 +        "return obj.$instOf_java_lang_String && "
   3.190 +        + "self.toString() === obj.toString();"
   3.191 +    )
   3.192      public boolean equals(Object anObject) {
   3.193          if (this == anObject) {
   3.194              return true;
   3.195 @@ -1428,6 +1483,10 @@
   3.196       *          this.substring(toffset).startsWith(prefix)
   3.197       *          </pre>
   3.198       */
   3.199 +    @JavaScriptBody(args = { "self", "find", "from" }, body=
   3.200 +        "find = find.toString();\n" +
   3.201 +        "return self.toString().substring(from, find.length) === find;\n"
   3.202 +    )
   3.203      public boolean startsWith(String prefix, int toffset) {
   3.204          char ta[] = value;
   3.205          int to = offset + toffset;
   3.206 @@ -1491,6 +1550,15 @@
   3.207       *
   3.208       * @return  a hash code value for this object.
   3.209       */
   3.210 +    @JavaScriptBody(args = "self", body = 
   3.211 +        "var h = 0;\n" +
   3.212 +        "var s = self.toString();\n" +
   3.213 +        "for (var i = 0; i < s.length; i++) {\n" +
   3.214 +        "  var high = (h >> 16) & 0xffff, low = h & 0xffff;\n" +
   3.215 +        "  h = (((((31 * high) & 0xffff) << 16) >>> 0) + (31 * low) + s.charCodeAt(i)) & 0xffffffff;\n" +
   3.216 +        "}\n" +
   3.217 +        "return h;\n"
   3.218 +    )
   3.219      public int hashCode() {
   3.220          int h = hash;
   3.221          if (h == 0 && count > 0) {
   3.222 @@ -1573,6 +1641,10 @@
   3.223       *          than or equal to <code>fromIndex</code>, or <code>-1</code>
   3.224       *          if the character does not occur.
   3.225       */
   3.226 +    @JavaScriptBody(args = { "self", "ch", "from" }, body = 
   3.227 +        "if (typeof ch === 'number') ch = String.fromCharCode(ch);\n" +
   3.228 +        "return self.toString().indexOf(ch, from);\n"
   3.229 +    )
   3.230      public int indexOf(int ch, int fromIndex) {
   3.231          if (fromIndex < 0) {
   3.232              fromIndex = 0;
   3.233 @@ -1749,6 +1821,9 @@
   3.234       *          starting at the specified index,
   3.235       *          or {@code -1} if there is no such occurrence.
   3.236       */
   3.237 +    @JavaScriptBody(args = { "self", "str", "fromIndex" }, body =
   3.238 +        "return self.toString().indexOf(str.toString(), fromIndex) >= 0;"
   3.239 +    )
   3.240      public int indexOf(String str, int fromIndex) {
   3.241          return indexOf(value, offset, count,
   3.242                         str.value, str.offset, str.count, fromIndex);
   3.243 @@ -1947,6 +2022,9 @@
   3.244       *             <code>beginIndex</code> is larger than
   3.245       *             <code>endIndex</code>.
   3.246       */
   3.247 +    @JavaScriptBody(args = { "self", "beginIndex", "endIndex" }, body = 
   3.248 +        "return self.toString().substring(beginIndex, endIndex);"
   3.249 +    )
   3.250      public String substring(int beginIndex, int endIndex) {
   3.251          if (beginIndex < 0) {
   3.252              throw new StringIndexOutOfBoundsException(beginIndex);
   3.253 @@ -2053,6 +2131,18 @@
   3.254       * @return  a string derived from this string by replacing every
   3.255       *          occurrence of <code>oldChar</code> with <code>newChar</code>.
   3.256       */
   3.257 +    @JavaScriptBody(args = { "self", "arg1", "arg2" }, body =
   3.258 +        "if (typeof arg1 === 'number') arg1 = String.fromCharCode(arg1);\n" +
   3.259 +        "if (typeof arg2 === 'number') arg2 = String.fromCharCode(arg2);\n" +
   3.260 +        "var s = self.toString();\n" +
   3.261 +        "for (;;) {\n" +
   3.262 +        "  var ret = s.replace(arg1, arg2);\n" +
   3.263 +        "  if (ret === s) {\n" +
   3.264 +        "    return ret;\n" +
   3.265 +        "  }\n" +
   3.266 +        "  s = ret;\n" +
   3.267 +        "}"
   3.268 +    )
   3.269      public String replace(char oldChar, char newChar) {
   3.270          if (oldChar != newChar) {
   3.271              int len = count;
   3.272 @@ -2739,6 +2829,7 @@
   3.273       *
   3.274       * @return  the string itself.
   3.275       */
   3.276 +    @JavaScriptBody(args = "self", body = "return self.toString();")
   3.277      public String toString() {
   3.278          return this;
   3.279      }
   3.280 @@ -2750,6 +2841,7 @@
   3.281       *          of this string and whose contents are initialized to contain
   3.282       *          the character sequence represented by this string.
   3.283       */
   3.284 +    @JavaScriptBody(args = "self", body = "return self.toString().split('');")
   3.285      public char[] toCharArray() {
   3.286          char result[] = new char[count];
   3.287          getChars(0, count, result, 0);
     4.1 --- a/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js	Sun Dec 02 21:00:12 2012 +0100
     4.2 +++ b/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js	Sun Dec 02 23:10:51 2012 +0100
     4.3 @@ -1,2345 +1,2 @@
     4.4 -/**
     4.5 - * Back 2 Browser Bytecode Translator
     4.6 - * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     4.7 - *
     4.8 - * This program is free software: you can redistribute it and/or modify
     4.9 - * it under the terms of the GNU General Public License as published by
    4.10 - * the Free Software Foundation, version 2 of the License.
    4.11 - *
    4.12 - * This program is distributed in the hope that it will be useful,
    4.13 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
    4.14 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    4.15 - * GNU General Public License for more details.
    4.16 - *
    4.17 - * You should have received a copy of the GNU General Public License
    4.18 - * along with this program. Look for COPYING file in the top folder.
    4.19 - * If not, see http://opensource.org/licenses/GPL-2.0.
    4.20 - */
    4.21 -
    4.22 -
    4.23 -function java_lang_String_consVAC(self,charArr) {
    4.24 -    for (var i = 0; i < charArr.length; i++) {
    4.25 -        if (typeof charArr[i] === 'number') charArr[i] = String.fromCharCode(charArr[i]);
    4.26 -    }
    4.27 -    self.r = charArr.join("");
    4.28 -}
    4.29 -
    4.30 -function java_lang_String_consVACII(self, charArr, off, cnt) {
    4.31 -    var up = off + cnt;
    4.32 -    for (var i = off; i < up; i++) {
    4.33 -        if (typeof charArr[i] === 'number') charArr[i] = String.fromCharCode(charArr[i]);
    4.34 -    }
    4.35 -    self.r = charArr.slice(off, up).join("");
    4.36 -}
    4.37 -
    4.38 -function java_lang_String_charAtCI(arg0,arg1) {
    4.39 -    return arg0.toString().charCodeAt(arg1);
    4.40 -}
    4.41 -function java_lang_String_lengthI(arg0) {
    4.42 -    return arg0.toString().length;
    4.43 -}
    4.44 -function java_lang_String_isEmptyZ(arg0) {
    4.45 -    return arg0.toString().length === 0;
    4.46 -}
    4.47 -function java_lang_String_valueOfLjava_lang_StringI(n) {
    4.48 -    return n.toString();
    4.49 -}
    4.50 -
    4.51 -function java_lang_String_startsWithZLjava_lang_StringI(self,find,from) {
    4.52 -    find = find.toString();
    4.53 -    return self.toString().substring(from, find.length) === find;
    4.54 -}
    4.55 -function java_lang_String_startsWithZLjava_lang_String(self,find) {
    4.56 -    find = find.toString();
    4.57 -    return self.toString().substring(0, find.length) === find;
    4.58 -}
    4.59 -function java_lang_String_endsWithZLjava_lang_String(self,find) {
    4.60 -    self = self.toString();
    4.61 -    find = find.toString();
    4.62 -    if (find.length > self.length) {
    4.63 -        return false;
    4.64 -    }
    4.65 -    return self.substring(self.length - find.length) === find;
    4.66 -}
    4.67 -
    4.68 -function java_lang_String_indexOfII(arg0,ch) {
    4.69 -    if (typeof ch === 'number') ch = String.fromCharCode(ch);
    4.70 -    return arg0.toString().indexOf(ch);
    4.71 -}
    4.72 -function java_lang_String_indexOfIII(arg0,ch,from) {
    4.73 -    if (typeof ch === 'number') ch = String.fromCharCode(ch);
    4.74 -    return arg0.toString().indexOf(ch, from);
    4.75 -}
    4.76 -
    4.77 -function java_lang_String_getCharsVACI(self, arr, to) {
    4.78 -    var s = self.toString();
    4.79 -    for (var i = 0; i < s.length; i++) {
    4.80 -        arr[to++] = s[i];
    4.81 -    }
    4.82 -}
    4.83 -
    4.84 -/*
    4.85 -function java_lang_String_codePointAtII(arg0,arg1) {
    4.86 -  var arg2;
    4.87 -;
    4.88 -  var stack = new Array(4);
    4.89 -  var gt = 0;
    4.90 -  for(;;) switch(gt) {
    4.91 -    case 0: stack.push(arg1); // 27
    4.92 -    case 1: if (stack.pop() < 0) { gt = 12; continue; } // 155 0 11
    4.93 -    case 4: stack.push(arg1); // 27
    4.94 -    case 5: stack.push(arg0); // 42
    4.95 -    case 6: stack.push(stack.pop().count); // 180 1 97
    4.96 -    case 9: if (stack.pop() > stack.pop()) { gt = 21; continue; } // 161 0 12
    4.97 -    case 12: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
    4.98 -    case 15: stack.push(stack[stack.length - 1]); // 89
    4.99 -    case 16: stack.push(arg1); // 27
   4.100 -    case 17: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
   4.101 -    case 20:  // 191
   4.102 -    case 21: stack.push(arg0); // 42
   4.103 -    case 22: stack.push(stack.pop().value); // 180 1 100
   4.104 -    case 25: stack.push(arg0); // 42
   4.105 -    case 26: stack.push(stack.pop().offset); // 180 1 99
   4.106 -    case 29: stack.push(arg1); // 27
   4.107 -    case 30: stack.push(stack.pop() + stack.pop()); // 96
   4.108 -    case 31: stack.push(arg0); // 42
   4.109 -    case 32: stack.push(stack.pop().offset); // 180 1 99
   4.110 -    case 35: stack.push(arg0); // 42
   4.111 -    case 36: stack.push(stack.pop().count); // 180 1 97
   4.112 -    case 39: stack.push(stack.pop() + stack.pop()); // 96
   4.113 -    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
   4.114 -    case 43: return stack.pop(); // 172
   4.115 -  }
   4.116 -}
   4.117 -function java_lang_String_codePointBeforeII(arg0,arg1) {
   4.118 -  var arg2;
   4.119 -  var arg3;
   4.120 -;
   4.121 -  var stack = new Array(3);
   4.122 -  var gt = 0;
   4.123 -  for(;;) switch(gt) {
   4.124 -    case 0: stack.push(arg1); // 27
   4.125 -    case 1: stack.push(1); // 4
   4.126 -    case 2: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   4.127 -    case 3: arg2 = stack.pop(); // 61
   4.128 -    case 4: stack.push(arg2); // 28
   4.129 -    case 5: if (stack.pop() < 0) { gt = 16; continue; } // 155 0 11
   4.130 -    case 8: stack.push(arg2); // 28
   4.131 -    case 9: stack.push(arg0); // 42
   4.132 -    case 10: stack.push(stack.pop().count); // 180 1 97
   4.133 -    case 13: if (stack.pop() > stack.pop()) { gt = 25; continue; } // 161 0 12
   4.134 -    case 16: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
   4.135 -    case 19: stack.push(stack[stack.length - 1]); // 89
   4.136 -    case 20: stack.push(arg1); // 27
   4.137 -    case 21: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
   4.138 -    case 24:  // 191
   4.139 -    case 25: stack.push(arg0); // 42
   4.140 -    case 26: stack.push(stack.pop().value); // 180 1 100
   4.141 -    case 29: stack.push(arg0); // 42
   4.142 -    case 30: stack.push(stack.pop().offset); // 180 1 99
   4.143 -    case 33: stack.push(arg1); // 27
   4.144 -    case 34: stack.push(stack.pop() + stack.pop()); // 96
   4.145 -    case 35: stack.push(arg0); // 42
   4.146 -    case 36: stack.push(stack.pop().offset); // 180 1 99
   4.147 -    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
   4.148 -    case 42: return stack.pop(); // 172
   4.149 -  }
   4.150 -}
   4.151 -function java_lang_String_codePointCountIII(arg0,arg1,arg2) {
   4.152 -  var arg3;
   4.153 -;
   4.154 -  var stack = new Array(4);
   4.155 -  var gt = 0;
   4.156 -  for(;;) switch(gt) {
   4.157 -    case 0: stack.push(arg1); // 27
   4.158 -    case 1: if (stack.pop() < 0) { gt = 17; continue; } // 155 0 16
   4.159 -    case 4: stack.push(arg2); // 28
   4.160 -    case 5: stack.push(arg0); // 42
   4.161 -    case 6: stack.push(stack.pop().count); // 180 1 97
   4.162 -    case 9: if (stack.pop() < stack.pop()) { gt = 17; continue; } // 163 0 8
   4.163 -    case 12: stack.push(arg1); // 27
   4.164 -    case 13: stack.push(arg2); // 28
   4.165 -    case 14: if (stack.pop() >= stack.pop()) { gt = 25; continue; } // 164 0 11
   4.166 -    case 17: stack.push(new java_lang_IndexOutOfBoundsException); // 187 0 194
   4.167 -    case 20: stack.push(stack[stack.length - 1]); // 89
   4.168 -    case 21: { java_lang_IndexOutOfBoundsException_consV(stack.pop()); } // 183 1 124
   4.169 -    case 24:  // 191
   4.170 -    case 25: stack.push(arg0); // 42
   4.171 -    case 26: stack.push(stack.pop().value); // 180 1 100
   4.172 -    case 29: stack.push(arg0); // 42
   4.173 -    case 30: stack.push(stack.pop().offset); // 180 1 99
   4.174 -    case 33: stack.push(arg1); // 27
   4.175 -    case 34: stack.push(stack.pop() + stack.pop()); // 96
   4.176 -    case 35: stack.push(arg2); // 28
   4.177 -    case 36: stack.push(arg1); // 27
   4.178 -    case 37: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   4.179 -    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
   4.180 -    case 41: return stack.pop(); // 172
   4.181 -  }
   4.182 -}
   4.183 -function java_lang_String_offsetByCodePointsIII(arg0,arg1,arg2) {
   4.184 -  var arg3;
   4.185 -;
   4.186 -  var stack = new Array(5);
   4.187 -  var gt = 0;
   4.188 -  for(;;) switch(gt) {
   4.189 -    case 0: stack.push(arg1); // 27
   4.190 -    case 1: if (stack.pop() < 0) { gt = 12; continue; } // 155 0 11
   4.191 -    case 4: stack.push(arg1); // 27
   4.192 -    case 5: stack.push(arg0); // 42
   4.193 -    case 6: stack.push(stack.pop().count); // 180 1 97
   4.194 -    case 9: if (stack.pop() >= stack.pop()) { gt = 20; continue; } // 164 0 11
   4.195 -    case 12: stack.push(new java_lang_IndexOutOfBoundsException); // 187 0 194
   4.196 -    case 15: stack.push(stack[stack.length - 1]); // 89
   4.197 -    case 16: { java_lang_IndexOutOfBoundsException_consV(stack.pop()); } // 183 1 124
   4.198 -    case 19:  // 191
   4.199 -    case 20: stack.push(arg0); // 42
   4.200 -    case 21: stack.push(stack.pop().value); // 180 1 100
   4.201 -    case 24: stack.push(arg0); // 42
   4.202 -    case 25: stack.push(stack.pop().offset); // 180 1 99
   4.203 -    case 28: stack.push(arg0); // 42
   4.204 -    case 29: stack.push(stack.pop().count); // 180 1 97
   4.205 -    case 32: stack.push(arg0); // 42
   4.206 -    case 33: stack.push(stack.pop().offset); // 180 1 99
   4.207 -    case 36: stack.push(arg1); // 27
   4.208 -    case 37: stack.push(stack.pop() + stack.pop()); // 96
   4.209 -    case 38: stack.push(arg2); // 28
   4.210 -    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
   4.211 -    case 42: stack.push(arg0); // 42
   4.212 -    case 43: stack.push(stack.pop().offset); // 180 1 99
   4.213 -    case 46: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   4.214 -    case 47: return stack.pop(); // 172
   4.215 -  }
   4.216 -}
   4.217 -*/
   4.218 -
   4.219 -// public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) {
   4.220 -function java_lang_String_getCharsVIIACAI(arg0,arg1,arg2,arg3,arg4) {
   4.221 -    var s = arg0.toString();
   4.222 -    while (arg1 < arg2) {
   4.223 -        arg3[arg4++] = s[arg1++];
   4.224 -    }
   4.225 -}
   4.226 -
   4.227 -/*
   4.228 -function java_lang_String_getBytesVIIABI(arg0,arg1,arg2,arg3,arg4) {
   4.229 -  var arg5;
   4.230 -  var arg6;
   4.231 -  var arg7;
   4.232 -  var arg8;
   4.233 -  var arg9;
   4.234 -;
   4.235 -  var stack = new Array(4);
   4.236 -  var gt = 0;
   4.237 -  for(;;) switch(gt) {
   4.238 -    case 0: stack.push(arg1); // 27
   4.239 -    case 1: if (stack.pop() >= 0) { gt = 13; continue; } // 156 0 12
   4.240 -    case 4: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
   4.241 -    case 7: stack.push(stack[stack.length - 1]); // 89
   4.242 -    case 8: stack.push(arg1); // 27
   4.243 -    case 9: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
   4.244 -    case 12:  // 191
   4.245 -    case 13: stack.push(arg2); // 28
   4.246 -    case 14: stack.push(arg0); // 42
   4.247 -    case 15: stack.push(stack.pop().count); // 180 1 97
   4.248 -    case 18: if (stack.pop() >= stack.pop()) { gt = 30; continue; } // 164 0 12
   4.249 -    case 21: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
   4.250 -    case 24: stack.push(stack[stack.length - 1]); // 89
   4.251 -    case 25: stack.push(arg2); // 28
   4.252 -    case 26: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
   4.253 -    case 29:  // 191
   4.254 -    case 30: stack.push(arg1); // 27
   4.255 -    case 31: stack.push(arg2); // 28
   4.256 -    case 32: if (stack.pop() >= stack.pop()) { gt = 46; continue; } // 164 0 14
   4.257 -    case 35: stack.push(new java_lang_StringIndexOutOfBoundsException); // 187 0 206
   4.258 -    case 38: stack.push(stack[stack.length - 1]); // 89
   4.259 -    case 39: stack.push(arg2); // 28
   4.260 -    case 40: stack.push(arg1); // 27
   4.261 -    case 41: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   4.262 -    case 42: { var v0 = stack.pop(); java_lang_StringIndexOutOfBoundsException_consVI(stack.pop(), v0); } // 183 1 169
   4.263 -    case 45:  // 191
   4.264 -    case 46: stack.push(arg4); // 21 4
   4.265 -    case 48: arg5 = stack.pop() // 54 5
   4.266 -    case 50: stack.push(arg0); // 42
   4.267 -    case 51: stack.push(stack.pop().offset); // 180 1 99
   4.268 -    case 54: stack.push(arg2); // 28
   4.269 -    case 55: stack.push(stack.pop() + stack.pop()); // 96
   4.270 -    case 56: arg6 = stack.pop() // 54 6
   4.271 -    case 58: stack.push(arg0); // 42
   4.272 -    case 59: stack.push(stack.pop().offset); // 180 1 99
   4.273 -    case 62: stack.push(arg1); // 27
   4.274 -    case 63: stack.push(stack.pop() + stack.pop()); // 96
   4.275 -    case 64: arg7 = stack.pop() // 54 7
   4.276 -    case 66: stack.push(arg0); // 42
   4.277 -    case 67: stack.push(stack.pop().value); // 180 1 100
   4.278 -    case 70: arg8 = stack.pop() // 58 8
   4.279 -    case 72: stack.push(arg7); // 21 7
   4.280 -    case 74: stack.push(arg6); // 21 6
   4.281 -    case 76: if (stack.pop() <= stack.pop()) { gt = 98; continue; } // 162 0 22
   4.282 -    case 79: stack.push(arg3); // 45
   4.283 -    case 80: stack.push(arg5); // 21 5
   4.284 -    case 82: arg5++; // 132 5 1
   4.285 -    case 85: stack.push(arg8); // 25 8
   4.286 -    case 87: stack.push(arg7); // 21 7
   4.287 -    case 89: arg7++; // 132 7 1
   4.288 -    case 92: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   4.289 -    case 93: // number conversion  // 145
   4.290 -    case 94: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 84
   4.291 -    case 95: gt = 72; continue; // 167 255 233
   4.292 -    case 98: return; // 177
   4.293 -  }
   4.294 -}
   4.295 -function java_lang_String_getBytesABLjava_lang_String(arg0,arg1) {
   4.296 -  var arg2;
   4.297 -;
   4.298 -  var stack = new Array(4);
   4.299 -  var gt = 0;
   4.300 -  for(;;) switch(gt) {
   4.301 -    case 0: stack.push(arg1); // 43
   4.302 -    case 1: if (stack.pop()) { gt = 12; continue; } // 199 0 11
   4.303 -    case 4: stack.push(new java_lang_NullPointerException); // 187 0 198
   4.304 -    case 7: stack.push(stack[stack.length - 1]); // 89
   4.305 -    case 8: { java_lang_NullPointerException_consV(stack.pop()); } // 183 1 128
   4.306 -    case 11:  // 191
   4.307 -    case 12: stack.push(arg1); // 43
   4.308 -    case 13: stack.push(arg0); // 42
   4.309 -    case 14: stack.push(stack.pop().value); // 180 1 100
   4.310 -    case 17: stack.push(arg0); // 42
   4.311 -    case 18: stack.push(stack.pop().offset); // 180 1 99
   4.312 -    case 21: stack.push(arg0); // 42
   4.313 -    case 22: stack.push(stack.pop().count); // 180 1 97
   4.314 -    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
   4.315 -    case 28: return stack.pop(); // 176
   4.316 -  }
   4.317 -}
   4.318 -function java_lang_String_getBytesABLjava_nio_charset_Charset(arg0,arg1) {
   4.319 -  var arg2;
   4.320 -;
   4.321 -  var stack = new Array(4);
   4.322 -  var gt = 0;
   4.323 -  for(;;) switch(gt) {
   4.324 -    case 0: stack.push(arg1); // 43
   4.325 -    case 1: if (stack.pop()) { gt = 12; continue; } // 199 0 11
   4.326 -    case 4: stack.push(new java_lang_NullPointerException); // 187 0 198
   4.327 -    case 7: stack.push(stack[stack.length - 1]); // 89
   4.328 -    case 8: { java_lang_NullPointerException_consV(stack.pop()); } // 183 1 128
   4.329 -    case 11:  // 191
   4.330 -    case 12: stack.push(arg1); // 43
   4.331 -    case 13: stack.push(arg0); // 42
   4.332 -    case 14: stack.push(stack.pop().value); // 180 1 100
   4.333 -    case 17: stack.push(arg0); // 42
   4.334 -    case 18: stack.push(stack.pop().offset); // 180 1 99
   4.335 -    case 21: stack.push(arg0); // 42
   4.336 -    case 22: stack.push(stack.pop().count); // 180 1 97
   4.337 -    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
   4.338 -    case 28: return stack.pop(); // 176
   4.339 -  }
   4.340 -}
   4.341 -function java_lang_String_getBytesAB(arg0) {
   4.342 -  var arg1;
   4.343 -;
   4.344 -  var stack = new Array(3);
   4.345 -  var gt = 0;
   4.346 -  for(;;) switch(gt) {
   4.347 -    case 0: stack.push(arg0); // 42
   4.348 -    case 1: stack.push(stack.pop().value); // 180 1 100
   4.349 -    case 4: stack.push(arg0); // 42
   4.350 -    case 5: stack.push(stack.pop().offset); // 180 1 99
   4.351 -    case 8: stack.push(arg0); // 42
   4.352 -    case 9: stack.push(stack.pop().count); // 180 1 97
   4.353 -    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
   4.354 -    case 15: return stack.pop(); // 176
   4.355 -  }
   4.356 -}
   4.357 -*/
   4.358 -function java_lang_String_equalsZLjava_lang_Object(arg0,arg1) {
   4.359 -    return arg0.toString() === arg1.toString();
   4.360 -}
   4.361 -
   4.362 -function java_lang_String_hashCodeI(self) {
   4.363 -    var h = 0;
   4.364 -    var s = self.toString();
   4.365 -    for (var i = 0; i < s.length; i++) {
   4.366 -        var high = (h >> 16) & 0xffff, low = h & 0xffff;
   4.367 -        h = (((((31 * high) & 0xffff) << 16) >>> 0) + (31 * low) + s.charCodeAt(i)) & 0xffffffff;
   4.368 -    }
   4.369 -    return h;
   4.370 -}
   4.371 -
   4.372 -function java_lang_String_substringLjava_lang_StringI(arg0,arg1) {
   4.373 -    return arg0.toString().substring(arg1);
   4.374 -}
   4.375 -function java_lang_String_substringLjava_lang_StringII(arg0,arg1,arg2) {
   4.376 -    return arg0.toString().substring(arg1, arg2);
   4.377 -}
   4.378 -
   4.379 -function java_lang_String_replaceLjava_lang_StringCC(arg0,arg1,arg2) {
   4.380 -    if (typeof arg1 === 'number') arg1 = String.fromCharCode(arg1);
   4.381 -    if (typeof arg2 === 'number') arg2 = String.fromCharCode(arg2);
   4.382 -    var s = arg0.toString();
   4.383 -    for (;;) {
   4.384 -        var ret = s.replace(arg1, arg2);
   4.385 -        if (ret === s) {
   4.386 -            return ret;
   4.387 -        }
   4.388 -        s = ret;
   4.389 -    }
   4.390 -}
   4.391 -function java_lang_String_containsZLjava_lang_CharSequence(arg0,arg1) {
   4.392 -    return arg0.toString().indexOf(arg1.toString()) >= 0;
   4.393 -}
   4.394 -
   4.395 -function java_lang_String_toStringLjava_lang_String(arg0) {
   4.396 -    return arg0.toString();
   4.397 -}
   4.398 -function java_lang_String_toCharArrayAC(arg0) {
   4.399 -    return arg0.toString().split('');
   4.400 -}
   4.401 -var java_lang_String_serialVersionUID = 0;
   4.402 -var java_lang_String_serialPersistentFields = 0;
   4.403 -var java_lang_String_CASE_INSENSITIVE_ORDER = 0;
   4.404 -function java_lang_String() {
   4.405 -    if (arguments.length === 0) {
   4.406 -        /** the real value of this 'string' we delegate to */
   4.407 -        this.r = '';
   4.408 -        return this;
   4.409 -    } else {
   4.410 -        return new java_lang_String;
   4.411 -    }
   4.412 -}
   4.413 -java_lang_String.prototype = new String;
   4.414 -java_lang_String.prototype.toString = function() { return this.r; };;
   4.415 -java_lang_String.prototype.valueOf = function() { return this.toString().valueOf(); };;
   4.416 -//java_lang_String_classV();
   4.417 -
   4.418 -/* new method for JavaScript String */
   4.419 -String.prototype.consVAC = java_lang_String_consVAC;
   4.420 -String.prototype.consVACII = java_lang_String_consVACII;
   4.421 -String.prototype.charAtCI = java_lang_String_charAtCI;
   4.422 -String.prototype.lengthI = java_lang_String_lengthI;
   4.423 -String.prototype.isEmptyZ = java_lang_String_isEmptyZ;
   4.424 -String.prototype.getCharsVIIACI = java_lang_String_getCharsVIIACAI;
   4.425 -String.prototype.getCharsVACI = java_lang_String_getCharsVACI;
   4.426 -String.prototype.toStringLjava_lang_String = java_lang_String_toStringLjava_lang_String;
   4.427 -String.prototype.substringLjava_lang_StringI = java_lang_String_substringLjava_lang_StringI;
   4.428 -String.prototype.substringLjava_lang_StringII = java_lang_String_substringLjava_lang_StringII;
   4.429 -String.prototype.replaceLjava_lang_StringCC = java_lang_String_replaceLjava_lang_StringCC;
   4.430 -String.prototype.containsZLjava_lang_CharSequence = java_lang_String_containsZLjava_lang_CharSequence;
   4.431 -String.prototype.equalsZLjava_lang_Object = java_lang_String_equalsZLjava_lang_Object;
   4.432 -String.prototype.hashCodeI = java_lang_String_hashCodeI;
   4.433 -String.prototype.toCharArrayAC = java_lang_String_toCharArrayAC;
   4.434 -String.prototype.valueOfLjava_lang_StringI=java_lang_String_valueOfLjava_lang_StringI;
   4.435 -String.prototype.startsWithZLjava_lang_StringI = java_lang_String_startsWithZLjava_lang_StringI;
   4.436 -String.prototype.startsWithZLjava_lang_String=java_lang_String_startsWithZLjava_lang_String;
   4.437 -String.prototype.endsWithZLjava_lang_String=java_lang_String_endsWithZLjava_lang_String;
   4.438 -String.prototype.indexOfII=java_lang_String_indexOfII;
   4.439 -String.prototype.indexOfIII=java_lang_String_indexOfIII;
   4.440 -
   4.441 -String.prototype.$instOf_java_lang_String = true;
   4.442 -String.prototype.$instOf_java_io_Serializable = true;
   4.443 -String.prototype.$instOf_java_lang_Comparable = true;
   4.444 -String.prototype.$instOf_java_lang_CharSequence = true;
   4.445 -
   4.446 -/*
   4.447 -function java_lang_String_subSequenceLjava_lang_CharSequenceII(arg0,arg1,arg2) {
   4.448 -  var arg3;
   4.449 -;
   4.450 -  var stack = new Array(3);
   4.451 -  var gt = 0;
   4.452 -  for(;;) switch(gt) {
   4.453 -    case 0: stack.push(arg0); // 42
   4.454 -    case 1: stack.push(arg1); // 27
   4.455 -    case 2: stack.push(arg2); // 28
   4.456 -    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
   4.457 -    case 6: return stack.pop(); // 176
   4.458 -  }
   4.459 -}
   4.460 -function java_lang_String_concatLjava_lang_StringLjava_lang_String(arg0,arg1) {
   4.461 -  var arg2;
   4.462 -  var arg3;
   4.463 -  var arg4;
   4.464 -;
   4.465 -  var stack = new Array(5);
   4.466 -  var gt = 0;
   4.467 -  for(;;) switch(gt) {
   4.468 -    case 0: stack.push(arg1); // 43
   4.469 -    case 1: { var self = stack.pop(); stack.push(self.lengthI(self)); } // 182 1 133
   4.470 -    case 4: arg2 = stack.pop(); // 61
   4.471 -    case 5: stack.push(arg2); // 28
   4.472 -    case 6: if (stack.pop() != 0) { gt = 11; continue; } // 154 0 5
   4.473 -    case 9: stack.push(arg0); // 42
   4.474 -    case 10: return stack.pop(); // 176
   4.475 -    case 11: stack.push(arg0); // 42
   4.476 -    case 12: stack.push(stack.pop().count); // 180 1 97
   4.477 -    case 15: stack.push(arg2); // 28
   4.478 -    case 16: stack.push(stack.pop() + stack.pop()); // 96
   4.479 -    case 17: stack.push(new Array(stack.pop())); // 188 5
   4.480 -    case 19: arg3 = stack.pop(); // 78
   4.481 -    case 20: stack.push(arg0); // 42
   4.482 -    case 21: stack.push(0); // 3
   4.483 -    case 22: stack.push(arg0); // 42
   4.484 -    case 23: stack.push(stack.pop().count); // 180 1 97
   4.485 -    case 26: stack.push(arg3); // 45
   4.486 -    case 27: stack.push(0); // 3
   4.487 -    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
   4.488 -    case 31: stack.push(arg1); // 43
   4.489 -    case 32: stack.push(0); // 3
   4.490 -    case 33: stack.push(arg2); // 28
   4.491 -    case 34: stack.push(arg3); // 45
   4.492 -    case 35: stack.push(arg0); // 42
   4.493 -    case 36: stack.push(stack.pop().count); // 180 1 97
   4.494 -    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
   4.495 -    case 42: stack.push(new java_lang_String); // 187 0 200
   4.496 -    case 45: stack.push(stack[stack.length - 1]); // 89
   4.497 -    case 46: stack.push(0); // 3
   4.498 -    case 47: stack.push(arg0); // 42
   4.499 -    case 48: stack.push(stack.pop().count); // 180 1 97
   4.500 -    case 51: stack.push(arg2); // 28
   4.501 -    case 52: stack.push(stack.pop() + stack.pop()); // 96
   4.502 -    case 53: stack.push(arg3); // 45
   4.503 -    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
   4.504 -    case 57: return stack.pop(); // 176
   4.505 -  }
   4.506 -}
   4.507 -function java_lang_String_matchesZLjava_lang_String(arg0,arg1) {
   4.508 -  var arg2;
   4.509 -;
   4.510 -  var stack = new Array(2);
   4.511 -  var gt = 0;
   4.512 -  for(;;) switch(gt) {
   4.513 -    case 0: stack.push(arg1); // 43
   4.514 -    case 1: stack.push(arg0); // 42
   4.515 -    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
   4.516 -    case 5: return stack.pop(); // 172
   4.517 -  }
   4.518 -}
   4.519 -function java_lang_String_replaceFirstLjava_lang_StringLjava_lang_StringLjava_lang_String(arg0,arg1,arg2) {
   4.520 -  var arg3;
   4.521 -;
   4.522 -  var stack = new Array(2);
   4.523 -  var gt = 0;
   4.524 -  for(;;) switch(gt) {
   4.525 -    case 0: stack.push(arg1); // 43
   4.526 -    case 1: { var v0 = stack.pop(); stack.push(java_util_regex_Pattern_compileLjava_util_regex_PatternLjava_lang_String(v0)); } // 184 1 186
   4.527 -    case 4: stack.push(arg0); // 42
   4.528 -    case 5: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.matcherLjava_util_regex_MatcherLjava_lang_CharSequence(self, v0)); } // 182 1 185
   4.529 -    case 8: stack.push(arg2); // 44
   4.530 -    case 9: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.replaceFirstLjava_lang_StringLjava_lang_String(self, v0)); } // 182 1 182
   4.531 -    case 12: return stack.pop(); // 176
   4.532 -  }
   4.533 -}
   4.534 -function java_lang_String_replaceAllLjava_lang_StringLjava_lang_StringLjava_lang_String(arg0,arg1,arg2) {
   4.535 -  var arg3;
   4.536 -;
   4.537 -  var stack = new Array(2);
   4.538 -  var gt = 0;
   4.539 -  for(;;) switch(gt) {
   4.540 -    case 0: stack.push(arg1); // 43
   4.541 -    case 1: { var v0 = stack.pop(); stack.push(java_util_regex_Pattern_compileLjava_util_regex_PatternLjava_lang_String(v0)); } // 184 1 186
   4.542 -    case 4: stack.push(arg0); // 42
   4.543 -    case 5: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.matcherLjava_util_regex_MatcherLjava_lang_CharSequence(self, v0)); } // 182 1 185
   4.544 -    case 8: stack.push(arg2); // 44
   4.545 -    case 9: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.replaceAllLjava_lang_StringLjava_lang_String(self, v0)); } // 182 1 181
   4.546 -    case 12: return stack.pop(); // 176
   4.547 -  }
   4.548 -}
   4.549 -function java_lang_String_replaceLjava_lang_StringLjava_lang_CharSequenceLjava_lang_CharSequence(arg0,arg1,arg2) {
   4.550 -  var arg3;
   4.551 -;
   4.552 -  var stack = new Array(2);
   4.553 -  var gt = 0;
   4.554 -  for(;;) switch(gt) {
   4.555 -    case 0: stack.push(arg1); // 43
   4.556 -    case 1: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 132
   4.557 -    case 4: stack.push(16); // 16 16
   4.558 -    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
   4.559 -    case 9: stack.push(arg0); // 42
   4.560 -    case 10: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.matcherLjava_util_regex_MatcherLjava_lang_CharSequence(self, v0)); } // 182 1 185
   4.561 -    case 13: stack.push(arg2); // 44
   4.562 -    case 14: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 132
   4.563 -    case 17: { var v0 = stack.pop(); stack.push(java_util_regex_Matcher_quoteReplacementLjava_lang_StringLjava_lang_String(v0)); } // 184 1 180
   4.564 -    case 20: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.replaceAllLjava_lang_StringLjava_lang_String(self, v0)); } // 182 1 181
   4.565 -    case 23: return stack.pop(); // 176
   4.566 -  }
   4.567 -}
   4.568 -function java_lang_String_splitALjava_lang_StringLjava_lang_StringI(arg0,arg1,arg2) {
   4.569 -  var arg3;
   4.570 -;
   4.571 -  var stack = new Array(3);
   4.572 -  var gt = 0;
   4.573 -  for(;;) switch(gt) {
   4.574 -    case 0: stack.push(arg1); // 43
   4.575 -    case 1: { var v0 = stack.pop(); stack.push(java_util_regex_Pattern_compileLjava_util_regex_PatternLjava_lang_String(v0)); } // 184 1 186
   4.576 -    case 4: stack.push(arg0); // 42
   4.577 -    case 5: stack.push(arg2); // 28
   4.578 -    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
   4.579 -    case 9: return stack.pop(); // 176
   4.580 -  }
   4.581 -}
   4.582 -function java_lang_String_splitALjava_lang_StringLjava_lang_String(arg0,arg1) {
   4.583 -  var arg2;
   4.584 -;
   4.585 -  var stack = new Array(3);
   4.586 -  var gt = 0;
   4.587 -  for(;;) switch(gt) {
   4.588 -    case 0: stack.push(arg0); // 42
   4.589 -    case 1: stack.push(arg1); // 43
   4.590 -    case 2: stack.push(0); // 3
   4.591 -    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
   4.592 -    case 6: return stack.pop(); // 176
   4.593 -  }
   4.594 -}
   4.595 -function java_lang_String_toLowerCaseLjava_lang_StringLjava_util_Locale(arg0,arg1) {
   4.596 -  var arg2;
   4.597 -  var arg3;
   4.598 -  var arg4;
   4.599 -  var arg5;
   4.600 -  var arg6;
   4.601 -  var arg7;
   4.602 -  var arg8;
   4.603 -  var arg9;
   4.604 -  var arg10;
   4.605 -  var arg11;
   4.606 -  var arg12;
   4.607 -  var arg13;
   4.608 -  var arg14;
   4.609 -;
   4.610 -  var stack = new Array(6);
   4.611 -  var gt = 0;
   4.612 -  for(;;) switch(gt) {
   4.613 -    case 0: stack.push(arg1); // 43
   4.614 -    case 1: if (stack.pop()) { gt = 12; continue; } // 199 0 11
   4.615 -    case 4: stack.push(new java_lang_NullPointerException); // 187 0 198
   4.616 -    case 7: stack.push(stack[stack.length - 1]); // 89
   4.617 -    case 8: { java_lang_NullPointerException_consV(stack.pop()); } // 183 1 128
   4.618 -    case 11:  // 191
   4.619 -    case 12: stack.push(0); // 3
   4.620 -    case 13: arg2 = stack.pop(); // 61
   4.621 -    case 14: stack.push(arg2); // 28
   4.622 -    case 15: stack.push(arg0); // 42
   4.623 -    case 16: stack.push(stack.pop().count); // 180 1 97
   4.624 -    case 19: if (stack.pop() <= stack.pop()) { gt = 94; continue; } // 162 0 75
   4.625 -    case 22: stack.push(arg0); // 42
   4.626 -    case 23: stack.push(stack.pop().value); // 180 1 100
   4.627 -    case 26: stack.push(arg0); // 42
   4.628 -    case 27: stack.push(stack.pop().offset); // 180 1 99
   4.629 -    case 30: stack.push(arg2); // 28
   4.630 -    case 31: stack.push(stack.pop() + stack.pop()); // 96
   4.631 -    case 32: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   4.632 -    case 33: arg3 = stack.pop(); // 62
   4.633 -    case 34: stack.push(arg3); // 29
   4.634 -    case 35: stack.push(55296); // 18 1
   4.635 -    case 37: if (stack.pop() > stack.pop()) { gt = 77; continue; } // 161 0 40
   4.636 -    case 40: stack.push(arg3); // 29
   4.637 -    case 41: stack.push(56319); // 18 2
   4.638 -    case 43: if (stack.pop() < stack.pop()) { gt = 77; continue; } // 163 0 34
   4.639 -    case 46: stack.push(arg0); // 42
   4.640 -    case 47: stack.push(arg2); // 28
   4.641 -    case 48: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.codePointAtII(self, v0)); } // 182 1 134
   4.642 -    case 51: arg4 = stack.pop() // 54 4
   4.643 -    case 53: stack.push(arg4); // 21 4
   4.644 -    case 55: stack.push(arg4); // 21 4
   4.645 -    case 57: { var v0 = stack.pop(); stack.push(java_lang_Character_toLowerCaseII(v0)); } // 184 1 107
   4.646 -    case 60: if (stack.pop() == stack.pop()) { gt = 66; continue; } // 159 0 6
   4.647 -    case 63: gt = 96; continue; // 167 0 33
   4.648 -    case 66: stack.push(arg2); // 28
   4.649 -    case 67: stack.push(arg4); // 21 4
   4.650 -    case 69: { var v0 = stack.pop(); stack.push(java_lang_Character_charCountII(v0)); } // 184 1 106
   4.651 -    case 72: stack.push(stack.pop() + stack.pop()); // 96
   4.652 -    case 73: arg2 = stack.pop(); // 61
   4.653 -    case 74: gt = 91; continue; // 167 0 17
   4.654 -    case 77: stack.push(arg3); // 29
   4.655 -    case 78: stack.push(arg3); // 29
   4.656 -    case 79: { var v0 = stack.pop(); stack.push(java_lang_Character_toLowerCaseCC(v0)); } // 184 1 104
   4.657 -    case 82: if (stack.pop() == stack.pop()) { gt = 88; continue; } // 159 0 6
   4.658 -    case 85: gt = 96; continue; // 167 0 11
   4.659 -    case 88: arg2++; // 132 2 1
   4.660 -    case 91: gt = 14; continue; // 167 255 179
   4.661 -    case 94: stack.push(arg0); // 42
   4.662 -    case 95: return stack.pop(); // 176
   4.663 -    case 96: stack.push(arg0); // 42
   4.664 -    case 97: stack.push(stack.pop().count); // 180 1 97
   4.665 -    case 100: stack.push(new Array(stack.pop())); // 188 5
   4.666 -    case 102: arg3 = stack.pop(); // 78
   4.667 -    case 103: stack.push(0); // 3
   4.668 -    case 104: arg4 = stack.pop() // 54 4
   4.669 -    case 106: stack.push(arg0); // 42
   4.670 -    case 107: stack.push(stack.pop().value); // 180 1 100
   4.671 -    case 110: stack.push(arg0); // 42
   4.672 -    case 111: stack.push(stack.pop().offset); // 180 1 99
   4.673 -    case 114: stack.push(arg3); // 45
   4.674 -    case 115: stack.push(0); // 3
   4.675 -    case 116: stack.push(arg2); // 28
   4.676 -    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
   4.677 -    case 120: stack.push(arg1); // 43
   4.678 -    case 121: { var self = stack.pop(); stack.push(self.getLanguageLjava_lang_String(self)); } // 182 1 178
   4.679 -    case 124: arg5 = stack.pop() // 58 5
   4.680 -    case 126: stack.push(arg5); // 25 5
   4.681 -    case 128: stack.push("tr"); // 18 11
   4.682 -    case 130:  // 165
   4.683 -    case 131:  // 0
   4.684 -    case 132: stack.push(6405); // 17 25 5
   4.685 -    case 135: stack.push("az"); // 18 5
   4.686 -    case 137:  // 165
   4.687 -    case 138:  // 0
   4.688 -    case 139: stack.push(1); // 10
   4.689 -    case 140: stack.push(arg5); // 25 5
   4.690 -    case 142: stack.push("lt"); // 18 9
   4.691 -    case 144:  // 166
   4.692 -    case 145:  // 0
   4.693 -    case 146: stack.push(4); // 7
   4.694 -    case 147: stack.push(1); // 4
   4.695 -    case 148: gt = 152; continue; // 167 0 4
   4.696 -    case 151: stack.push(0); // 3
   4.697 -    case 152: arg6 = stack.pop() // 54 6
   4.698 -    case 154: stack.push(arg2); // 28
   4.699 -    case 155: arg11 = stack.pop() // 54 11
   4.700 -    case 157: stack.push(arg11); // 21 11
   4.701 -    case 159: stack.push(arg0); // 42
   4.702 -    case 160: stack.push(stack.pop().count); // 180 1 97
   4.703 -    case 163: if (stack.pop() <= stack.pop()) { gt = 419; continue; } // 162 1 0
   4.704 -    case 166: stack.push(arg0); // 42
   4.705 -    case 167: stack.push(stack.pop().value); // 180 1 100
   4.706 -    case 170: stack.push(arg0); // 42
   4.707 -    case 171: stack.push(stack.pop().offset); // 180 1 99
   4.708 -    case 174: stack.push(arg11); // 21 11
   4.709 -    case 176: stack.push(stack.pop() + stack.pop()); // 96
   4.710 -    case 177: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   4.711 -    case 178: arg9 = stack.pop() // 54 9
   4.712 -    case 180: stack.push(arg9); // 21 9
   4.713 -    case 182: // number conversion  // 146
   4.714 -    case 183: stack.push(55296); // 18 1
   4.715 -    case 185: if (stack.pop() > stack.pop()) { gt = 214; continue; } // 161 0 29
   4.716 -    case 188: stack.push(arg9); // 21 9
   4.717 -    case 190: // number conversion  // 146
   4.718 -    case 191: stack.push(56319); // 18 2
   4.719 -    case 193: if (stack.pop() < stack.pop()) { gt = 214; continue; } // 163 0 21
   4.720 -    case 196: stack.push(arg0); // 42
   4.721 -    case 197: stack.push(arg11); // 21 11
   4.722 -    case 199: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.codePointAtII(self, v0)); } // 182 1 134
   4.723 -    case 202: arg9 = stack.pop() // 54 9
   4.724 -    case 204: stack.push(arg9); // 21 9
   4.725 -    case 206: { var v0 = stack.pop(); stack.push(java_lang_Character_charCountII(v0)); } // 184 1 106
   4.726 -    case 209: arg10 = stack.pop() // 54 10
   4.727 -    case 211: gt = 217; continue; // 167 0 6
   4.728 -    case 214: stack.push(1); // 4
   4.729 -    case 215: arg10 = stack.pop() // 54 10
   4.730 -    case 217: stack.push(arg6); // 21 6
   4.731 -    case 219: if (stack.pop() != 0) { gt = 230; continue; } // 154 0 11
   4.732 -    case 222: stack.push(arg9); // 21 9
   4.733 -    case 224: stack.push(931); // 17 3 163
   4.734 -    case 227: if (stack.pop() != stack.pop()) { gt = 242; continue; } // 160 0 15
   4.735 -    case 230: stack.push(arg0); // 42
   4.736 -    case 231: stack.push(arg11); // 21 11
   4.737 -    case 233: stack.push(arg1); // 43
   4.738 -    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
   4.739 -    case 237: arg8 = stack.pop() // 54 8
   4.740 -    case 239: gt = 249; continue; // 167 0 10
   4.741 -    case 242: stack.push(arg9); // 21 9
   4.742 -    case 244: { var v0 = stack.pop(); stack.push(java_lang_Character_toLowerCaseII(v0)); } // 184 1 107
   4.743 -    case 247: arg8 = stack.pop() // 54 8
   4.744 -    case 249: stack.push(arg8); // 21 8
   4.745 -    case 251:  // 2
   4.746 -    case 252: if (stack.pop() == stack.pop()) { gt = 262; continue; } // 159 0 10
   4.747 -    case 255: stack.push(arg8); // 21 8
   4.748 -    case 257: stack.push(65536); // 18 3
   4.749 -    case 259: if (stack.pop() > stack.pop()) { gt = 399; continue; } // 161 0 140
   4.750 -    case 262: stack.push(arg8); // 21 8
   4.751 -    case 264:  // 2
   4.752 -    case 265: if (stack.pop() != stack.pop()) { gt = 280; continue; } // 160 0 15
   4.753 -    case 268: stack.push(arg0); // 42
   4.754 -    case 269: stack.push(arg11); // 21 11
   4.755 -    case 271: stack.push(arg1); // 43
   4.756 -    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
   4.757 -    case 275: arg7 = stack.pop() // 58 7
   4.758 -    case 277: gt = 315; continue; // 167 0 38
   4.759 -    case 280: stack.push(arg10); // 21 10
   4.760 -    case 282: stack.push(2); // 5
   4.761 -    case 283: if (stack.pop() != stack.pop()) { gt = 308; continue; } // 160 0 25
   4.762 -    case 286: stack.push(arg4); // 21 4
   4.763 -    case 288: stack.push(arg8); // 21 8
   4.764 -    case 290: stack.push(arg3); // 45
   4.765 -    case 291: stack.push(arg11); // 21 11
   4.766 -    case 293: stack.push(arg4); // 21 4
   4.767 -    case 295: stack.push(stack.pop() + stack.pop()); // 96
   4.768 -    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
   4.769 -    case 299: stack.push(arg10); // 21 10
   4.770 -    case 301: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   4.771 -    case 302: stack.push(stack.pop() + stack.pop()); // 96
   4.772 -    case 303: arg4 = stack.pop() // 54 4
   4.773 -    case 305: gt = 409; continue; // 167 0 104
   4.774 -    case 308: stack.push(arg8); // 21 8
   4.775 -    case 310: { var v0 = stack.pop(); stack.push(java_lang_Character_toCharsACI(v0)); } // 184 1 109
   4.776 -    case 313: arg7 = stack.pop() // 58 7
   4.777 -    case 315: stack.push(arg7); // 25 7
   4.778 -    case 317: stack.push(stack.pop().length); // 190
   4.779 -    case 318: arg12 = stack.pop() // 54 12
   4.780 -    case 320: stack.push(arg12); // 21 12
   4.781 -    case 322: stack.push(arg10); // 21 10
   4.782 -    case 324: if (stack.pop() >= stack.pop()) { gt = 355; continue; } // 164 0 31
   4.783 -    case 327: stack.push(arg3); // 45
   4.784 -    case 328: stack.push(stack.pop().length); // 190
   4.785 -    case 329: stack.push(arg12); // 21 12
   4.786 -    case 331: stack.push(stack.pop() + stack.pop()); // 96
   4.787 -    case 332: stack.push(arg10); // 21 10
   4.788 -    case 334: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   4.789 -    case 335: stack.push(new Array(stack.pop())); // 188 5
   4.790 -    case 337: arg13 = stack.pop() // 58 13
   4.791 -    case 339: stack.push(arg3); // 45
   4.792 -    case 340: stack.push(0); // 3
   4.793 -    case 341: stack.push(arg13); // 25 13
   4.794 -    case 343: stack.push(0); // 3
   4.795 -    case 344: stack.push(arg11); // 21 11
   4.796 -    case 346: stack.push(arg4); // 21 4
   4.797 -    case 348: stack.push(stack.pop() + stack.pop()); // 96
   4.798 -    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
   4.799 -    case 352: stack.push(arg13); // 25 13
   4.800 -    case 354: arg3 = stack.pop(); // 78
   4.801 -    case 355: stack.push(0); // 3
   4.802 -    case 356: arg13 = stack.pop() // 54 13
   4.803 -    case 358: stack.push(arg13); // 21 13
   4.804 -    case 360: stack.push(arg12); // 21 12
   4.805 -    case 362: if (stack.pop() <= stack.pop()) { gt = 386; continue; } // 162 0 24
   4.806 -    case 365: stack.push(arg3); // 45
   4.807 -    case 366: stack.push(arg11); // 21 11
   4.808 -    case 368: stack.push(arg4); // 21 4
   4.809 -    case 370: stack.push(stack.pop() + stack.pop()); // 96
   4.810 -    case 371: stack.push(arg13); // 21 13
   4.811 -    case 373: stack.push(stack.pop() + stack.pop()); // 96
   4.812 -    case 374: stack.push(arg7); // 25 7
   4.813 -    case 376: stack.push(arg13); // 21 13
   4.814 -    case 378: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   4.815 -    case 379: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
   4.816 -    case 380: arg13++; // 132 13 1
   4.817 -    case 383: gt = 358; continue; // 167 255 231
   4.818 -    case 386: stack.push(arg4); // 21 4
   4.819 -    case 388: stack.push(arg12); // 21 12
   4.820 -    case 390: stack.push(arg10); // 21 10
   4.821 -    case 392: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
   4.822 -    case 393: stack.push(stack.pop() + stack.pop()); // 96
   4.823 -    case 394: arg4 = stack.pop() // 54 4
   4.824 -    case 396: gt = 409; continue; // 167 0 13
   4.825 -    case 399: stack.push(arg3); // 45
   4.826 -    case 400: stack.push(arg11); // 21 11
   4.827 -    case 402: stack.push(arg4); // 21 4
   4.828 -    case 404: stack.push(stack.pop() + stack.pop()); // 96
   4.829 -    case 405: stack.push(arg8); // 21 8
   4.830 -    case 407: // number conversion  // 146
   4.831 -    case 408: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
   4.832 -    case 409: stack.push(arg11); // 21 11
   4.833 -    case 411: stack.push(arg10); // 21 10
   4.834 -    case 413: stack.push(stack.pop() + stack.pop()); // 96
   4.835 -    case 414: arg11 = stack.pop() // 54 11
   4.836 -    case 416: gt = 157; continue; // 167 254 253
   4.837 -    case 419: stack.push(new java_lang_String); // 187 0 200
   4.838 -    case 422: stack.push(stack[stack.length - 1]); // 89
   4.839 -    case 423: stack.push(0); // 3
   4.840 -    case 424: stack.push(arg0); // 42
   4.841 -    case 425: stack.push(stack.pop().count); // 180 1 97
   4.842 -    case 428: stack.push(arg4); // 21 4
   4.843 -    case 430: stack.push(stack.pop() + stack.pop()); // 96
   4.844 -    case 431: stack.push(arg3); // 45
   4.845 -    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
   4.846 -    case 435: return stack.pop(); // 176
   4.847 -  }
   4.848 -}
   4.849 -function java_lang_String_toLowerCaseLjava_lang_String(arg0) {
   4.850 -  var arg1;
   4.851 -;
   4.852 -  var stack = new Array(2);
   4.853 -  var gt = 0;
   4.854 -  for(;;) switch(gt) {
   4.855 -    case 0: stack.push(arg0); // 42
   4.856 -    case 1: { stack.push(java_util_Locale_getDefaultLjava_util_Locale()); } // 184 1 179
   4.857 -    case 4: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.toLowerCaseLjava_lang_StringLjava_util_Locale(self, v0)); } // 182 1 158
   4.858 -    case 7: return stack.pop(); // 176
   4.859 -  }
   4.860 -}
   4.861 -function java_lang_String_toUpperCaseLjava_lang_StringLjava_util_Locale(arg0,arg1) {
   4.862 -  var arg2;
   4.863 -  var arg3;
   4.864 -  var arg4;
   4.865 -  var arg5;
   4.866 -  var arg6;
   4.867 -  var arg7;
   4.868 -  var arg8;
   4.869 -  var arg9;
   4.870 -  var arg10;
   4.871 -  var arg11;
   4.872 -  var arg12;
   4.873 -  var arg13;
   4.874 -  var arg14;
   4.875 -;
   4.876 -  var stack = new Array(6);
   4.877 -  var gt = 0;
   4.878 -  for(;;) switch(gt) {
   4.879 -    case 0: stack.push(arg1); // 43
   4.880 -    case 1: if (stack.pop()) { gt = 12; continue; } // 199 0 11
   4.881 -    case 4: stack.push(new java_lang_NullPointerException); // 187 0 198
   4.882 -    case 7: stack.push(stack[stack.length - 1]); // 89
   4.883 -    case 8: { java_lang_NullPointerException_consV(stack.pop()); } // 183 1 128
   4.884 -    case 11:  // 191
   4.885 -    case 12: stack.push(0); // 3
   4.886 -    case 13: arg2 = stack.pop(); // 61
   4.887 -    case 14: stack.push(arg2); // 28
   4.888 -    case 15: stack.push(arg0); // 42
   4.889 -    case 16: stack.push(stack.pop().count); // 180 1 97
   4.890 -    case 19: if (stack.pop() <= stack.pop()) { gt = 93; continue; } // 162 0 74
   4.891 -    case 22: stack.push(arg0); // 42
   4.892 -    case 23: stack.push(stack.pop().value); // 180 1 100
   4.893 -    case 26: stack.push(arg0); // 42
   4.894 -    case 27: stack.push(stack.pop().offset); // 180 1 99
   4.895 -    case 30: stack.push(arg2); // 28
   4.896 -    case 31: stack.push(stack.pop() + stack.pop()); // 96
   4.897 -    case 32: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   4.898 -    case 33: arg3 = stack.pop(); // 62
   4.899 -    case 34: stack.push(arg3); // 29
   4.900 -    case 35: stack.push(55296); // 18 1
   4.901 -    case 37: if (stack.pop() > stack.pop()) { gt = 61; continue; } // 161 0 24
   4.902 -    case 40: stack.push(arg3); // 29
   4.903 -    case 41: stack.push(56319); // 18 2
   4.904 -    case 43: if (stack.pop() < stack.pop()) { gt = 61; continue; } // 163 0 18
   4.905 -    case 46: stack.push(arg0); // 42
   4.906 -    case 47: stack.push(arg2); // 28
   4.907 -    case 48: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.codePointAtII(self, v0)); } // 182 1 134
   4.908 -    case 51: arg3 = stack.pop(); // 62
   4.909 -    case 52: stack.push(arg3); // 29
   4.910 -    case 53: { var v0 = stack.pop(); stack.push(java_lang_Character_charCountII(v0)); } // 184 1 106
   4.911 -    case 56: arg4 = stack.pop() // 54 4
   4.912 -    case 58: gt = 64; continue; // 167 0 6
   4.913 -    case 61: stack.push(1); // 4
   4.914 -    case 62: arg4 = stack.pop() // 54 4
   4.915 -    case 64: stack.push(arg3); // 29
   4.916 -    case 65: { var v0 = stack.pop(); stack.push(java_lang_Character_toUpperCaseExII(v0)); } // 184 1 108
   4.917 -    case 68: arg5 = stack.pop() // 54 5
   4.918 -    case 70: stack.push(arg5); // 21 5
   4.919 -    case 72:  // 2
   4.920 -    case 73: if (stack.pop() == stack.pop()) { gt = 95; continue; } // 159 0 22
   4.921 -    case 76: stack.push(arg3); // 29
   4.922 -    case 77: stack.push(arg5); // 21 5
   4.923 -    case 79: if (stack.pop() == stack.pop()) { gt = 85; continue; } // 159 0 6
   4.924 -    case 82: gt = 95; continue; // 167 0 13
   4.925 -    case 85: stack.push(arg2); // 28
   4.926 -    case 86: stack.push(arg4); // 21 4
   4.927 -    case 88: stack.push(stack.pop() + stack.pop()); // 96
   4.928 -    case 89: arg2 = stack.pop(); // 61
   4.929 -    case 90: gt = 14; continue; // 167 255 180
   4.930 -    case 93: stack.push(arg0); // 42
   4.931 -    case 94: return stack.pop(); // 176
   4.932 -    case 95: stack.push(arg0); // 42
   4.933 -    case 96: stack.push(stack.pop().count); // 180 1 97
   4.934 -    case 99: stack.push(new Array(stack.pop())); // 188 5
   4.935 -    case 101: arg3 = stack.pop(); // 78
   4.936 -    case 102: stack.push(0); // 3
   4.937 -    case 103: arg4 = stack.pop() // 54 4
   4.938 -    case 105: stack.push(arg0); // 42
   4.939 -    case 106: stack.push(stack.pop().value); // 180 1 100
   4.940 -    case 109: stack.push(arg0); // 42
   4.941 -    case 110: stack.push(stack.pop().offset); // 180 1 99
   4.942 -    case 113: stack.push(arg3); // 45
   4.943 -    case 114: stack.push(0); // 3
   4.944 -    case 115: stack.push(arg2); // 28
   4.945 -    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
   4.946 -    case 119: stack.push(arg1); // 43
   4.947 -    case 120: { var self = stack.pop(); stack.push(self.getLanguageLjava_lang_String(self)); } // 182 1 178
   4.948 -    case 123: arg5 = stack.pop() // 58 5
   4.949 -    case 125: stack.push(arg5); // 25 5
   4.950 -    case 127: stack.push("tr"); // 18 11
   4.951 -    case 129:  // 165
   4.952 -    case 130:  // 0
   4.953 -    case 131: stack.push(6405); // 17 25 5
   4.954 -    case 134: stack.push("az"); // 18 5
   4.955 -    case 136:  // 165
   4.956 -    case 137:  // 0
   4.957 -    case 138: stack.push(1); // 10
   4.958 -    case 139: stack.push(arg5); // 25 5
   4.959 -    case 141: stack.push("lt"); // 18 9
   4.960 -    case 143:  // 166
   4.961 -    case 144:  // 0
   4.962 -    case 145: stack.push(4); // 7
   4.963 -    case 146: stack.push(1); // 4
   4.964 -    case 147: gt = 151; continue; // 167 0 4
   4.965 -    case 150: stack.push(0); // 3
   4.966 -    case 151: arg6 = stack.pop() // 54 6
   4.967 -    case 153: stack.push(arg2); // 28
   4.968 -    case 154: arg11 = stack.pop() // 54 11
   4.969 -    case 156: stack.push(arg11); // 21 11
   4.970 -    case 158: stack.push(arg0); // 42
   4.971 -    case 159: stack.push(stack.pop().count); // 180 1 97
   4.972 -    case 162: if (stack.pop() <= stack.pop()) { gt = 425; continue; } // 162 1 7
   4.973 -    case 165: stack.push(arg0); // 42
   4.974 -    case 166: stack.push(stack.pop().value); // 180 1 100
   4.975 -    case 169: stack.push(arg0); // 42
   4.976 -    case 170: stack.push(stack.pop().offset); // 180 1 99
   4.977 -    case 173: stack.push(arg11); // 21 11
   4.978 -    case 175: stack.push(stack.pop() + stack.pop()); // 96
   4.979 -    case 176: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
   4.980 -    case 177: arg9 = stack.pop() // 54 9
   4.981 -    case 179: stack.push(arg9); // 21 9
   4.982 -    case 181: // number conversion  // 146
   4.983 -    case 182: stack.push(55296); // 18 1
   4.984 -    case 184: if (stack.pop() > stack.pop()) { gt = 213; continue; } // 161 0 29
   4.985 -    case 187: stack.push(arg9); // 21 9
   4.986 -    case 189: // number conversion  // 146
   4.987 -    case 190: stack.push(56319); // 18 2
   4.988 -    case 192: if (stack.pop() < stack.pop()) { gt = 213; continue; } // 163 0 21
   4.989 -    case 195: stack.push(arg0); // 42
   4.990 -    case 196: stack.push(arg11); // 21 11
   4.991 -    case 198: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.codePointAtII(self, v0)); } // 182 1 134
   4.992 -    case 201: arg9 = stack.pop() // 54 9
   4.993 -    case 203: stack.push(arg9); // 21 9
   4.994 -    case 205: { var v0 = stack.pop(); stack.push(java_lang_Character_charCountII(v0)); } // 184 1 106
   4.995 -    case 208: arg10 = stack.pop() // 54 10
   4.996 -    case 210: gt = 216; continue; // 167 0 6
   4.997 -    case 213: stack.push(1); // 4
   4.998 -    case 214: arg10 = stack.pop() // 54 10
   4.999 -    case 216: stack.push(arg6); // 21 6
  4.1000 -    case 218: if (stack.pop() == 0) { gt = 233; continue; } // 153 0 15
  4.1001 -    case 221: stack.push(arg0); // 42
  4.1002 -    case 222: stack.push(arg11); // 21 11
  4.1003 -    case 224: stack.push(arg1); // 43
  4.1004 -    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
  4.1005 -    case 228: arg8 = stack.pop() // 54 8
  4.1006 -    case 230: gt = 240; continue; // 167 0 10
  4.1007 -    case 233: stack.push(arg9); // 21 9
  4.1008 -    case 235: { var v0 = stack.pop(); stack.push(java_lang_Character_toUpperCaseExII(v0)); } // 184 1 108
  4.1009 -    case 238: arg8 = stack.pop() // 54 8
  4.1010 -    case 240: stack.push(arg8); // 21 8
  4.1011 -    case 242:  // 2
  4.1012 -    case 243: if (stack.pop() == stack.pop()) { gt = 253; continue; } // 159 0 10
  4.1013 -    case 246: stack.push(arg8); // 21 8
  4.1014 -    case 248: stack.push(65536); // 18 3
  4.1015 -    case 250: if (stack.pop() > stack.pop()) { gt = 405; continue; } // 161 0 155
  4.1016 -    case 253: stack.push(arg8); // 21 8
  4.1017 -    case 255:  // 2
  4.1018 -    case 256: if (stack.pop() != stack.pop()) { gt = 286; continue; } // 160 0 30
  4.1019 -    case 259: stack.push(arg6); // 21 6
  4.1020 -    case 261: if (stack.pop() == 0) { gt = 276; continue; } // 153 0 15
  4.1021 -    case 264: stack.push(arg0); // 42
  4.1022 -    case 265: stack.push(arg11); // 21 11
  4.1023 -    case 267: stack.push(arg1); // 43
  4.1024 -    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
  4.1025 -    case 271: arg7 = stack.pop() // 58 7
  4.1026 -    case 273: gt = 321; continue; // 167 0 48
  4.1027 -    case 276: stack.push(arg9); // 21 9
  4.1028 -    case 278: { var v0 = stack.pop(); stack.push(java_lang_Character_toUpperCaseCharArrayACI(v0)); } // 184 1 110
  4.1029 -    case 281: arg7 = stack.pop() // 58 7
  4.1030 -    case 283: gt = 321; continue; // 167 0 38
  4.1031 -    case 286: stack.push(arg10); // 21 10
  4.1032 -    case 288: stack.push(2); // 5
  4.1033 -    case 289: if (stack.pop() != stack.pop()) { gt = 314; continue; } // 160 0 25
  4.1034 -    case 292: stack.push(arg4); // 21 4
  4.1035 -    case 294: stack.push(arg8); // 21 8
  4.1036 -    case 296: stack.push(arg3); // 45
  4.1037 -    case 297: stack.push(arg11); // 21 11
  4.1038 -    case 299: stack.push(arg4); // 21 4
  4.1039 -    case 301: stack.push(stack.pop() + stack.pop()); // 96
  4.1040 -    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
  4.1041 -    case 305: stack.push(arg10); // 21 10
  4.1042 -    case 307: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1043 -    case 308: stack.push(stack.pop() + stack.pop()); // 96
  4.1044 -    case 309: arg4 = stack.pop() // 54 4
  4.1045 -    case 311: gt = 415; continue; // 167 0 104
  4.1046 -    case 314: stack.push(arg8); // 21 8
  4.1047 -    case 316: { var v0 = stack.pop(); stack.push(java_lang_Character_toCharsACI(v0)); } // 184 1 109
  4.1048 -    case 319: arg7 = stack.pop() // 58 7
  4.1049 -    case 321: stack.push(arg7); // 25 7
  4.1050 -    case 323: stack.push(stack.pop().length); // 190
  4.1051 -    case 324: arg12 = stack.pop() // 54 12
  4.1052 -    case 326: stack.push(arg12); // 21 12
  4.1053 -    case 328: stack.push(arg10); // 21 10
  4.1054 -    case 330: if (stack.pop() >= stack.pop()) { gt = 361; continue; } // 164 0 31
  4.1055 -    case 333: stack.push(arg3); // 45
  4.1056 -    case 334: stack.push(stack.pop().length); // 190
  4.1057 -    case 335: stack.push(arg12); // 21 12
  4.1058 -    case 337: stack.push(stack.pop() + stack.pop()); // 96
  4.1059 -    case 338: stack.push(arg10); // 21 10
  4.1060 -    case 340: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1061 -    case 341: stack.push(new Array(stack.pop())); // 188 5
  4.1062 -    case 343: arg13 = stack.pop() // 58 13
  4.1063 -    case 345: stack.push(arg3); // 45
  4.1064 -    case 346: stack.push(0); // 3
  4.1065 -    case 347: stack.push(arg13); // 25 13
  4.1066 -    case 349: stack.push(0); // 3
  4.1067 -    case 350: stack.push(arg11); // 21 11
  4.1068 -    case 352: stack.push(arg4); // 21 4
  4.1069 -    case 354: stack.push(stack.pop() + stack.pop()); // 96
  4.1070 -    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
  4.1071 -    case 358: stack.push(arg13); // 25 13
  4.1072 -    case 360: arg3 = stack.pop(); // 78
  4.1073 -    case 361: stack.push(0); // 3
  4.1074 -    case 362: arg13 = stack.pop() // 54 13
  4.1075 -    case 364: stack.push(arg13); // 21 13
  4.1076 -    case 366: stack.push(arg12); // 21 12
  4.1077 -    case 368: if (stack.pop() <= stack.pop()) { gt = 392; continue; } // 162 0 24
  4.1078 -    case 371: stack.push(arg3); // 45
  4.1079 -    case 372: stack.push(arg11); // 21 11
  4.1080 -    case 374: stack.push(arg4); // 21 4
  4.1081 -    case 376: stack.push(stack.pop() + stack.pop()); // 96
  4.1082 -    case 377: stack.push(arg13); // 21 13
  4.1083 -    case 379: stack.push(stack.pop() + stack.pop()); // 96
  4.1084 -    case 380: stack.push(arg7); // 25 7
  4.1085 -    case 382: stack.push(arg13); // 21 13
  4.1086 -    case 384: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1087 -    case 385: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
  4.1088 -    case 386: arg13++; // 132 13 1
  4.1089 -    case 389: gt = 364; continue; // 167 255 231
  4.1090 -    case 392: stack.push(arg4); // 21 4
  4.1091 -    case 394: stack.push(arg12); // 21 12
  4.1092 -    case 396: stack.push(arg10); // 21 10
  4.1093 -    case 398: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1094 -    case 399: stack.push(stack.pop() + stack.pop()); // 96
  4.1095 -    case 400: arg4 = stack.pop() // 54 4
  4.1096 -    case 402: gt = 415; continue; // 167 0 13
  4.1097 -    case 405: stack.push(arg3); // 45
  4.1098 -    case 406: stack.push(arg11); // 21 11
  4.1099 -    case 408: stack.push(arg4); // 21 4
  4.1100 -    case 410: stack.push(stack.pop() + stack.pop()); // 96
  4.1101 -    case 411: stack.push(arg8); // 21 8
  4.1102 -    case 413: // number conversion  // 146
  4.1103 -    case 414: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
  4.1104 -    case 415: stack.push(arg11); // 21 11
  4.1105 -    case 417: stack.push(arg10); // 21 10
  4.1106 -    case 419: stack.push(stack.pop() + stack.pop()); // 96
  4.1107 -    case 420: arg11 = stack.pop() // 54 11
  4.1108 -    case 422: gt = 156; continue; // 167 254 246
  4.1109 -    case 425: stack.push(new java_lang_String); // 187 0 200
  4.1110 -    case 428: stack.push(stack[stack.length - 1]); // 89
  4.1111 -    case 429: stack.push(0); // 3
  4.1112 -    case 430: stack.push(arg0); // 42
  4.1113 -    case 431: stack.push(stack.pop().count); // 180 1 97
  4.1114 -    case 434: stack.push(arg4); // 21 4
  4.1115 -    case 436: stack.push(stack.pop() + stack.pop()); // 96
  4.1116 -    case 437: stack.push(arg3); // 45
  4.1117 -    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
  4.1118 -    case 441: return stack.pop(); // 176
  4.1119 -  }
  4.1120 -}
  4.1121 -function java_lang_String_toUpperCaseLjava_lang_String(arg0) {
  4.1122 -  var arg1;
  4.1123 -;
  4.1124 -  var stack = new Array(2);
  4.1125 -  var gt = 0;
  4.1126 -  for(;;) switch(gt) {
  4.1127 -    case 0: stack.push(arg0); // 42
  4.1128 -    case 1: { stack.push(java_util_Locale_getDefaultLjava_util_Locale()); } // 184 1 179
  4.1129 -    case 4: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.toUpperCaseLjava_lang_StringLjava_util_Locale(self, v0)); } // 182 1 159
  4.1130 -    case 7: return stack.pop(); // 176
  4.1131 -  }
  4.1132 -}
  4.1133 -function java_lang_String_trimLjava_lang_String(arg0) {
  4.1134 -  var arg1;
  4.1135 -  var arg2;
  4.1136 -  var arg3;
  4.1137 -  var arg4;
  4.1138 -  var arg5;
  4.1139 -;
  4.1140 -  var stack = new Array(3);
  4.1141 -  var gt = 0;
  4.1142 -  for(;;) switch(gt) {
  4.1143 -    case 0: stack.push(arg0); // 42
  4.1144 -    case 1: stack.push(stack.pop().count); // 180 1 97
  4.1145 -    case 4: arg1 = stack.pop(); // 60
  4.1146 -    case 5: stack.push(0); // 3
  4.1147 -    case 6: arg2 = stack.pop(); // 61
  4.1148 -    case 7: stack.push(arg0); // 42
  4.1149 -    case 8: stack.push(stack.pop().offset); // 180 1 99
  4.1150 -    case 11: arg3 = stack.pop(); // 62
  4.1151 -    case 12: stack.push(arg0); // 42
  4.1152 -    case 13: stack.push(stack.pop().value); // 180 1 100
  4.1153 -    case 16: arg4 = stack.pop() // 58 4
  4.1154 -    case 18: stack.push(arg2); // 28
  4.1155 -    case 19: stack.push(arg1); // 27
  4.1156 -    case 20: if (stack.pop() <= stack.pop()) { gt = 40; continue; } // 162 0 20
  4.1157 -    case 23: stack.push(arg4); // 25 4
  4.1158 -    case 25: stack.push(arg3); // 29
  4.1159 -    case 26: stack.push(arg2); // 28
  4.1160 -    case 27: stack.push(stack.pop() + stack.pop()); // 96
  4.1161 -    case 28: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1162 -    case 29: stack.push(32); // 16 32
  4.1163 -    case 31: if (stack.pop() < stack.pop()) { gt = 40; continue; } // 163 0 9
  4.1164 -    case 34: arg2++; // 132 2 1
  4.1165 -    case 37: gt = 18; continue; // 167 255 237
  4.1166 -    case 40: stack.push(arg2); // 28
  4.1167 -    case 41: stack.push(arg1); // 27
  4.1168 -    case 42: if (stack.pop() <= stack.pop()) { gt = 64; continue; } // 162 0 22
  4.1169 -    case 45: stack.push(arg4); // 25 4
  4.1170 -    case 47: stack.push(arg3); // 29
  4.1171 -    case 48: stack.push(arg1); // 27
  4.1172 -    case 49: stack.push(stack.pop() + stack.pop()); // 96
  4.1173 -    case 50: stack.push(1); // 4
  4.1174 -    case 51: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1175 -    case 52: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1176 -    case 53: stack.push(32); // 16 32
  4.1177 -    case 55: if (stack.pop() < stack.pop()) { gt = 64; continue; } // 163 0 9
  4.1178 -    case 58: arg1 += 255; // 132 1 255
  4.1179 -    case 61: gt = 40; continue; // 167 255 235
  4.1180 -    case 64: stack.push(arg2); // 28
  4.1181 -    case 65: if (stack.pop() > 0) { gt = 76; continue; } // 157 0 11
  4.1182 -    case 68: stack.push(arg1); // 27
  4.1183 -    case 69: stack.push(arg0); // 42
  4.1184 -    case 70: stack.push(stack.pop().count); // 180 1 97
  4.1185 -    case 73: if (stack.pop() <= stack.pop()) { gt = 85; continue; } // 162 0 12
  4.1186 -    case 76: stack.push(arg0); // 42
  4.1187 -    case 77: stack.push(arg2); // 28
  4.1188 -    case 78: stack.push(arg1); // 27
  4.1189 -    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
  4.1190 -    case 82: gt = 86; continue; // 167 0 4
  4.1191 -    case 85: stack.push(arg0); // 42
  4.1192 -    case 86: return stack.pop(); // 176
  4.1193 -  }
  4.1194 -}
  4.1195 -*/
  4.1196 -
  4.1197 -/*
  4.1198 -function java_lang_String_formatLjava_lang_StringLjava_lang_StringLjava_lang_Object(arg0,arg1) {
  4.1199 -  var stack = new Array();
  4.1200 -  var gt = 0;
  4.1201 -  for(;;) switch(gt) {
  4.1202 -    case 0: stack.push(new java_util_Formatter); // 187 0 211
  4.1203 -    case 3: stack.push(stack[stack.length - 1]); // 89
  4.1204 -    case 4: { java_util_Formatter_consV(stack.pop()); } // 183 1 174
  4.1205 -    case 7: stack.push(arg0); // 42
  4.1206 -    case 8: stack.push(arg1); // 43
  4.1207 -    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
  4.1208 -    case 12: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 175
  4.1209 -    case 15: return stack.pop(); // 176
  4.1210 -  }
  4.1211 -}
  4.1212 -function java_lang_String_formatLjava_lang_StringLjava_util_LocaleLjava_lang_StringLjava_lang_Object(arg0,arg1,arg2) {
  4.1213 -  var stack = new Array();
  4.1214 -  var gt = 0;
  4.1215 -  for(;;) switch(gt) {
  4.1216 -    case 0: stack.push(new java_util_Formatter); // 187 0 211
  4.1217 -    case 3: stack.push(stack[stack.length - 1]); // 89
  4.1218 -    case 4: stack.push(arg0); // 42
  4.1219 -    case 5: { var v0 = stack.pop(); java_util_Formatter_consVLjava_util_Locale(stack.pop(), v0); } // 183 1 176
  4.1220 -    case 8: stack.push(arg1); // 43
  4.1221 -    case 9: stack.push(arg2); // 44
  4.1222 -    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
  4.1223 -    case 13: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 175
  4.1224 -    case 16: return stack.pop(); // 176
  4.1225 -  }
  4.1226 -}
  4.1227 -function java_lang_String_valueOfLjava_lang_StringLjava_lang_Object(arg0) {
  4.1228 -  var stack = new Array();
  4.1229 -  var gt = 0;
  4.1230 -  for(;;) switch(gt) {
  4.1231 -    case 0: stack.push(arg0); // 42
  4.1232 -    case 1: if (stack.pop()) { gt = 9; continue; } // 199 0 8
  4.1233 -    case 4: stack.push("null"); // 18 10
  4.1234 -    case 6: gt = 13; continue; // 167 0 7
  4.1235 -    case 9: stack.push(arg0); // 42
  4.1236 -    case 10: { var self = stack.pop(); stack.push(self.toStringLjava_lang_String(self)); } // 182 1 132
  4.1237 -    case 13: return stack.pop(); // 176
  4.1238 -  }
  4.1239 -}
  4.1240 -function java_lang_String_valueOfLjava_lang_StringAC(arg0) {
  4.1241 -  var stack = new Array();
  4.1242 -  var gt = 0;
  4.1243 -  for(;;) switch(gt) {
  4.1244 -    case 0: stack.push(new java_lang_String); // 187 0 200
  4.1245 -    case 3: stack.push(stack[stack.length - 1]); // 89
  4.1246 -    case 4: stack.push(arg0); // 42
  4.1247 -    case 5: { var v0 = stack.pop(); java_lang_String_consVAC(stack.pop(), v0); } // 183 1 142
  4.1248 -    case 8: return stack.pop(); // 176
  4.1249 -  }
  4.1250 -}
  4.1251 -function java_lang_String_valueOfLjava_lang_StringACII(arg0,arg1,arg2) {
  4.1252 -  var stack = new Array();
  4.1253 -  var gt = 0;
  4.1254 -  for(;;) switch(gt) {
  4.1255 -    case 0: stack.push(new java_lang_String); // 187 0 200
  4.1256 -    case 3: stack.push(stack[stack.length - 1]); // 89
  4.1257 -    case 4: stack.push(arg0); // 42
  4.1258 -    case 5: stack.push(arg1); // 27
  4.1259 -    case 6: stack.push(arg2); // 28
  4.1260 -    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
  4.1261 -    case 10: return stack.pop(); // 176
  4.1262 -  }
  4.1263 -}
  4.1264 -function java_lang_String_copyValueOfLjava_lang_StringACII(arg0,arg1,arg2) {
  4.1265 -  var stack = new Array();
  4.1266 -  var gt = 0;
  4.1267 -  for(;;) switch(gt) {
  4.1268 -    case 0: stack.push(new java_lang_String); // 187 0 200
  4.1269 -    case 3: stack.push(stack[stack.length - 1]); // 89
  4.1270 -    case 4: stack.push(arg0); // 42
  4.1271 -    case 5: stack.push(arg1); // 27
  4.1272 -    case 6: stack.push(arg2); // 28
  4.1273 -    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
  4.1274 -    case 10: return stack.pop(); // 176
  4.1275 -  }
  4.1276 -}
  4.1277 -function java_lang_String_copyValueOfLjava_lang_StringAC(arg0) {
  4.1278 -  var stack = new Array();
  4.1279 -  var gt = 0;
  4.1280 -  for(;;) switch(gt) {
  4.1281 -    case 0: stack.push(arg0); // 42
  4.1282 -    case 1: stack.push(0); // 3
  4.1283 -    case 2: stack.push(arg0); // 42
  4.1284 -    case 3: stack.push(stack.pop().length); // 190
  4.1285 -    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
  4.1286 -    case 7: return stack.pop(); // 176
  4.1287 -  }
  4.1288 -}
  4.1289 -function java_lang_String_valueOfLjava_lang_StringZ(arg0) {
  4.1290 -  var stack = new Array();
  4.1291 -  var gt = 0;
  4.1292 -  for(;;) switch(gt) {
  4.1293 -    case 0: stack.push(arg0); // 26
  4.1294 -    case 1: if (stack.pop() == 0) { gt = 9; continue; } // 153 0 8
  4.1295 -    case 4: stack.push("true"); // 18 12
  4.1296 -    case 6: gt = 11; continue; // 167 0 5
  4.1297 -    case 9: stack.push("false"); // 18 8
  4.1298 -    case 11: return stack.pop(); // 176
  4.1299 -  }
  4.1300 -}
  4.1301 -function java_lang_String_valueOfLjava_lang_StringC(arg0) {
  4.1302 -  var arg1;
  4.1303 -  var stack = new Array();
  4.1304 -  var gt = 0;
  4.1305 -  for(;;) switch(gt) {
  4.1306 -    case 0: stack.push(1); // 4
  4.1307 -    case 1: stack.push(new Array(stack.pop())); // 188 5
  4.1308 -    case 3: stack.push(stack[stack.length - 1]); // 89
  4.1309 -    case 4: stack.push(0); // 3
  4.1310 -    case 5: stack.push(arg0); // 26
  4.1311 -    case 6: { var value = stack.pop(); var indx = stack.pop(); stack.pop()[indx] = value; } // 85
  4.1312 -    case 7: arg1 = stack.pop(); // 76
  4.1313 -    case 8: stack.push(new java_lang_String); // 187 0 200
  4.1314 -    case 11: stack.push(stack[stack.length - 1]); // 89
  4.1315 -    case 12: stack.push(0); // 3
  4.1316 -    case 13: stack.push(1); // 4
  4.1317 -    case 14: stack.push(arg1); // 43
  4.1318 -    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
  4.1319 -    case 18: return stack.pop(); // 176
  4.1320 -  }
  4.1321 -}
  4.1322 -function java_lang_String_valueOfLjava_lang_StringJ(arg0) {
  4.1323 -  var arg1;
  4.1324 -  var stack = new Array();
  4.1325 -  var gt = 0;
  4.1326 -  for(;;) switch(gt) {
  4.1327 -    case 0: stack.push(arg0); // 30
  4.1328 -    case 1: stack.push(10); // 16 10
  4.1329 -    case 3: { var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Long_toStringLjava_lang_StringJI(v0, v1)); } // 184 1 126
  4.1330 -    case 6: return stack.pop(); // 176
  4.1331 -  }
  4.1332 -}
  4.1333 -function java_lang_String_valueOfLjava_lang_StringF(arg0) {
  4.1334 -  var stack = new Array();
  4.1335 -  var gt = 0;
  4.1336 -  for(;;) switch(gt) {
  4.1337 -    case 0: stack.push(arg0); // 34
  4.1338 -    case 1: { var v0 = stack.pop(); stack.push(java_lang_Float_toStringLjava_lang_StringF(v0)); } // 184 1 122
  4.1339 -    case 4: return stack.pop(); // 176
  4.1340 -  }
  4.1341 -}
  4.1342 -function java_lang_String_valueOfLjava_lang_StringD(arg0) {
  4.1343 -  var arg1;
  4.1344 -  var stack = new Array();
  4.1345 -  var gt = 0;
  4.1346 -  for(;;) switch(gt) {
  4.1347 -    case 0: stack.push(arg0); // 38
  4.1348 -    case 1: { var v0 = stack.pop(); stack.push(java_lang_Double_toStringLjava_lang_StringD(v0)); } // 184 1 121
  4.1349 -    case 4: return stack.pop(); // 176
  4.1350 -  }
  4.1351 -}
  4.1352 -function java_lang_String_internLjava_lang_String(arg0) {
  4.1353 -  // no code found for null 
  4.1354 -}
  4.1355 -function java_lang_String_compareToILjava_lang_Object(arg0,arg1) {
  4.1356 -  var arg2;
  4.1357 -;
  4.1358 -  var stack = new Array(2);
  4.1359 -  var gt = 0;
  4.1360 -  for(;;) switch(gt) {
  4.1361 -    case 0: stack.push(arg0); // 42
  4.1362 -    case 1: stack.push(arg1); // 43
  4.1363 -    case 2: if(stack[stack.length - 1].$instOf_java_lang_String != 1) throw {}; // 192 0 200
  4.1364 -    case 5: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.compareToILjava_lang_String(self, v0)); } // 182 1 148
  4.1365 -    case 8: return stack.pop(); // 172
  4.1366 -  }
  4.1367 -}
  4.1368 -function java_lang_String_classV() {
  4.1369 -  var stack = new Array();
  4.1370 -  var gt = 0;
  4.1371 -  for(;;) switch(gt) {
  4.1372 -    case 0: stack.push(0); // 3
  4.1373 -    case 1: stack.push(new Array(stack.pop())); // 189 0 183
  4.1374 -    case 4: java_lang_String_serialPersistentFields = stack.pop(); // 179 1 101
  4.1375 -    case 7: stack.push(new java_lang_String$CaseInsensitiveComparator); // 187 0 202
  4.1376 -    case 10: stack.push(stack[stack.length - 1]); // 89
  4.1377 -    case 11:  // 1
  4.1378 -    case 12: { var v0 = stack.pop(); java_lang_String$CaseInsensitiveComparator_consVLjava_lang_String$1(stack.pop(), v0); } // 183 1 160
  4.1379 -    case 15: java_lang_String_CASE_INSENSITIVE_ORDER = stack.pop(); // 179 1 102
  4.1380 -    case 18: return; // 177
  4.1381 -  }
  4.1382 -}
  4.1383 -*/
  4.1384 -
  4.1385 -/*
  4.1386 -function java_lang_String_contentEqualsZLjava_lang_StringBuffer(arg0,arg1) {
  4.1387 -  var arg2;
  4.1388 -  var arg3;
  4.1389 -  var arg4;
  4.1390 -;
  4.1391 -  var stack = new Array(2);
  4.1392 -  var gt = 0;
  4.1393 -  for(;;) switch(gt) {
  4.1394 -    case 0: stack.push(arg1); // 43
  4.1395 -    case 1: stack.push(stack[stack.length - 1]); // 89
  4.1396 -    case 2: arg2 = stack.pop(); // 77
  4.1397 -    case 3:  // 194
  4.1398 -    case 4: stack.push(arg0); // 42
  4.1399 -    case 5: stack.push(arg1); // 43
  4.1400 -    case 6: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.contentEqualsZLjava_lang_CharSequence(self, v0)); } // 182 1 146
  4.1401 -    case 9: stack.push(arg2); // 44
  4.1402 -    case 10:  // 195
  4.1403 -    case 11: return stack.pop(); // 172
  4.1404 -    case 12: arg3 = stack.pop(); // 78
  4.1405 -    case 13: stack.push(arg2); // 44
  4.1406 -    case 14:  // 195
  4.1407 -    case 15: stack.push(arg3); // 45
  4.1408 -    case 16:  // 191
  4.1409 -  }
  4.1410 -}
  4.1411 -function java_lang_String_contentEqualsZLjava_lang_CharSequence(arg0,arg1) {
  4.1412 -  var arg2;
  4.1413 -  var arg3;
  4.1414 -  var arg4;
  4.1415 -  var arg5;
  4.1416 -  var arg6;
  4.1417 -  var arg7;
  4.1418 -;
  4.1419 -  var stack = new Array(3);
  4.1420 -  var gt = 0;
  4.1421 -  for(;;) switch(gt) {
  4.1422 -    case 0: stack.push(arg0); // 42
  4.1423 -    case 1: stack.push(stack.pop().count); // 180 1 97
  4.1424 -    case 4: stack.push(arg1); // 43
  4.1425 -    case 5: { var self = stack.pop(); stack.push(self.lengthI(self)); } // 185 1 188
  4.1426 -    case 8:  // 1
  4.1427 -    case 9:  // 0
  4.1428 -    case 10: if (stack.pop() == stack.pop()) { gt = 15; continue; } // 159 0 5
  4.1429 -    case 13: stack.push(0); // 3
  4.1430 -    case 14: return stack.pop(); // 172
  4.1431 -    case 15: stack.push(arg1); // 43
  4.1432 -    case 16: stack.push(stack.pop().$instOf_java_lang_AbstractStringBuilder ? 1 : 0); // 193 0 186
  4.1433 -    case 19: if (stack.pop() == 0) { gt = 77; continue; } // 153 0 58
  4.1434 -    case 22: stack.push(arg0); // 42
  4.1435 -    case 23: stack.push(stack.pop().value); // 180 1 100
  4.1436 -    case 26: arg2 = stack.pop(); // 77
  4.1437 -    case 27: stack.push(arg1); // 43
  4.1438 -    case 28: if(stack[stack.length - 1].$instOf_java_lang_AbstractStringBuilder != 1) throw {}; // 192 0 186
  4.1439 -    case 31: { var self = stack.pop(); stack.push(self.getValueAC(self)); } // 182 1 103
  4.1440 -    case 34: arg3 = stack.pop(); // 78
  4.1441 -    case 35: stack.push(arg0); // 42
  4.1442 -    case 36: stack.push(stack.pop().offset); // 180 1 99
  4.1443 -    case 39: arg4 = stack.pop() // 54 4
  4.1444 -    case 41: stack.push(0); // 3
  4.1445 -    case 42: arg5 = stack.pop() // 54 5
  4.1446 -    case 44: stack.push(arg0); // 42
  4.1447 -    case 45: stack.push(stack.pop().count); // 180 1 97
  4.1448 -    case 48: arg6 = stack.pop() // 54 6
  4.1449 -    case 50: stack.push(arg6); // 21 6
  4.1450 -    case 52: arg6 += 255; // 132 6 255
  4.1451 -    case 55: if (stack.pop() == 0) { gt = 77; continue; } // 153 0 22
  4.1452 -    case 58: stack.push(arg2); // 44
  4.1453 -    case 59: stack.push(arg4); // 21 4
  4.1454 -    case 61: arg4++; // 132 4 1
  4.1455 -    case 64: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1456 -    case 65: stack.push(arg3); // 45
  4.1457 -    case 66: stack.push(arg5); // 21 5
  4.1458 -    case 68: arg5++; // 132 5 1
  4.1459 -    case 71: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1460 -    case 72: if (stack.pop() == stack.pop()) { gt = 50; continue; } // 159 255 234
  4.1461 -    case 75: stack.push(0); // 3
  4.1462 -    case 76: return stack.pop(); // 172
  4.1463 -    case 77: stack.push(arg1); // 43
  4.1464 -    case 78: stack.push(arg0); // 42
  4.1465 -    case 79: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.equalsZLjava_lang_Object(self, v0)); } // 182 1 131
  4.1466 -    case 82: if (stack.pop() == 0) { gt = 87; continue; } // 153 0 5
  4.1467 -    case 85: stack.push(1); // 4
  4.1468 -    case 86: return stack.pop(); // 172
  4.1469 -    case 87: stack.push(arg0); // 42
  4.1470 -    case 88: stack.push(stack.pop().value); // 180 1 100
  4.1471 -    case 91: arg2 = stack.pop(); // 77
  4.1472 -    case 92: stack.push(arg0); // 42
  4.1473 -    case 93: stack.push(stack.pop().offset); // 180 1 99
  4.1474 -    case 96: arg3 = stack.pop(); // 62
  4.1475 -    case 97: stack.push(0); // 3
  4.1476 -    case 98: arg4 = stack.pop() // 54 4
  4.1477 -    case 100: stack.push(arg0); // 42
  4.1478 -    case 101: stack.push(stack.pop().count); // 180 1 97
  4.1479 -    case 104: arg5 = stack.pop() // 54 5
  4.1480 -    case 106: stack.push(arg5); // 21 5
  4.1481 -    case 108: arg5 += 255; // 132 5 255
  4.1482 -    case 111: if (stack.pop() == 0) { gt = 136; continue; } // 153 0 25
  4.1483 -    case 114: stack.push(arg2); // 44
  4.1484 -    case 115: stack.push(arg3); // 29
  4.1485 -    case 116: arg3++; // 132 3 1
  4.1486 -    case 119: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1487 -    case 120: stack.push(arg1); // 43
  4.1488 -    case 121: stack.push(arg4); // 21 4
  4.1489 -    case 123: arg4++; // 132 4 1
  4.1490 -    case 126: { var v0 = stack.pop(); var self = stack.pop(); stack.push(self.charAtCI(self, v0)); } // 185 1 189
  4.1491 -    case 129:  // 2
  4.1492 -    case 130:  // 0
  4.1493 -    case 131: if (stack.pop() == stack.pop()) { gt = 106; continue; } // 159 255 231
  4.1494 -    case 134: stack.push(0); // 3
  4.1495 -    case 135: return stack.pop(); // 172
  4.1496 -    case 136: stack.push(1); // 4
  4.1497 -    case 137: return stack.pop(); // 172
  4.1498 -  }
  4.1499 -}
  4.1500 -function java_lang_String_equalsIgnoreCaseZLjava_lang_String(arg0,arg1) {
  4.1501 -  var arg2;
  4.1502 -;
  4.1503 -  var stack = new Array(6);
  4.1504 -  var gt = 0;
  4.1505 -  for(;;) switch(gt) {
  4.1506 -    case 0: stack.push(arg0); // 42
  4.1507 -    case 1: stack.push(arg1); // 43
  4.1508 -    case 2:  // 166
  4.1509 -    case 3:  // 0
  4.1510 -    case 4: stack.push(4); // 7
  4.1511 -    case 5: stack.push(1); // 4
  4.1512 -    case 6: gt = 44; continue; // 167 0 38
  4.1513 -    case 9: stack.push(arg1); // 43
  4.1514 -    case 10: if (!stack.pop()) { gt = 43; continue; } // 198 0 33
  4.1515 -    case 13: stack.push(arg1); // 43
  4.1516 -    case 14: stack.push(stack.pop().count); // 180 1 97
  4.1517 -    case 17: stack.push(arg0); // 42
  4.1518 -    case 18: stack.push(stack.pop().count); // 180 1 97
  4.1519 -    case 21: if (stack.pop() != stack.pop()) { gt = 43; continue; } // 160 0 22
  4.1520 -    case 24: stack.push(arg0); // 42
  4.1521 -    case 25: stack.push(1); // 4
  4.1522 -    case 26: stack.push(0); // 3
  4.1523 -    case 27: stack.push(arg1); // 43
  4.1524 -    case 28: stack.push(0); // 3
  4.1525 -    case 29: stack.push(arg0); // 42
  4.1526 -    case 30: stack.push(stack.pop().count); // 180 1 97
  4.1527 -    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
  4.1528 -    case 36: if (stack.pop() == 0) { gt = 43; continue; } // 153 0 7
  4.1529 -    case 39: stack.push(1); // 4
  4.1530 -    case 40: gt = 44; continue; // 167 0 4
  4.1531 -    case 43: stack.push(0); // 3
  4.1532 -    case 44: return stack.pop(); // 172
  4.1533 -  }
  4.1534 -}
  4.1535 -function java_lang_String_compareToILjava_lang_String(arg0,arg1) {
  4.1536 -  var arg2;
  4.1537 -  var arg3;
  4.1538 -  var arg4;
  4.1539 -  var arg5;
  4.1540 -  var arg6;
  4.1541 -  var arg7;
  4.1542 -  var arg8;
  4.1543 -  var arg9;
  4.1544 -  var arg10;
  4.1545 -  var arg11;
  4.1546 -  var arg12;
  4.1547 -  var arg13;
  4.1548 -;
  4.1549 -  var stack = new Array(2);
  4.1550 -  var gt = 0;
  4.1551 -  for(;;) switch(gt) {
  4.1552 -    case 0: stack.push(arg0); // 42
  4.1553 -    case 1: stack.push(stack.pop().count); // 180 1 97
  4.1554 -    case 4: arg2 = stack.pop(); // 61
  4.1555 -    case 5: stack.push(arg1); // 43
  4.1556 -    case 6: stack.push(stack.pop().count); // 180 1 97
  4.1557 -    case 9: arg3 = stack.pop(); // 62
  4.1558 -    case 10: stack.push(arg2); // 28
  4.1559 -    case 11: stack.push(arg3); // 29
  4.1560 -    case 12: { var v1 = stack.pop(); var v0 = stack.pop(); stack.push(java_lang_Math_minIII(v0, v1)); } // 184 1 127
  4.1561 -    case 15: arg4 = stack.pop() // 54 4
  4.1562 -    case 17: stack.push(arg0); // 42
  4.1563 -    case 18: stack.push(stack.pop().value); // 180 1 100
  4.1564 -    case 21: arg5 = stack.pop() // 58 5
  4.1565 -    case 23: stack.push(arg1); // 43
  4.1566 -    case 24: stack.push(stack.pop().value); // 180 1 100
  4.1567 -    case 27: arg6 = stack.pop() // 58 6
  4.1568 -    case 29: stack.push(arg0); // 42
  4.1569 -    case 30: stack.push(stack.pop().offset); // 180 1 99
  4.1570 -    case 33: arg7 = stack.pop() // 54 7
  4.1571 -    case 35: stack.push(arg1); // 43
  4.1572 -    case 36: stack.push(stack.pop().offset); // 180 1 99
  4.1573 -    case 39: arg8 = stack.pop() // 54 8
  4.1574 -    case 41: stack.push(arg7); // 21 7
  4.1575 -    case 43: stack.push(arg8); // 21 8
  4.1576 -    case 45: if (stack.pop() != stack.pop()) { gt = 102; continue; } // 160 0 57
  4.1577 -    case 48: stack.push(arg7); // 21 7
  4.1578 -    case 50: arg9 = stack.pop() // 54 9
  4.1579 -    case 52: stack.push(arg4); // 21 4
  4.1580 -    case 54: stack.push(arg7); // 21 7
  4.1581 -    case 56: stack.push(stack.pop() + stack.pop()); // 96
  4.1582 -    case 57: arg10 = stack.pop() // 54 10
  4.1583 -    case 59: stack.push(arg9); // 21 9
  4.1584 -    case 61: stack.push(arg10); // 21 10
  4.1585 -    case 63: if (stack.pop() <= stack.pop()) { gt = 99; continue; } // 162 0 36
  4.1586 -    case 66: stack.push(arg5); // 25 5
  4.1587 -    case 68: stack.push(arg9); // 21 9
  4.1588 -    case 70: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1589 -    case 71: arg11 = stack.pop() // 54 11
  4.1590 -    case 73: stack.push(arg6); // 25 6
  4.1591 -    case 75: stack.push(arg9); // 21 9
  4.1592 -    case 77: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1593 -    case 78: arg12 = stack.pop() // 54 12
  4.1594 -    case 80: stack.push(arg11); // 21 11
  4.1595 -    case 82: stack.push(arg12); // 21 12
  4.1596 -    case 84: if (stack.pop() == stack.pop()) { gt = 93; continue; } // 159 0 9
  4.1597 -    case 87: stack.push(arg11); // 21 11
  4.1598 -    case 89: stack.push(arg12); // 21 12
  4.1599 -    case 91: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1600 -    case 92: return stack.pop(); // 172
  4.1601 -    case 93: arg9++; // 132 9 1
  4.1602 -    case 96: gt = 59; continue; // 167 255 219
  4.1603 -    case 99: gt = 146; continue; // 167 0 47
  4.1604 -    case 102: stack.push(arg4); // 21 4
  4.1605 -    case 104: arg4 += 255; // 132 4 255
  4.1606 -    case 107: if (stack.pop() == 0) { gt = 146; continue; } // 153 0 39
  4.1607 -    case 110: stack.push(arg5); // 25 5
  4.1608 -    case 112: stack.push(arg7); // 21 7
  4.1609 -    case 114: arg7++; // 132 7 1
  4.1610 -    case 117: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1611 -    case 118: arg9 = stack.pop() // 54 9
  4.1612 -    case 120: stack.push(arg6); // 25 6
  4.1613 -    case 122: stack.push(arg8); // 21 8
  4.1614 -    case 124: arg8++; // 132 8 1
  4.1615 -    case 127: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1616 -    case 128: arg10 = stack.pop() // 54 10
  4.1617 -    case 130: stack.push(arg9); // 21 9
  4.1618 -    case 132: stack.push(arg10); // 21 10
  4.1619 -    case 134: if (stack.pop() == stack.pop()) { gt = 143; continue; } // 159 0 9
  4.1620 -    case 137: stack.push(arg9); // 21 9
  4.1621 -    case 139: stack.push(arg10); // 21 10
  4.1622 -    case 141: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1623 -    case 142: return stack.pop(); // 172
  4.1624 -    case 143: gt = 102; continue; // 167 255 215
  4.1625 -    case 146: stack.push(arg2); // 28
  4.1626 -    case 147: stack.push(arg3); // 29
  4.1627 -    case 148: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1628 -    case 149: return stack.pop(); // 172
  4.1629 -  }
  4.1630 -}
  4.1631 -function java_lang_String_compareToIgnoreCaseILjava_lang_String(arg0,arg1) {
  4.1632 -  var arg2;
  4.1633 -;
  4.1634 -  var stack = new Array(3);
  4.1635 -  var gt = 0;
  4.1636 -  for(;;) switch(gt) {
  4.1637 -    case 0: stack.push(java_lang_String_CASE_INSENSITIVE_ORDER); // 178 1 102
  4.1638 -    case 3: stack.push(arg0); // 42
  4.1639 -    case 4: stack.push(arg1); // 43
  4.1640 -    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
  4.1641 -    case 8: stack.push(0); // 3
  4.1642 -    case 9:  // 0
  4.1643 -    case 10: return stack.pop(); // 172
  4.1644 -  }
  4.1645 -}
  4.1646 -function java_lang_String_regionMatchesZILjava_lang_StringII(arg0,arg1,arg2,arg3,arg4) {
  4.1647 -  var arg5;
  4.1648 -  var arg6;
  4.1649 -  var arg7;
  4.1650 -  var arg8;
  4.1651 -  var arg9;
  4.1652 -;
  4.1653 -  var stack = new Array(6);
  4.1654 -  var gt = 0;
  4.1655 -  for(;;) switch(gt) {
  4.1656 -    case 0: stack.push(arg0); // 42
  4.1657 -    case 1: stack.push(stack.pop().value); // 180 1 100
  4.1658 -    case 4: arg5 = stack.pop() // 58 5
  4.1659 -    case 6: stack.push(arg0); // 42
  4.1660 -    case 7: stack.push(stack.pop().offset); // 180 1 99
  4.1661 -    case 10: stack.push(arg1); // 27
  4.1662 -    case 11: stack.push(stack.pop() + stack.pop()); // 96
  4.1663 -    case 12: arg6 = stack.pop() // 54 6
  4.1664 -    case 14: stack.push(arg2); // 44
  4.1665 -    case 15: stack.push(stack.pop().value); // 180 1 100
  4.1666 -    case 18: arg7 = stack.pop() // 58 7
  4.1667 -    case 20: stack.push(arg2); // 44
  4.1668 -    case 21: stack.push(stack.pop().offset); // 180 1 99
  4.1669 -    case 24: stack.push(arg3); // 29
  4.1670 -    case 25: stack.push(stack.pop() + stack.pop()); // 96
  4.1671 -    case 26: arg8 = stack.pop() // 54 8
  4.1672 -    case 28: stack.push(arg3); // 29
  4.1673 -    case 29: if (stack.pop() < 0) { gt = 66; continue; } // 155 0 37
  4.1674 -    case 32: stack.push(arg1); // 27
  4.1675 -    case 33: if (stack.pop() < 0) { gt = 66; continue; } // 155 0 33
  4.1676 -    case 36: stack.push(arg1); // 27
  4.1677 -    case 37: // number conversion  // 133
  4.1678 -    case 38: stack.push(arg0); // 42
  4.1679 -    case 39: stack.push(stack.pop().count); // 180 1 97
  4.1680 -    case 42: // number conversion  // 133
  4.1681 -    case 43: stack.push(arg4); // 21 4
  4.1682 -    case 45: // number conversion  // 133
  4.1683 -    case 46: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 101
  4.1684 -    case 47: { var delta = stack.pop() - stack.pop(); stack.push(delta < 0 ?-1 : (delta == 0 ? 0 : 1)); } // 148
  4.1685 -    case 48: if (stack.pop() > 0) { gt = 66; continue; } // 157 0 18
  4.1686 -    case 51: stack.push(arg3); // 29
  4.1687 -    case 52: // number conversion  // 133
  4.1688 -    case 53: stack.push(arg2); // 44
  4.1689 -    case 54: stack.push(stack.pop().count); // 180 1 97
  4.1690 -    case 57: // number conversion  // 133
  4.1691 -    case 58: stack.push(arg4); // 21 4
  4.1692 -    case 60: // number conversion  // 133
  4.1693 -    case 61: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 101
  4.1694 -    case 62: { var delta = stack.pop() - stack.pop(); stack.push(delta < 0 ?-1 : (delta == 0 ? 0 : 1)); } // 148
  4.1695 -    case 63: if (stack.pop() <= 0) { gt = 68; continue; } // 158 0 5
  4.1696 -    case 66: stack.push(0); // 3
  4.1697 -    case 67: return stack.pop(); // 172
  4.1698 -    case 68: stack.push(arg4); // 21 4
  4.1699 -    case 70: arg4 += 255; // 132 4 255
  4.1700 -    case 73: if (stack.pop() <= 0) { gt = 97; continue; } // 158 0 24
  4.1701 -    case 76: stack.push(arg5); // 25 5
  4.1702 -    case 78: stack.push(arg6); // 21 6
  4.1703 -    case 80: arg6++; // 132 6 1
  4.1704 -    case 83: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1705 -    case 84: stack.push(arg7); // 25 7
  4.1706 -    case 86: stack.push(arg8); // 21 8
  4.1707 -    case 88: arg8++; // 132 8 1
  4.1708 -    case 91: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1709 -    case 92: if (stack.pop() == stack.pop()) { gt = 68; continue; } // 159 255 232
  4.1710 -    case 95: stack.push(0); // 3
  4.1711 -    case 96: return stack.pop(); // 172
  4.1712 -    case 97: stack.push(1); // 4
  4.1713 -    case 98: return stack.pop(); // 172
  4.1714 -  }
  4.1715 -}
  4.1716 -function java_lang_String_regionMatchesZZILjava_lang_StringII(arg0,arg1,arg2,arg3,arg4,arg5) {
  4.1717 -  var arg6;
  4.1718 -  var arg7;
  4.1719 -  var arg8;
  4.1720 -  var arg9;
  4.1721 -  var arg10;
  4.1722 -  var arg11;
  4.1723 -  var arg12;
  4.1724 -  var arg13;
  4.1725 -  var arg14;
  4.1726 -;
  4.1727 -  var stack = new Array(6);
  4.1728 -  var gt = 0;
  4.1729 -  for(;;) switch(gt) {
  4.1730 -    case 0: stack.push(arg0); // 42
  4.1731 -    case 1: stack.push(stack.pop().value); // 180 1 100
  4.1732 -    case 4: arg6 = stack.pop() // 58 6
  4.1733 -    case 6: stack.push(arg0); // 42
  4.1734 -    case 7: stack.push(stack.pop().offset); // 180 1 99
  4.1735 -    case 10: stack.push(arg2); // 28
  4.1736 -    case 11: stack.push(stack.pop() + stack.pop()); // 96
  4.1737 -    case 12: arg7 = stack.pop() // 54 7
  4.1738 -    case 14: stack.push(arg3); // 45
  4.1739 -    case 15: stack.push(stack.pop().value); // 180 1 100
  4.1740 -    case 18: arg8 = stack.pop() // 58 8
  4.1741 -    case 20: stack.push(arg3); // 45
  4.1742 -    case 21: stack.push(stack.pop().offset); // 180 1 99
  4.1743 -    case 24: stack.push(arg4); // 21 4
  4.1744 -    case 26: stack.push(stack.pop() + stack.pop()); // 96
  4.1745 -    case 27: arg9 = stack.pop() // 54 9
  4.1746 -    case 29: stack.push(arg4); // 21 4
  4.1747 -    case 31: if (stack.pop() < 0) { gt = 69; continue; } // 155 0 38
  4.1748 -    case 34: stack.push(arg2); // 28
  4.1749 -    case 35: if (stack.pop() < 0) { gt = 69; continue; } // 155 0 34
  4.1750 -    case 38: stack.push(arg2); // 28
  4.1751 -    case 39: // number conversion  // 133
  4.1752 -    case 40: stack.push(arg0); // 42
  4.1753 -    case 41: stack.push(stack.pop().count); // 180 1 97
  4.1754 -    case 44: // number conversion  // 133
  4.1755 -    case 45: stack.push(arg5); // 21 5
  4.1756 -    case 47: // number conversion  // 133
  4.1757 -    case 48: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 101
  4.1758 -    case 49: { var delta = stack.pop() - stack.pop(); stack.push(delta < 0 ?-1 : (delta == 0 ? 0 : 1)); } // 148
  4.1759 -    case 50: if (stack.pop() > 0) { gt = 69; continue; } // 157 0 19
  4.1760 -    case 53: stack.push(arg4); // 21 4
  4.1761 -    case 55: // number conversion  // 133
  4.1762 -    case 56: stack.push(arg3); // 45
  4.1763 -    case 57: stack.push(stack.pop().count); // 180 1 97
  4.1764 -    case 60: // number conversion  // 133
  4.1765 -    case 61: stack.push(arg5); // 21 5
  4.1766 -    case 63: // number conversion  // 133
  4.1767 -    case 64: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 101
  4.1768 -    case 65: { var delta = stack.pop() - stack.pop(); stack.push(delta < 0 ?-1 : (delta == 0 ? 0 : 1)); } // 148
  4.1769 -    case 66: if (stack.pop() <= 0) { gt = 71; continue; } // 158 0 5
  4.1770 -    case 69: stack.push(0); // 3
  4.1771 -    case 70: return stack.pop(); // 172
  4.1772 -    case 71: stack.push(arg5); // 21 5
  4.1773 -    case 73: arg5 += 255; // 132 5 255
  4.1774 -    case 76: if (stack.pop() <= 0) { gt = 155; continue; } // 158 0 79
  4.1775 -    case 79: stack.push(arg6); // 25 6
  4.1776 -    case 81: stack.push(arg7); // 21 7
  4.1777 -    case 83: arg7++; // 132 7 1
  4.1778 -    case 86: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1779 -    case 87: arg10 = stack.pop() // 54 10
  4.1780 -    case 89: stack.push(arg8); // 25 8
  4.1781 -    case 91: stack.push(arg9); // 21 9
  4.1782 -    case 93: arg9++; // 132 9 1
  4.1783 -    case 96: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1784 -    case 97: arg11 = stack.pop() // 54 11
  4.1785 -    case 99: stack.push(arg10); // 21 10
  4.1786 -    case 101: stack.push(arg11); // 21 11
  4.1787 -    case 103: if (stack.pop() != stack.pop()) { gt = 109; continue; } // 160 0 6
  4.1788 -    case 106: gt = 71; continue; // 167 255 221
  4.1789 -    case 109: stack.push(arg1); // 27
  4.1790 -    case 110: if (stack.pop() == 0) { gt = 153; continue; } // 153 0 43
  4.1791 -    case 113: stack.push(arg10); // 21 10
  4.1792 -    case 115: { var v0 = stack.pop(); stack.push(java_lang_Character_toUpperCaseCC(v0)); } // 184 1 105
  4.1793 -    case 118: arg12 = stack.pop() // 54 12
  4.1794 -    case 120: stack.push(arg11); // 21 11
  4.1795 -    case 122: { var v0 = stack.pop(); stack.push(java_lang_Character_toUpperCaseCC(v0)); } // 184 1 105
  4.1796 -    case 125: arg13 = stack.pop() // 54 13
  4.1797 -    case 127: stack.push(arg12); // 21 12
  4.1798 -    case 129: stack.push(arg13); // 21 13
  4.1799 -    case 131: if (stack.pop() != stack.pop()) { gt = 137; continue; } // 160 0 6
  4.1800 -    case 134: gt = 71; continue; // 167 255 193
  4.1801 -    case 137: stack.push(arg12); // 21 12
  4.1802 -    case 139: { var v0 = stack.pop(); stack.push(java_lang_Character_toLowerCaseCC(v0)); } // 184 1 104
  4.1803 -    case 142: stack.push(arg13); // 21 13
  4.1804 -    case 144: { var v0 = stack.pop(); stack.push(java_lang_Character_toLowerCaseCC(v0)); } // 184 1 104
  4.1805 -    case 147: if (stack.pop() != stack.pop()) { gt = 153; continue; } // 160 0 6
  4.1806 -    case 150: gt = 71; continue; // 167 255 177
  4.1807 -    case 153: stack.push(0); // 3
  4.1808 -    case 154: return stack.pop(); // 172
  4.1809 -    case 155: stack.push(1); // 4
  4.1810 -    case 156: return stack.pop(); // 172
  4.1811 -  }
  4.1812 -}
  4.1813 -function java_lang_String_startsWithZLjava_lang_StringI(arg0,arg1,arg2) {
  4.1814 -  var arg3;
  4.1815 -  var arg4;
  4.1816 -  var arg5;
  4.1817 -  var arg6;
  4.1818 -  var arg7;
  4.1819 -  var arg8;
  4.1820 -;
  4.1821 -  var stack = new Array(3);
  4.1822 -  var gt = 0;
  4.1823 -  for(;;) switch(gt) {
  4.1824 -    case 0: stack.push(arg0); // 42
  4.1825 -    case 1: stack.push(stack.pop().value); // 180 1 100
  4.1826 -    case 4: arg3 = stack.pop(); // 78
  4.1827 -    case 5: stack.push(arg0); // 42
  4.1828 -    case 6: stack.push(stack.pop().offset); // 180 1 99
  4.1829 -    case 9: stack.push(arg2); // 28
  4.1830 -    case 10: stack.push(stack.pop() + stack.pop()); // 96
  4.1831 -    case 11: arg4 = stack.pop() // 54 4
  4.1832 -    case 13: stack.push(arg1); // 43
  4.1833 -    case 14: stack.push(stack.pop().value); // 180 1 100
  4.1834 -    case 17: arg5 = stack.pop() // 58 5
  4.1835 -    case 19: stack.push(arg1); // 43
  4.1836 -    case 20: stack.push(stack.pop().offset); // 180 1 99
  4.1837 -    case 23: arg6 = stack.pop() // 54 6
  4.1838 -    case 25: stack.push(arg1); // 43
  4.1839 -    case 26: stack.push(stack.pop().count); // 180 1 97
  4.1840 -    case 29: arg7 = stack.pop() // 54 7
  4.1841 -    case 31: stack.push(arg2); // 28
  4.1842 -    case 32: if (stack.pop() < 0) { gt = 46; continue; } // 155 0 14
  4.1843 -    case 35: stack.push(arg2); // 28
  4.1844 -    case 36: stack.push(arg0); // 42
  4.1845 -    case 37: stack.push(stack.pop().count); // 180 1 97
  4.1846 -    case 40: stack.push(arg7); // 21 7
  4.1847 -    case 42: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1848 -    case 43: if (stack.pop() >= stack.pop()) { gt = 48; continue; } // 164 0 5
  4.1849 -    case 46: stack.push(0); // 3
  4.1850 -    case 47: return stack.pop(); // 172
  4.1851 -    case 48: arg7 += 255; // 132 7 255
  4.1852 -    case 51: stack.push(arg7); // 21 7
  4.1853 -    case 53: if (stack.pop() < 0) { gt = 76; continue; } // 155 0 23
  4.1854 -    case 56: stack.push(arg3); // 45
  4.1855 -    case 57: stack.push(arg4); // 21 4
  4.1856 -    case 59: arg4++; // 132 4 1
  4.1857 -    case 62: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1858 -    case 63: stack.push(arg5); // 25 5
  4.1859 -    case 65: stack.push(arg6); // 21 6
  4.1860 -    case 67: arg6++; // 132 6 1
  4.1861 -    case 70: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1862 -    case 71: if (stack.pop() == stack.pop()) { gt = 48; continue; } // 159 255 233
  4.1863 -    case 74: stack.push(0); // 3
  4.1864 -    case 75: return stack.pop(); // 172
  4.1865 -    case 76: stack.push(1); // 4
  4.1866 -    case 77: return stack.pop(); // 172
  4.1867 -  }
  4.1868 -}
  4.1869 -function java_lang_String_startsWithZLjava_lang_String(arg0,arg1) {
  4.1870 -  var arg2;
  4.1871 -;
  4.1872 -  var stack = new Array(3);
  4.1873 -  var gt = 0;
  4.1874 -  for(;;) switch(gt) {
  4.1875 -    case 0: stack.push(arg0); // 42
  4.1876 -    case 1: stack.push(arg1); // 43
  4.1877 -    case 2: stack.push(0); // 3
  4.1878 -    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
  4.1879 -    case 6: return stack.pop(); // 172
  4.1880 -  }
  4.1881 -}
  4.1882 -function java_lang_String_endsWithZLjava_lang_String(arg0,arg1) {
  4.1883 -  var arg2;
  4.1884 -;
  4.1885 -  var stack = new Array(4);
  4.1886 -  var gt = 0;
  4.1887 -  for(;;) switch(gt) {
  4.1888 -    case 0: stack.push(arg0); // 42
  4.1889 -    case 1: stack.push(arg1); // 43
  4.1890 -    case 2: stack.push(arg0); // 42
  4.1891 -    case 3: stack.push(stack.pop().count); // 180 1 97
  4.1892 -    case 6: stack.push(arg1); // 43
  4.1893 -    case 7: stack.push(stack.pop().count); // 180 1 97
  4.1894 -    case 10: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1895 -    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
  4.1896 -    case 14: return stack.pop(); // 172
  4.1897 -  }
  4.1898 -}
  4.1899 -function java_lang_String_lastIndexOfII(arg0,arg1) {
  4.1900 -  var arg2;
  4.1901 -;
  4.1902 -  var stack = new Array(4);
  4.1903 -  var gt = 0;
  4.1904 -  for(;;) switch(gt) {
  4.1905 -    case 0: stack.push(arg0); // 42
  4.1906 -    case 1: stack.push(arg1); // 27
  4.1907 -    case 2: stack.push(arg0); // 42
  4.1908 -    case 3: stack.push(stack.pop().count); // 180 1 97
  4.1909 -    case 6: stack.push(1); // 4
  4.1910 -    case 7: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1911 -    case 8: { var v1 = stack.pop(); var v0 = stack.pop(); var self = stack.pop(); stack.push(self.lastIndexOfIII(self, v0, v1)); } // 182 1 136
  4.1912 -    case 11: return stack.pop(); // 172
  4.1913 -  }
  4.1914 -}
  4.1915 -function java_lang_String_lastIndexOfIII(arg0,arg1,arg2) {
  4.1916 -  var arg3;
  4.1917 -  var arg4;
  4.1918 -  var arg5;
  4.1919 -  var arg6;
  4.1920 -  var arg7;
  4.1921 -  var arg8;
  4.1922 -;
  4.1923 -  var stack = new Array(3);
  4.1924 -  var gt = 0;
  4.1925 -  for(;;) switch(gt) {
  4.1926 -    case 0: stack.push(arg0); // 42
  4.1927 -    case 1: stack.push(stack.pop().offset); // 180 1 99
  4.1928 -    case 4: arg3 = stack.pop(); // 62
  4.1929 -    case 5: stack.push(arg0); // 42
  4.1930 -    case 6: stack.push(stack.pop().value); // 180 1 100
  4.1931 -    case 9: arg4 = stack.pop() // 58 4
  4.1932 -    case 11: stack.push(arg0); // 42
  4.1933 -    case 12: stack.push(stack.pop().offset); // 180 1 99
  4.1934 -    case 15: stack.push(arg2); // 28
  4.1935 -    case 16: stack.push(arg0); // 42
  4.1936 -    case 17: stack.push(stack.pop().count); // 180 1 97
  4.1937 -    case 20: if (stack.pop() > stack.pop()) { gt = 32; continue; } // 161 0 12
  4.1938 -    case 23: stack.push(arg0); // 42
  4.1939 -    case 24: stack.push(stack.pop().count); // 180 1 97
  4.1940 -    case 27: stack.push(1); // 4
  4.1941 -    case 28: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1942 -    case 29: gt = 33; continue; // 167 0 4
  4.1943 -    case 32: stack.push(arg2); // 28
  4.1944 -    case 33: stack.push(stack.pop() + stack.pop()); // 96
  4.1945 -    case 34: arg5 = stack.pop() // 54 5
  4.1946 -    case 36: stack.push(arg1); // 27
  4.1947 -    case 37: stack.push(65536); // 18 3
  4.1948 -    case 39: if (stack.pop() <= stack.pop()) { gt = 73; continue; } // 162 0 34
  4.1949 -    case 42: stack.push(arg5); // 21 5
  4.1950 -    case 44: stack.push(arg3); // 29
  4.1951 -    case 45: if (stack.pop() > stack.pop()) { gt = 71; continue; } // 161 0 26
  4.1952 -    case 48: stack.push(arg4); // 25 4
  4.1953 -    case 50: stack.push(arg5); // 21 5
  4.1954 -    case 52: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1955 -    case 53: stack.push(arg1); // 27
  4.1956 -    case 54: if (stack.pop() != stack.pop()) { gt = 65; continue; } // 160 0 11
  4.1957 -    case 57: stack.push(arg5); // 21 5
  4.1958 -    case 59: stack.push(arg0); // 42
  4.1959 -    case 60: stack.push(stack.pop().offset); // 180 1 99
  4.1960 -    case 63: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.1961 -    case 64: return stack.pop(); // 172
  4.1962 -    case 65: arg5 += 255; // 132 5 255
  4.1963 -    case 68: gt = 42; continue; // 167 255 230
  4.1964 -    case 71:  // 2
  4.1965 -    case 72: return stack.pop(); // 172
  4.1966 -    case 73: stack.push(arg0); // 42
  4.1967 -    case 74: stack.push(stack.pop().offset); // 180 1 99
  4.1968 -    case 77: stack.push(arg0); // 42
  4.1969 -    case 78: stack.push(stack.pop().count); // 180 1 97
  4.1970 -    case 81: stack.push(stack.pop() + stack.pop()); // 96
  4.1971 -    case 82: arg6 = stack.pop() // 54 6
  4.1972 -    case 84: stack.push(arg1); // 27
  4.1973 -    case 85: stack.push(1114111); // 18 4
  4.1974 -    case 87: if (stack.pop() < stack.pop()) { gt = 154; continue; } // 163 0 67
  4.1975 -    case 90: stack.push(arg1); // 27
  4.1976 -    case 91: { var v0 = stack.pop(); stack.push(java_lang_Character_toCharsACI(v0)); } // 184 1 109
  4.1977 -    case 94: arg7 = stack.pop() // 58 7
  4.1978 -    case 96: stack.push(arg5); // 21 5
  4.1979 -    case 98: stack.push(arg3); // 29
  4.1980 -    case 99: if (stack.pop() > stack.pop()) { gt = 154; continue; } // 161 0 55
  4.1981 -    case 102: stack.push(arg4); // 25 4
  4.1982 -    case 104: stack.push(arg5); // 21 5
  4.1983 -    case 106: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1984 -    case 107: stack.push(arg7); // 25 7
  4.1985 -    case 109: stack.push(0); // 3
  4.1986 -    case 110: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1987 -    case 111: if (stack.pop() != stack.pop()) { gt = 148; continue; } // 160 0 37
  4.1988 -    case 114: stack.push(arg5); // 21 5
  4.1989 -    case 116: stack.push(1); // 4
  4.1990 -    case 117: stack.push(stack.pop() + stack.pop()); // 96
  4.1991 -    case 118: stack.push(arg6); // 21 6
  4.1992 -    case 120: if (stack.pop() != stack.pop()) { gt = 126; continue; } // 160 0 6
  4.1993 -    case 123: gt = 154; continue; // 167 0 31
  4.1994 -    case 126: stack.push(arg4); // 25 4
  4.1995 -    case 128: stack.push(arg5); // 21 5
  4.1996 -    case 130: stack.push(1); // 4
  4.1997 -    case 131: stack.push(stack.pop() + stack.pop()); // 96
  4.1998 -    case 132: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.1999 -    case 133: stack.push(arg7); // 25 7
  4.2000 -    case 135: stack.push(1); // 4
  4.2001 -    case 136: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.2002 -    case 137: if (stack.pop() != stack.pop()) { gt = 148; continue; } // 160 0 11
  4.2003 -    case 140: stack.push(arg5); // 21 5
  4.2004 -    case 142: stack.push(arg0); // 42
  4.2005 -    case 143: stack.push(stack.pop().offset); // 180 1 99
  4.2006 -    case 146: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2007 -    case 147: return stack.pop(); // 172
  4.2008 -    case 148: arg5 += 255; // 132 5 255
  4.2009 -    case 151: gt = 96; continue; // 167 255 201
  4.2010 -    case 154:  // 2
  4.2011 -    case 155: return stack.pop(); // 172
  4.2012 -  }
  4.2013 -}
  4.2014 -function java_lang_String_indexOfILjava_lang_String(arg0,arg1) {
  4.2015 -  var arg2;
  4.2016 -;
  4.2017 -  var stack = new Array(3);
  4.2018 -  var gt = 0;
  4.2019 -  for(;;) switch(gt) {
  4.2020 -    case 0: stack.push(arg0); // 42
  4.2021 -    case 1: stack.push(arg1); // 43
  4.2022 -    case 2: stack.push(0); // 3
  4.2023 -    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
  4.2024 -    case 6: return stack.pop(); // 172
  4.2025 -  }
  4.2026 -}
  4.2027 -function java_lang_String_indexOfILjava_lang_StringI(arg0,arg1,arg2) {
  4.2028 -  var arg3;
  4.2029 -;
  4.2030 -  var stack = new Array(7);
  4.2031 -  var gt = 0;
  4.2032 -  for(;;) switch(gt) {
  4.2033 -    case 0: stack.push(arg0); // 42
  4.2034 -    case 1: stack.push(stack.pop().value); // 180 1 100
  4.2035 -    case 4: stack.push(arg0); // 42
  4.2036 -    case 5: stack.push(stack.pop().offset); // 180 1 99
  4.2037 -    case 8: stack.push(arg0); // 42
  4.2038 -    case 9: stack.push(stack.pop().count); // 180 1 97
  4.2039 -    case 12: stack.push(arg1); // 43
  4.2040 -    case 13: stack.push(stack.pop().value); // 180 1 100
  4.2041 -    case 16: stack.push(arg1); // 43
  4.2042 -    case 17: stack.push(stack.pop().offset); // 180 1 99
  4.2043 -    case 20: stack.push(arg1); // 43
  4.2044 -    case 21: stack.push(stack.pop().count); // 180 1 97
  4.2045 -    case 24: stack.push(arg2); // 28
  4.2046 -    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
  4.2047 -    case 28: return stack.pop(); // 172
  4.2048 -  }
  4.2049 -}
  4.2050 -function java_lang_String_indexOfIACIIACIII(arg0,arg1,arg2,arg3,arg4,arg5,arg6) {
  4.2051 -  var arg7;
  4.2052 -  var arg8;
  4.2053 -  var arg9;
  4.2054 -  var arg10;
  4.2055 -  var arg11;
  4.2056 -  var arg12;
  4.2057 -  var stack = new Array();
  4.2058 -  var gt = 0;
  4.2059 -  for(;;) switch(gt) {
  4.2060 -    case 0: stack.push(arg6); // 21 6
  4.2061 -    case 2: stack.push(arg2); // 28
  4.2062 -    case 3: if (stack.pop() > stack.pop()) { gt = 17; continue; } // 161 0 14
  4.2063 -    case 6: stack.push(arg5); // 21 5
  4.2064 -    case 8: if (stack.pop() != 0) { gt = 15; continue; } // 154 0 7
  4.2065 -    case 11: stack.push(arg2); // 28
  4.2066 -    case 12: gt = 16; continue; // 167 0 4
  4.2067 -    case 15:  // 2
  4.2068 -    case 16: return stack.pop(); // 172
  4.2069 -    case 17: stack.push(arg6); // 21 6
  4.2070 -    case 19: if (stack.pop() >= 0) { gt = 25; continue; } // 156 0 6
  4.2071 -    case 22: stack.push(0); // 3
  4.2072 -    case 23: arg6 = stack.pop() // 54 6
  4.2073 -    case 25: stack.push(arg5); // 21 5
  4.2074 -    case 27: if (stack.pop() != 0) { gt = 33; continue; } // 154 0 6
  4.2075 -    case 30: stack.push(arg6); // 21 6
  4.2076 -    case 32: return stack.pop(); // 172
  4.2077 -    case 33: stack.push(arg3); // 45
  4.2078 -    case 34: stack.push(arg4); // 21 4
  4.2079 -    case 36: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.2080 -    case 37: arg7 = stack.pop() // 54 7
  4.2081 -    case 39: stack.push(arg1); // 27
  4.2082 -    case 40: stack.push(arg2); // 28
  4.2083 -    case 41: stack.push(arg5); // 21 5
  4.2084 -    case 43: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2085 -    case 44: stack.push(stack.pop() + stack.pop()); // 96
  4.2086 -    case 45: arg8 = stack.pop() // 54 8
  4.2087 -    case 47: stack.push(arg1); // 27
  4.2088 -    case 48: stack.push(arg6); // 21 6
  4.2089 -    case 50: stack.push(stack.pop() + stack.pop()); // 96
  4.2090 -    case 51: arg9 = stack.pop() // 54 9
  4.2091 -    case 53: stack.push(arg9); // 21 9
  4.2092 -    case 55: stack.push(arg8); // 21 8
  4.2093 -    case 57: if (stack.pop() < stack.pop()) { gt = 164; continue; } // 163 0 107
  4.2094 -    case 60: stack.push(arg0); // 42
  4.2095 -    case 61: stack.push(arg9); // 21 9
  4.2096 -    case 63: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.2097 -    case 64: stack.push(arg7); // 21 7
  4.2098 -    case 66: if (stack.pop() == stack.pop()) { gt = 91; continue; } // 159 0 25
  4.2099 -    case 69: arg9++; // 132 9 1
  4.2100 -    case 72: stack.push(arg9); // 21 9
  4.2101 -    case 74: stack.push(arg8); // 21 8
  4.2102 -    case 76: if (stack.pop() < stack.pop()) { gt = 91; continue; } // 163 0 15
  4.2103 -    case 79: stack.push(arg0); // 42
  4.2104 -    case 80: stack.push(arg9); // 21 9
  4.2105 -    case 82: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.2106 -    case 83: stack.push(arg7); // 21 7
  4.2107 -    case 85: if (stack.pop() == stack.pop()) { gt = 91; continue; } // 159 0 6
  4.2108 -    case 88: gt = 69; continue; // 167 255 237
  4.2109 -    case 91: stack.push(arg9); // 21 9
  4.2110 -    case 93: stack.push(arg8); // 21 8
  4.2111 -    case 95: if (stack.pop() < stack.pop()) { gt = 158; continue; } // 163 0 63
  4.2112 -    case 98: stack.push(arg9); // 21 9
  4.2113 -    case 100: stack.push(1); // 4
  4.2114 -    case 101: stack.push(stack.pop() + stack.pop()); // 96
  4.2115 -    case 102: arg10 = stack.pop() // 54 10
  4.2116 -    case 104: stack.push(arg10); // 21 10
  4.2117 -    case 106: stack.push(arg5); // 21 5
  4.2118 -    case 108: stack.push(stack.pop() + stack.pop()); // 96
  4.2119 -    case 109: stack.push(1); // 4
  4.2120 -    case 110: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2121 -    case 111: arg11 = stack.pop() // 54 11
  4.2122 -    case 113: stack.push(arg4); // 21 4
  4.2123 -    case 115: stack.push(1); // 4
  4.2124 -    case 116: stack.push(stack.pop() + stack.pop()); // 96
  4.2125 -    case 117: arg12 = stack.pop() // 54 12
  4.2126 -    case 119: stack.push(arg10); // 21 10
  4.2127 -    case 121: stack.push(arg11); // 21 11
  4.2128 -    case 123: if (stack.pop() <= stack.pop()) { gt = 146; continue; } // 162 0 23
  4.2129 -    case 126: stack.push(arg0); // 42
  4.2130 -    case 127: stack.push(arg10); // 21 10
  4.2131 -    case 129: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.2132 -    case 130: stack.push(arg3); // 45
  4.2133 -    case 131: stack.push(arg12); // 21 12
  4.2134 -    case 133: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.2135 -    case 134: if (stack.pop() != stack.pop()) { gt = 146; continue; } // 160 0 12
  4.2136 -    case 137: arg10++; // 132 10 1
  4.2137 -    case 140: arg12++; // 132 12 1
  4.2138 -    case 143: gt = 119; continue; // 167 255 232
  4.2139 -    case 146: stack.push(arg10); // 21 10
  4.2140 -    case 148: stack.push(arg11); // 21 11
  4.2141 -    case 150: if (stack.pop() != stack.pop()) { gt = 158; continue; } // 160 0 8
  4.2142 -    case 153: stack.push(arg9); // 21 9
  4.2143 -    case 155: stack.push(arg1); // 27
  4.2144 -    case 156: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2145 -    case 157: return stack.pop(); // 172
  4.2146 -    case 158: arg9++; // 132 9 1
  4.2147 -    case 161: gt = 53; continue; // 167 255 148
  4.2148 -    case 164:  // 2
  4.2149 -    case 165: return stack.pop(); // 172
  4.2150 -  }
  4.2151 -}
  4.2152 -function java_lang_String_lastIndexOfILjava_lang_String(arg0,arg1) {
  4.2153 -  var arg2;
  4.2154 -;
  4.2155 -  var stack = new Array(3);
  4.2156 -  var gt = 0;
  4.2157 -  for(;;) switch(gt) {
  4.2158 -    case 0: stack.push(arg0); // 42
  4.2159 -    case 1: stack.push(arg1); // 43
  4.2160 -    case 2: stack.push(arg0); // 42
  4.2161 -    case 3: stack.push(stack.pop().count); // 180 1 97
  4.2162 -    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
  4.2163 -    case 9: return stack.pop(); // 172
  4.2164 -  }
  4.2165 -}
  4.2166 -function java_lang_String_lastIndexOfILjava_lang_StringI(arg0,arg1,arg2) {
  4.2167 -  var arg3;
  4.2168 -;
  4.2169 -  var stack = new Array(7);
  4.2170 -  var gt = 0;
  4.2171 -  for(;;) switch(gt) {
  4.2172 -    case 0: stack.push(arg0); // 42
  4.2173 -    case 1: stack.push(stack.pop().value); // 180 1 100
  4.2174 -    case 4: stack.push(arg0); // 42
  4.2175 -    case 5: stack.push(stack.pop().offset); // 180 1 99
  4.2176 -    case 8: stack.push(arg0); // 42
  4.2177 -    case 9: stack.push(stack.pop().count); // 180 1 97
  4.2178 -    case 12: stack.push(arg1); // 43
  4.2179 -    case 13: stack.push(stack.pop().value); // 180 1 100
  4.2180 -    case 16: stack.push(arg1); // 43
  4.2181 -    case 17: stack.push(stack.pop().offset); // 180 1 99
  4.2182 -    case 20: stack.push(arg1); // 43
  4.2183 -    case 21: stack.push(stack.pop().count); // 180 1 97
  4.2184 -    case 24: stack.push(arg2); // 28
  4.2185 -    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
  4.2186 -    case 28: return stack.pop(); // 172
  4.2187 -  }
  4.2188 -}
  4.2189 -function java_lang_String_lastIndexOfIACIIACIII(arg0,arg1,arg2,arg3,arg4,arg5,arg6) {
  4.2190 -  var arg7;
  4.2191 -  var arg8;
  4.2192 -  var arg9;
  4.2193 -  var arg10;
  4.2194 -  var arg11;
  4.2195 -  var arg12;
  4.2196 -  var arg13;
  4.2197 -  var arg14;
  4.2198 -  var stack = new Array();
  4.2199 -  var gt = 0;
  4.2200 -  for(;;) switch(gt) {
  4.2201 -    case 0: stack.push(arg2); // 28
  4.2202 -    case 1: stack.push(arg5); // 21 5
  4.2203 -    case 3: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2204 -    case 4: arg7 = stack.pop() // 54 7
  4.2205 -    case 6: stack.push(arg6); // 21 6
  4.2206 -    case 8: if (stack.pop() >= 0) { gt = 13; continue; } // 156 0 5
  4.2207 -    case 11:  // 2
  4.2208 -    case 12: return stack.pop(); // 172
  4.2209 -    case 13: stack.push(arg6); // 21 6
  4.2210 -    case 15: stack.push(arg7); // 21 7
  4.2211 -    case 17: if (stack.pop() >= stack.pop()) { gt = 24; continue; } // 164 0 7
  4.2212 -    case 20: stack.push(arg7); // 21 7
  4.2213 -    case 22: arg6 = stack.pop() // 54 6
  4.2214 -    case 24: stack.push(arg5); // 21 5
  4.2215 -    case 26: if (stack.pop() != 0) { gt = 32; continue; } // 154 0 6
  4.2216 -    case 29: stack.push(arg6); // 21 6
  4.2217 -    case 31: return stack.pop(); // 172
  4.2218 -    case 32: stack.push(arg4); // 21 4
  4.2219 -    case 34: stack.push(arg5); // 21 5
  4.2220 -    case 36: stack.push(stack.pop() + stack.pop()); // 96
  4.2221 -    case 37: stack.push(1); // 4
  4.2222 -    case 38: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2223 -    case 39: arg8 = stack.pop() // 54 8
  4.2224 -    case 41: stack.push(arg3); // 45
  4.2225 -    case 42: stack.push(arg8); // 21 8
  4.2226 -    case 44: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.2227 -    case 45: arg9 = stack.pop() // 54 9
  4.2228 -    case 47: stack.push(arg1); // 27
  4.2229 -    case 48: stack.push(arg5); // 21 5
  4.2230 -    case 50: stack.push(stack.pop() + stack.pop()); // 96
  4.2231 -    case 51: stack.push(1); // 4
  4.2232 -    case 52: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2233 -    case 53: arg10 = stack.pop() // 54 10
  4.2234 -    case 55: stack.push(arg10); // 21 10
  4.2235 -    case 57: stack.push(arg6); // 21 6
  4.2236 -    case 59: stack.push(stack.pop() + stack.pop()); // 96
  4.2237 -    case 60: arg11 = stack.pop() // 54 11
  4.2238 -    case 62: stack.push(arg11); // 21 11
  4.2239 -    case 64: stack.push(arg10); // 21 10
  4.2240 -    case 66: if (stack.pop() > stack.pop()) { gt = 84; continue; } // 161 0 18
  4.2241 -    case 69: stack.push(arg0); // 42
  4.2242 -    case 70: stack.push(arg11); // 21 11
  4.2243 -    case 72: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.2244 -    case 73: stack.push(arg9); // 21 9
  4.2245 -    case 75: if (stack.pop() == stack.pop()) { gt = 84; continue; } // 159 0 9
  4.2246 -    case 78: arg11 += 255; // 132 11 255
  4.2247 -    case 81: gt = 62; continue; // 167 255 237
  4.2248 -    case 84: stack.push(arg11); // 21 11
  4.2249 -    case 86: stack.push(arg10); // 21 10
  4.2250 -    case 88: if (stack.pop() <= stack.pop()) { gt = 93; continue; } // 162 0 5
  4.2251 -    case 91:  // 2
  4.2252 -    case 92: return stack.pop(); // 172
  4.2253 -    case 93: stack.push(arg11); // 21 11
  4.2254 -    case 95: stack.push(1); // 4
  4.2255 -    case 96: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2256 -    case 97: arg12 = stack.pop() // 54 12
  4.2257 -    case 99: stack.push(arg12); // 21 12
  4.2258 -    case 101: stack.push(arg5); // 21 5
  4.2259 -    case 103: stack.push(1); // 4
  4.2260 -    case 104: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2261 -    case 105: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2262 -    case 106: arg13 = stack.pop() // 54 13
  4.2263 -    case 108: stack.push(arg8); // 21 8
  4.2264 -    case 110: stack.push(1); // 4
  4.2265 -    case 111: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2266 -    case 112: arg14 = stack.pop() // 54 14
  4.2267 -    case 114: stack.push(arg12); // 21 12
  4.2268 -    case 116: stack.push(arg13); // 21 13
  4.2269 -    case 118: if (stack.pop() >= stack.pop()) { gt = 144; continue; } // 164 0 26
  4.2270 -    case 121: stack.push(arg0); // 42
  4.2271 -    case 122: stack.push(arg12); // 21 12
  4.2272 -    case 124: arg12 += 255; // 132 12 255
  4.2273 -    case 127: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.2274 -    case 128: stack.push(arg3); // 45
  4.2275 -    case 129: stack.push(arg14); // 21 14
  4.2276 -    case 131: arg14 += 255; // 132 14 255
  4.2277 -    case 134: { var indx = stack.pop(); stack.push(stack.pop()[indx]); } // 52
  4.2278 -    case 135: if (stack.pop() == stack.pop()) { gt = 114; continue; } // 159 255 235
  4.2279 -    case 138: arg11 += 255; // 132 11 255
  4.2280 -    case 141: gt = 62; continue; // 167 255 177
  4.2281 -    case 144: stack.push(arg13); // 21 13
  4.2282 -    case 146: stack.push(arg1); // 27
  4.2283 -    case 147: { var tmp = stack.pop(); stack.push(stack.pop() - tmp); } // 100
  4.2284 -    case 148: stack.push(1); // 4
  4.2285 -    case 149: stack.push(stack.pop() + stack.pop()); // 96
  4.2286 -    case 150: return stack.pop(); // 172
  4.2287 -  }
  4.2288 -}
  4.2289 -*/
  4.2290 -
  4.2291 -/*
  4.2292 -  this.lengthI = java_lang_String_lengthI;
  4.2293 -  this.isEmptyZ = java_lang_String_isEmptyZ;
  4.2294 -  this.charAtCI = java_lang_String_charAtCI;
  4.2295 -  this.codePointAtII = java_lang_String_codePointAtII;
  4.2296 -  this.codePointBeforeII = java_lang_String_codePointBeforeII;
  4.2297 -  this.codePointCountIII = java_lang_String_codePointCountIII;
  4.2298 -  this.offsetByCodePointsIII = java_lang_String_offsetByCodePointsIII;
  4.2299 -  this.getCharsVACI = java_lang_String_getCharsVACI;
  4.2300 -  this.getCharsVIIACI = java_lang_String_getCharsVIIACI;
  4.2301 -  this.getBytesVIIABI = java_lang_String_getBytesVIIABI;
  4.2302 -  this.getBytesABLjava_lang_String = java_lang_String_getBytesABLjava_lang_String;
  4.2303 -  this.getBytesABLjava_nio_charset_Charset = java_lang_String_getBytesABLjava_nio_charset_Charset;
  4.2304 -  this.getBytesAB = java_lang_String_getBytesAB;
  4.2305 -  this.equalsZLjava_lang_Object = java_lang_String_equalsZLjava_lang_Object;
  4.2306 -  this.contentEqualsZLjava_lang_StringBuffer = java_lang_String_contentEqualsZLjava_lang_StringBuffer;
  4.2307 -  this.contentEqualsZLjava_lang_CharSequence = java_lang_String_contentEqualsZLjava_lang_CharSequence;
  4.2308 -  this.equalsIgnoreCaseZLjava_lang_String = java_lang_String_equalsIgnoreCaseZLjava_lang_String;
  4.2309 -  this.compareToILjava_lang_String = java_lang_String_compareToILjava_lang_String;
  4.2310 -  this.compareToIgnoreCaseILjava_lang_String = java_lang_String_compareToIgnoreCaseILjava_lang_String;
  4.2311 -  this.regionMatchesZILjava_lang_StringII = java_lang_String_regionMatchesZILjava_lang_StringII;
  4.2312 -  this.regionMatchesZZILjava_lang_StringII = java_lang_String_regionMatchesZZILjava_lang_StringII;
  4.2313 -  this.startsWithZLjava_lang_StringI = java_lang_String_startsWithZLjava_lang_StringI;
  4.2314 -  this.startsWithZLjava_lang_String = java_lang_String_startsWithZLjava_lang_String;
  4.2315 -  this.endsWithZLjava_lang_String = java_lang_String_endsWithZLjava_lang_String;
  4.2316 -  this.hashCodeI = java_lang_String_hashCodeI;
  4.2317 -  this.indexOfII = java_lang_String_indexOfII;
  4.2318 -  this.indexOfIII = java_lang_String_indexOfIII;
  4.2319 -  this.lastIndexOfII = java_lang_String_lastIndexOfII;
  4.2320 -  this.lastIndexOfIII = java_lang_String_lastIndexOfIII;
  4.2321 -  this.indexOfILjava_lang_String = java_lang_String_indexOfILjava_lang_String;
  4.2322 -  this.indexOfILjava_lang_StringI = java_lang_String_indexOfILjava_lang_StringI;
  4.2323 -  this.lastIndexOfILjava_lang_String = java_lang_String_lastIndexOfILjava_lang_String;
  4.2324 -  this.lastIndexOfILjava_lang_StringI = java_lang_String_lastIndexOfILjava_lang_StringI;
  4.2325 -  this.substringLjava_lang_StringI = java_lang_String_substringLjava_lang_StringI;
  4.2326 -  this.substringLjava_lang_StringII = java_lang_String_substringLjava_lang_StringII;
  4.2327 -  this.subSequenceLjava_lang_CharSequenceII = java_lang_String_subSequenceLjava_lang_CharSequenceII;
  4.2328 -  this.concatLjava_lang_StringLjava_lang_String = java_lang_String_concatLjava_lang_StringLjava_lang_String;
  4.2329 -  this.replaceLjava_lang_StringCC = java_lang_String_replaceLjava_lang_StringCC;
  4.2330 -  this.matchesZLjava_lang_String = java_lang_String_matchesZLjava_lang_String;
  4.2331 -  this.containsZLjava_lang_CharSequence = java_lang_String_containsZLjava_lang_CharSequence;
  4.2332 -  this.replaceFirstLjava_lang_StringLjava_lang_StringLjava_lang_String = java_lang_String_replaceFirstLjava_lang_StringLjava_lang_StringLjava_lang_String;
  4.2333 -  this.replaceAllLjava_lang_StringLjava_lang_StringLjava_lang_String = java_lang_String_replaceAllLjava_lang_StringLjava_lang_StringLjava_lang_String;
  4.2334 -  this.replaceLjava_lang_StringLjava_lang_CharSequenceLjava_lang_CharSequence = java_lang_String_replaceLjava_lang_StringLjava_lang_CharSequenceLjava_lang_CharSequence;
  4.2335 -  this.splitALjava_lang_StringLjava_lang_StringI = java_lang_String_splitALjava_lang_StringLjava_lang_StringI;
  4.2336 -  this.splitALjava_lang_StringLjava_lang_String = java_lang_String_splitALjava_lang_StringLjava_lang_String;
  4.2337 -  this.toLowerCaseLjava_lang_StringLjava_util_Locale = java_lang_String_toLowerCaseLjava_lang_StringLjava_util_Locale;
  4.2338 -  this.toLowerCaseLjava_lang_String = java_lang_String_toLowerCaseLjava_lang_String;
  4.2339 -  this.toUpperCaseLjava_lang_StringLjava_util_Locale = java_lang_String_toUpperCaseLjava_lang_StringLjava_util_Locale;
  4.2340 -  this.toUpperCaseLjava_lang_String = java_lang_String_toUpperCaseLjava_lang_String;
  4.2341 -  this.trimLjava_lang_String = java_lang_String_trimLjava_lang_String;
  4.2342 -  this.toStringLjava_lang_String = java_lang_String_toStringLjava_lang_String;
  4.2343 -  this.internLjava_lang_String = java_lang_String_internLjava_lang_String;
  4.2344 -  this.compareToILjava_lang_Object = java_lang_String_compareToILjava_lang_Object;
  4.2345 - */
  4.2346 -
  4.2347 -
  4.2348 -
  4.2349 +// initialize methods on String constants
  4.2350 +java_lang_String(false)
     5.1 --- a/javap/src/main/java/org/apidesign/javap/AnnotationParser.java	Sun Dec 02 21:00:12 2012 +0100
     5.2 +++ b/javap/src/main/java/org/apidesign/javap/AnnotationParser.java	Sun Dec 02 23:10:51 2012 +0100
     5.3 @@ -71,6 +71,9 @@
     5.4              String attrName = cd.StringValue(dis.readUnsignedShort());
     5.5              readValue(dis, cd, typeName, attrName);
     5.6          }
     5.7 +        if (cnt == 0) {
     5.8 +            visitAttr(typeName, null, null);
     5.9 +        }
    5.10      }
    5.11  
    5.12      private void readValue(DataInputStream dis, ClassData cd, String typeName, String attrName) 
     6.1 --- a/javap/src/main/java/org/apidesign/javap/FieldData.java	Sun Dec 02 21:00:12 2012 +0100
     6.2 +++ b/javap/src/main/java/org/apidesign/javap/FieldData.java	Sun Dec 02 23:10:51 2012 +0100
     6.3 @@ -163,4 +163,13 @@
     6.4      public Vector getAttributes(){
     6.5          return attrs;
     6.6      }
     6.7 +
     6.8 +    public byte[] findAnnotationData(boolean classRetention) {
     6.9 +        String n = classRetention ?
    6.10 +            "RuntimeInvisibleAnnotations" : // NOI18N
    6.11 +            "RuntimeVisibleAnnotations"; // NOI18N
    6.12 +        AttrData[] arr = new AttrData[attrs.size()];
    6.13 +        attrs.copyInto(arr);
    6.14 +        return ClassData.findAttr(n, arr);
    6.15 +    }
    6.16  }
     7.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Sun Dec 02 21:00:12 2012 +0100
     7.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Sun Dec 02 23:10:51 2012 +0100
     7.3 @@ -102,10 +102,22 @@
     7.4                  append(sc.replace('/', '_')).append("(true);");
     7.5              out.append("\n    var c = p;");
     7.6          } else {
     7.7 -            out.append("\n    var p = ").append(proto[1]).append(";");
     7.8 +            out.append("\n    var p = CLS.prototype = ").append(proto[1]).append(";");
     7.9              out.append("\n    var c = ").append(proto[0]).append(";");
    7.10          }
    7.11          for (MethodData m : jc.getMethods()) {
    7.12 +            byte[] onlyArr = m.findAnnotationData(true);
    7.13 +            String[] only = findAnnotation(onlyArr, jc, 
    7.14 +                "org.apidesign.bck2brwsr.core.JavaScriptOnly", 
    7.15 +                "name", "value"
    7.16 +            );
    7.17 +            if (only != null) {
    7.18 +                if (only[0] != null && only[1] != null) {
    7.19 +                    out.append("\n    p.").append(only[0]).append(" = ")
    7.20 +                        .append(only[1]).append(";");
    7.21 +                }
    7.22 +                continue;
    7.23 +            }
    7.24              if (m.isStatic()) {
    7.25                  generateStaticMethod("\n    c.", m, toInitilize);
    7.26              } else {
    7.27 @@ -123,6 +135,18 @@
    7.28          out.append("\n      return new CLS();");
    7.29          out.append("\n    }");
    7.30          for (FieldData v : jc.getFields()) {
    7.31 +            byte[] onlyArr = v.findAnnotationData(true);
    7.32 +            String[] only = findAnnotation(onlyArr, jc, 
    7.33 +                "org.apidesign.bck2brwsr.core.JavaScriptOnly", 
    7.34 +                "name", "value"
    7.35 +            );
    7.36 +            if (only != null) {
    7.37 +                if (only[0] != null && only[1] != null) {
    7.38 +                    out.append("\n    p.").append(only[0]).append(" = ")
    7.39 +                        .append(only[1]).append(";");
    7.40 +                }
    7.41 +                continue;
    7.42 +            }
    7.43              if (!v.isStatic()) {
    7.44                  out.append("\n    this.fld_").
    7.45                      append(v.getName()).append(initField(v));