UNPKG

@specy/mips

Version:

The MARS mips interpreter in JS

1,629 lines 1.34 MB
// src/generated/mars.js var $rt_seed = 2463534242; var $rt_nextId = () => { let x = $rt_seed; x ^= x << 13; x ^= x >>> 17; x ^= x << 5; $rt_seed = x; return x; }; var $rt_wrapFunction0 = (f) => function() { return f(this); }; var $rt_wrapFunction1 = (f) => function(p1) { return f(this, p1); }; var $rt_wrapFunction2 = (f) => function(p1, p2) { return f(this, p1, p2); }; var $rt_wrapFunction3 = (f) => function(p1, p2, p3) { return f(this, p1, p2, p3, p3); }; var $rt_wrapFunction4 = (f) => function(p1, p2, p3, p4) { return f(this, p1, p2, p3, p4); }; var $rt_eraseClinit = (target) => target.$clinit = () => { }; var $dbg_class = (obj) => { let cls = obj.constructor; let arrayDegree = 0; while (cls.$meta && cls.$meta.item) { ++arrayDegree; cls = cls.$meta.item; } let clsName = ""; if (cls.$meta.primitive) { clsName = cls.$meta.name; } else { clsName = cls.$meta ? cls.$meta.name || "a/" + cls.name : "@" + cls.name; } while (arrayDegree-- > 0) { clsName += "[]"; } return clsName; }; var $rt_classWithoutFields = (superclass) => { if (superclass === 0) { return function() { }; } if (superclass === void 0) { superclass = $rt_objcls(); } return function() { superclass.call(this); }; }; var $rt_cls = (cls) => jl_Class_getClass(cls); var $rt_objcls = () => jl_Object; var $rt_callWithReceiver = (f) => function() { return f.apply(null, [this].concat(Array.prototype.slice.call(arguments))); }; var $rt_createcls = () => { return { $array: null, classObject: null, $meta: { supertypes: [], superclass: null } }; }; var $rt_createPrimitiveCls = (name, binaryName) => { let cls = $rt_createcls(); cls.$meta.primitive = true; cls.$meta.name = name; cls.$meta.binaryName = binaryName; cls.$meta.enum = false; cls.$meta.item = null; cls.$meta.simpleName = null; cls.$meta.declaringClass = null; cls.$meta.enclosingClass = null; return cls; }; var $rt_booleancls = $rt_createPrimitiveCls("boolean", "Z"); var $rt_charcls = $rt_createPrimitiveCls("char", "C"); var $rt_bytecls = $rt_createPrimitiveCls("byte", "B"); var $rt_shortcls = $rt_createPrimitiveCls("short", "S"); var $rt_intcls = $rt_createPrimitiveCls("int", "I"); var $rt_longcls = $rt_createPrimitiveCls("long", "J"); var $rt_floatcls = $rt_createPrimitiveCls("float", "F"); var $rt_doublecls = $rt_createPrimitiveCls("double", "D"); var $rt_voidcls = $rt_createPrimitiveCls("void", "V"); var $rt_numberConversionBuffer = new ArrayBuffer(16); var $rt_numberConversionView = new DataView($rt_numberConversionBuffer); var $rt_numberConversionFloatArray = new Float32Array($rt_numberConversionBuffer); var $rt_numberConversionDoubleArray = new Float64Array($rt_numberConversionBuffer); var $rt_numberConversionIntArray = new Int32Array($rt_numberConversionBuffer); var $rt_doubleToRawLongBits; var $rt_longBitsToDouble; if (typeof BigInt !== "function") { $rt_doubleToRawLongBits = (n) => { $rt_numberConversionView.setFloat64(0, n, true); return new Long($rt_numberConversionView.getInt32(0, true), $rt_numberConversionView.getInt32(4, true)); }; $rt_longBitsToDouble = (n) => { $rt_numberConversionView.setInt32(0, n.lo, true); $rt_numberConversionView.setInt32(4, n.hi, true); return $rt_numberConversionView.getFloat64(0, true); }; } else if (typeof BigInt64Array !== "function") { $rt_doubleToRawLongBits = (n) => { $rt_numberConversionView.setFloat64(0, n, true); let lo = $rt_numberConversionView.getInt32(0, true); let hi = $rt_numberConversionView.getInt32(4, true); return BigInt.asIntN(64, BigInt.asUintN(32, BigInt(lo)) | BigInt(hi) << BigInt(32)); }; $rt_longBitsToDouble = (n) => { $rt_numberConversionView.setFloat64(0, n, true); let lo = $rt_numberConversionView.getInt32(0, true); let hi = $rt_numberConversionView.getInt32(4, true); return BigInt.asIntN(64, BigInt.asUintN(32, BigInt(lo)) | BigInt(hi) << BigInt(32)); }; } else { let $rt_numberConversionLongArray = new BigInt64Array($rt_numberConversionBuffer); $rt_doubleToRawLongBits = (n) => { $rt_numberConversionDoubleArray[0] = n; return $rt_numberConversionLongArray[0]; }; $rt_longBitsToDouble = (n) => { $rt_numberConversionLongArray[0] = n; return $rt_numberConversionDoubleArray[0]; }; } var $rt_floatToRawIntBits = (n) => { $rt_numberConversionFloatArray[0] = n; return $rt_numberConversionIntArray[0]; }; var $rt_intBitsToFloat = (n) => { $rt_numberConversionIntArray[0] = n; return $rt_numberConversionFloatArray[0]; }; var $rt_compare = (a, b) => a > b ? 1 : a < b ? -1 : a === b ? 0 : 1; var $rt_imul = Math.imul || function(a, b) { let ah = a >>> 16 & 65535; let al = a & 65535; let bh = b >>> 16 & 65535; let bl = b & 65535; return al * bl + (ah * bl + al * bh << 16 >>> 0) | 0; }; var $rt_udiv = (a, b) => (a >>> 0) / (b >>> 0) >>> 0; var $rt_umod = (a, b) => (a >>> 0) % (b >>> 0) >>> 0; var $rt_ucmp = (a, b) => { a >>>= 0; b >>>= 0; return a < b ? -1 : a > b ? 1 : 0; }; var Long_ZERO = BigInt(0); var Long_create = (lo, hi) => BigInt.asIntN(64, BigInt.asUintN(64, BigInt(lo)) | BigInt.asUintN(64, BigInt(hi) << BigInt(32))); var Long_fromInt = (val) => BigInt.asIntN(64, BigInt(val | 0)); var Long_fromNumber = (val) => BigInt.asIntN(64, BigInt(val >= 0 ? Math.floor(val) : Math.ceil(val))); var Long_hi = (val) => Number(BigInt.asIntN(64, val >> BigInt(32))) | 0; var Long_lo = (val) => Number(BigInt.asIntN(32, val)) | 0; var Long_eq = (a, b) => a === b; var Long_ne = (a, b) => a !== b; var Long_gt = (a, b) => a > b; var Long_lt = (a, b) => a < b; var Long_le = (a, b) => a <= b; var Long_add = (a, b) => BigInt.asIntN(64, a + b); var Long_neg = (a) => BigInt.asIntN(64, -a); var Long_sub = (a, b) => BigInt.asIntN(64, a - b); var Long_ucompare = (a, b) => { a = BigInt.asUintN(64, a); b = BigInt.asUintN(64, b); return a < b ? -1 : a > b ? 1 : 0; }; var Long_mul = (a, b) => BigInt.asIntN(64, a * b); var Long_div = (a, b) => BigInt.asIntN(64, a / b); var Long_udiv = (a, b) => BigInt.asIntN(64, BigInt.asUintN(64, a) / BigInt.asUintN(64, b)); var Long_rem = (a, b) => BigInt.asIntN(64, a % b); var Long_urem = (a, b) => BigInt.asIntN(64, BigInt.asUintN(64, a) % BigInt.asUintN(64, b)); var Long_and = (a, b) => BigInt.asIntN(64, a & b); var Long_or = (a, b) => BigInt.asIntN(64, a | b); var Long_xor = (a, b) => BigInt.asIntN(64, a ^ b); var Long_shl = (a, b) => BigInt.asIntN(64, a << BigInt(b & 63)); var Long_shr = (a, b) => BigInt.asIntN(64, a >> BigInt(b & 63)); var Long_shru = (a, b) => BigInt.asIntN(64, BigInt.asUintN(64, a) >> BigInt(b & 63)); var $rt_createArray = (cls, sz) => { let data = new Array(sz); data.fill(null); return new ($rt_arraycls(cls))(data); }; var $rt_wrapArray = (cls, data) => new ($rt_arraycls(cls))(data); var $rt_createLongArrayFromData; if (typeof BigInt64Array !== "function") { $rt_createLongArrayFromData = (init) => new $rt_longArrayCls(init); } else { $rt_createLongArrayFromData = (data) => { let buffer = new BigInt64Array(data.length); buffer.set(data); return new $rt_longArrayCls(buffer); }; } var $rt_createCharArray = (sz) => new $rt_charArrayCls(new Uint16Array(sz)); var $rt_createCharArrayFromData = (data) => { let buffer = new Uint16Array(data.length); buffer.set(data); return new $rt_charArrayCls(buffer); }; var $rt_createByteArray = (sz) => new $rt_byteArrayCls(new Int8Array(sz)); var $rt_createShortArrayFromData = (data) => { let buffer = new Int16Array(data.length); buffer.set(data); return new $rt_shortArrayCls(buffer); }; var $rt_createIntArray = (sz) => new $rt_intArrayCls(new Int32Array(sz)); var $rt_createIntArrayFromData = (data) => { let buffer = new Int32Array(data.length); buffer.set(data); return new $rt_intArrayCls(buffer); }; var $rt_arraycls = (cls) => { let result = cls.$array; if (result === null) { let JavaArray = function(data) { $rt_objcls().call(this); this.data = data; }; JavaArray.prototype = Object.create($rt_objcls().prototype); JavaArray.prototype.type = cls; JavaArray.prototype.constructor = JavaArray; JavaArray.prototype.toString = function() { let str = "["; for (let i = 0; i < this.data.length; ++i) { if (i > 0) { str += ", "; } str += this.data[i].toString(); } str += "]"; return str; }; JavaArray.prototype.$clone0 = function() { let dataCopy; if ("slice" in this.data) { dataCopy = this.data.slice(); } else { dataCopy = new this.data.constructor(this.data.length); for (let i = 0; i < dataCopy.length; ++i) { dataCopy[i] = this.data[i]; } } return new ($rt_arraycls(this.type))(dataCopy); }; let name = "[" + cls.$meta.binaryName; JavaArray.$meta = { item: cls, supertypes: [$rt_objcls()], primitive: false, superclass: $rt_objcls(), name, binaryName: name, enum: false, simpleName: null, declaringClass: null, enclosingClass: null }; JavaArray.classObject = null; JavaArray.$array = null; result = JavaArray; cls.$array = JavaArray; } return result; }; var $rt_stringPool_instance; var $rt_stringPool = (strings) => { $rt_stringClassInit(); $rt_stringPool_instance = new Array(strings.length); for (let i = 0; i < strings.length; ++i) { $rt_stringPool_instance[i] = $rt_intern($rt_str(strings[i])); } }; var $rt_s = (index) => $rt_stringPool_instance[index]; var $rt_charArrayToString = (array, offset, count) => { let result = ""; let limit = offset + count; for (let i = offset; i < limit; i = i + 1024 | 0) { let next = Math.min(limit, i + 1024 | 0); result += String.fromCharCode.apply(null, array.subarray(i, next)); } return result; }; var $rt_fullArrayToString = (array) => $rt_charArrayToString(array, 0, array.length); var $rt_str = (str) => str === null ? null : jl_String__init_5(str); var $rt_ustr = (str) => str === null ? null : str.$nativeString; var $rt_stringClassInit = () => /* @__PURE__ */ (() => { })(); var $rt_intern; { $rt_intern = (str) => str; } var $rt_isInstance = (obj, cls) => obj instanceof $rt_objcls() && !!obj.constructor.$meta && $rt_isAssignable(obj.constructor, cls); var $rt_isAssignable = (from, to) => { if (from === to) { return true; } let map = from.$meta.assignableCache; if (typeof map === "undefined") { map = /* @__PURE__ */ new Map(); from.$meta.assignableCache = map; } let cachedResult = map.get(to); if (typeof cachedResult !== "undefined") { return cachedResult; } if (to.$meta.item !== null) { let result = from.$meta.item !== null && $rt_isAssignable(from.$meta.item, to.$meta.item); map.set(to, result); return result; } let supertypes = from.$meta.supertypes; for (let i = 0; i < supertypes.length; i = i + 1 | 0) { if ($rt_isAssignable(supertypes[i], to)) { map.set(to, true); return true; } } map.set(to, false); return false; }; var $rt_throw = (ex) => { throw $rt_exception(ex); }; var $rt_javaExceptionProp = Symbol("javaException"); var $rt_exception = (ex) => { let err = ex.$jsException; if (!err) { let javaCause = $rt_throwableCause(ex); let jsCause = javaCause !== null ? javaCause.$jsException : void 0; let cause = typeof jsCause === "object" ? { cause: jsCause } : void 0; err = new JavaError("Java exception thrown", cause); if (typeof Error.captureStackTrace === "function") { Error.captureStackTrace(err); } err[$rt_javaExceptionProp] = ex; ex.$jsException = err; $rt_fillStack(err, ex); } return err; }; var $rt_fillStack = (err, ex) => { if (typeof $rt_decodeStack === "function" && err.stack) { let stack = $rt_decodeStack(err.stack); let javaStack = $rt_createArray($rt_stecls(), stack.length); let elem; let noStack = false; for (let i = 0; i < stack.length; ++i) { let element = stack[i]; elem = $rt_createStackElement($rt_str(element.className), $rt_str(element.methodName), $rt_str(element.fileName), element.lineNumber); if (elem == null) { noStack = true; break; } javaStack.data[i] = elem; } if (!noStack) { $rt_setStack(ex, javaStack); } } }; var JavaError; if (typeof Reflect === "object") { let defaultMessage = Symbol("defaultMessage"); JavaError = function JavaError2(message, cause) { let self = Reflect.construct(Error, [void 0, cause], JavaError2); Object.setPrototypeOf(self, JavaError2.prototype); self[defaultMessage] = message; return self; }; JavaError.prototype = Object.create(Error.prototype, { constructor: { configurable: true, writable: true, value: JavaError }, message: { get() { try { let javaException = this[$rt_javaExceptionProp]; if (typeof javaException === "object") { let javaMessage = $rt_throwableMessage(javaException); if (typeof javaMessage === "object") { return javaMessage !== null ? javaMessage.toString() : null; } } return this[defaultMessage]; } catch (e) { return "Exception occurred trying to extract Java exception message: " + e; } } } }); } else { JavaError = Error; } var $rt_wrapException = (err) => { let ex = err[$rt_javaExceptionProp]; if (!ex) { ex = $rt_createException($rt_str("(JavaScript) " + err.toString())); err[$rt_javaExceptionProp] = ex; ex.$jsException = err; $rt_fillStack(err, ex); } return ex; }; var $rt_createException = (message) => jl_RuntimeException__init_0(message); var $rt_throwableMessage = (t) => jl_Throwable_getMessage(t); var $rt_throwableCause = (t) => jl_Throwable_getCause(t); var $rt_stecls = () => $rt_objcls(); var $rt_createStackElement = (className, methodName, fileName, lineNumber) => { { return null; } }; var $rt_setStack = (e, stack) => { }; var $rt_createOutputFunction = (outputFunction) => { let buffer = ""; return (msg) => { let index = 0; while (true) { let next = msg.indexOf("\n", index); if (next < 0) { break; } outputFunction(buffer + msg.substring(index, next)); buffer = ""; index = next + 1; } buffer += msg.substring(index); }; }; var $rt_putStdout = typeof $rt_putStdoutCustom === "function" ? $rt_putStdoutCustom : typeof console === "object" ? $rt_createOutputFunction((msg) => console.info(msg)) : () => { }; var $rt_packageData = null; var $rt_packages = (data) => { let i = 0; let packages = new Array(data.length); for (let j = 0; j < data.length; ++j) { let prefixIndex = data[i++]; let prefix = prefixIndex >= 0 ? packages[prefixIndex] : ""; packages[j] = prefix + data[i++] + "."; } $rt_packageData = packages; }; var $rt_metadata = (data) => { let packages = $rt_packageData; let i = 0; while (i < data.length) { let cls = data[i++]; cls.$meta = {}; let m = cls.$meta; let className = data[i++]; m.name = className !== 0 ? className : null; if (m.name !== null) { let packageIndex = data[i++]; if (packageIndex >= 0) { m.name = packages[packageIndex] + m.name; } } m.binaryName = "L" + m.name + ";"; let superclass = data[i++]; m.superclass = superclass !== 0 ? superclass : null; m.supertypes = data[i++]; if (m.superclass) { m.supertypes.push(m.superclass); cls.prototype = Object.create(m.superclass.prototype); } else { cls.prototype = {}; } let flags = data[i++]; m.enum = (flags & 8) !== 0; m.flags = flags; m.primitive = false; m.item = null; cls.prototype.constructor = cls; cls.classObject = null; m.accessLevel = data[i++]; let innerClassInfo = data[i++]; if (innerClassInfo === 0) { m.simpleName = null; m.declaringClass = null; m.enclosingClass = null; } else { let enclosingClass = innerClassInfo[0]; m.enclosingClass = enclosingClass !== 0 ? enclosingClass : null; let declaringClass = innerClassInfo[1]; m.declaringClass = declaringClass !== 0 ? declaringClass : null; let simpleName = innerClassInfo[2]; m.simpleName = simpleName !== 0 ? simpleName : null; } let clinit = data[i++]; cls.$clinit = clinit !== 0 ? clinit : function() { }; let virtualMethods = data[i++]; if (virtualMethods !== 0) { for (let j = 0; j < virtualMethods.length; j += 2) { let name = virtualMethods[j]; let func = virtualMethods[j + 1]; if (typeof name === "string") { name = [name]; } for (let k = 0; k < name.length; ++k) { cls.prototype[name[k]] = func; } } } cls.$array = null; } }; function jl_Object() { this.$monitor = null; this.$id$ = 0; } var jl_Object_monitorEnterSync = ($o) => { let var$2; if ($o.$monitor === null) jl_Object_createMonitor($o); $o = $o.$monitor; var$2 = $o.$owner; if (var$2 === null) $o.$owner = jl_Thread_currentThread; else if (var$2 !== jl_Thread_currentThread) { var$2 = new jl_IllegalStateException(); jl_Throwable__init_(var$2, $rt_s(0)); $rt_throw(var$2); } $o.$count = $o.$count + 1 | 0; }; var jl_Object_monitorExitSync = ($o) => { let var$2, var$3; if (!jl_Object_isEmptyMonitor($o)) { var$2 = $o.$monitor; if (var$2.$owner === jl_Thread_currentThread) { var$3 = var$2.$count - 1 | 0; var$2.$count = var$3; if (!var$3) var$2.$owner = null; jl_Object_isEmptyMonitor($o); return; } } $o = new jl_IllegalMonitorStateException(); jl_Exception__init_($o); $rt_throw($o); }; var jl_Object_createMonitor = ($o) => { let var$2; var$2 = new jl_Object$Monitor(); var$2.$owner = jl_Thread_currentThread; $o.$monitor = var$2; }; var jl_Object_isEmptyMonitor = ($this) => { let $monitor, var$2; $monitor = $this.$monitor; if ($monitor === null) return 1; a: { if ($monitor.$owner === null) { var$2 = $monitor.$enteringThreads; if (!(var$2 !== null && !otp_PlatformQueue_isEmpty$static(var$2))) { $monitor = $monitor.$notifyListeners; if ($monitor === null) break a; if (otp_PlatformQueue_isEmpty$static($monitor)) break a; } } return 0; } $this.$monitor = null; return 1; }; var jl_Object_getClass = ($this) => { return jl_Class_getClass($this.constructor); }; var jl_Object_equals = ($this, $other) => { return $this !== $other ? 0 : 1; }; var jl_Object_toString = ($this) => { let var$1, var$2, var$3, var$4; var$1 = jl_Object_getClass($this); if (var$1.$name3 === null) var$1.$name3 = $rt_str(var$1.$platformClass.$meta.name); var$2 = var$1.$name3; var$1 = $this; if (!var$1.$id$) var$1.$id$ = $rt_nextId(); var$1 = jl_Integer_toHexString($this.$id$); var$3 = new jl_StringBuilder(); jl_AbstractStringBuilder__init_(var$3); var$4 = jl_StringBuilder_append(var$3, var$2); jl_AbstractStringBuilder_append(var$4, 64); jl_StringBuilder_append(var$4, var$1); return jl_AbstractStringBuilder_toString(var$3); }; var jl_Object_clone = ($this) => { let $result, var$2, var$3; if (!$rt_isInstance($this, jl_Cloneable) && $this.constructor.$meta.item === null) { $result = new jl_CloneNotSupportedException(); jl_Exception__init_($result); $rt_throw($result); } $result = otp_Platform_clone($this); var$2 = $result; var$3 = $rt_nextId(); var$2.$id$ = var$3; return $result; }; var jlr_AnnotatedElement = $rt_classWithoutFields(0); var jlr_Type = $rt_classWithoutFields(0); function jl_Class() { let a = this; jl_Object.call(a); a.$name3 = null; a.$platformClass = null; } var jl_Class_getClass = (var$1) => { let var$2; if (var$1 === null) return null; var$2 = var$1.classObject; if (var$2 === null) { var$2 = new jl_Class(); var$2.$platformClass = var$1; var$1.classObject = var$2; } return var$2; }; var jl_Class_getComponentType = ($this) => { return jl_Class_getClass($this.$platformClass.$meta.item); }; var otji_JS = $rt_classWithoutFields(); var otji_JS_wrap = ($array) => { let var$2, $result, $i, var$5; if ($array === null) return null; $array = $array.data; var$2 = $array.length; $result = new Array(var$2); $i = 0; while ($i < var$2) { var$5 = $array[$i]; $result[$i] = otji_JSWrapper_javaToJs(var$5); $i = $i + 1 | 0; } return $result; }; var otji_JS_wrap0 = ($array) => { let var$2, $result, $i, var$5; if ($array === null) return null; $array = $array.data; var$2 = $array.length; $result = new Array(var$2); $i = 0; while ($i < var$2) { var$5 = $array[$i]; $result[$i] = var$5; $i = $i + 1 | 0; } return $result; }; var otji_JS_unwrapIntArray = ($array) => { let $result, var$3, $i, var$5; if ($array === null) return null; $result = $rt_createIntArray($array.length); var$3 = $result.data; $i = 0; var$5 = var$3.length; while ($i < var$5) { var$3[$i] = otjc_JSNumber_intValue$static(otji_JSWrapper_maybeUnwrap($array[$i])); $i = $i + 1 | 0; } return $result; }; var otji_JS_function = (var$1, var$2) => { let name = "jso$functor$" + var$2; let result = var$1[name]; if (typeof result !== "function") { let fn = function() { return var$1[var$2].apply(var$1, arguments); }; result = () => fn; var$1[name] = result; } return result(); }; var otp_Platform = $rt_classWithoutFields(); var otp_Platform_clone = (var$1) => { let copy = new var$1.constructor(); for (let field in var$1) { if (var$1.hasOwnProperty(field)) { copy[field] = var$1[field]; } } return copy; }; function jl_Throwable() { let a = this; jl_Object.call(a); a.$message0 = null; a.$cause = null; a.$suppressionEnabled = 0; a.$writableStackTrace = 0; } var jl_Throwable__init_ = ($this, var$1) => { $this.$suppressionEnabled = 1; $this.$writableStackTrace = 1; $this.$message0 = var$1; }; var jl_Throwable_getMessage = ($this) => { return $this.$message0; }; var jl_Throwable_getCause = ($this) => { let var$1; var$1 = $this.$cause; if (var$1 === $this) var$1 = null; return var$1; }; var jl_Exception = $rt_classWithoutFields(jl_Throwable); var jl_Exception__init_ = ($this) => { $this.$suppressionEnabled = 1; $this.$writableStackTrace = 1; }; var jl_RuntimeException = $rt_classWithoutFields(jl_Exception); var jl_RuntimeException__init_ = ($this) => { jl_Exception__init_($this); }; var jl_RuntimeException__init_1 = ($this, $message) => { jl_Throwable__init_($this, $message); }; var jl_RuntimeException__init_0 = (var_0) => { let var_1 = new jl_RuntimeException(); jl_RuntimeException__init_1(var_1, var_0); return var_1; }; var jl_ClassCastException = $rt_classWithoutFields(jl_RuntimeException); var ji_Serializable = $rt_classWithoutFields(0); var jl_Comparable = $rt_classWithoutFields(0); var jl_CharSequence = $rt_classWithoutFields(0); function jl_String() { jl_Object.call(this); this.$hashCode0 = 0; } var jl_String_EMPTY_CHARS = null; var jl_String_EMPTY = null; var jl_String_CASE_INSENSITIVE_ORDER = null; var jl_String__init_7 = ($this) => { $this.$nativeString = ""; }; var jl_String__init_0 = () => { let var_0 = new jl_String(); jl_String__init_7(var_0); return var_0; }; var jl_String__init_1 = ($this, $other) => { $this.$nativeString = $other.$nativeString; }; var jl_String__init_2 = (var_0) => { let var_1 = new jl_String(); jl_String__init_1(var_1, var_0); return var_1; }; var jl_String__init_4 = ($this, $characters) => { $this.$nativeString = $rt_charArrayToString($characters.data, 0, $characters.data.length); }; var jl_String__init_ = (var_0) => { let var_1 = new jl_String(); jl_String__init_4(var_1, var_0); return var_1; }; var jl_String__init_8 = (var$0, var$1) => { var$0.$nativeString = var$1; }; var jl_String__init_5 = (var_0) => { let var_1 = new jl_String(); jl_String__init_8(var_1, var_0); return var_1; }; var jl_String__init_6 = (var$0, var$1, $offset, $count) => { let var$4, var$5; var$4 = var$1.data.length; if ($offset >= 0 && $count >= 0 && $count <= (var$4 - $offset | 0)) { var$0.$nativeString = $rt_charArrayToString(var$1.data, $offset, $count); return; } var$5 = new jl_IndexOutOfBoundsException(); jl_Exception__init_(var$5); $rt_throw(var$5); }; var jl_String__init_3 = (var_0, var_1, var_2) => { let var_3 = new jl_String(); jl_String__init_6(var_3, var_0, var_1, var_2); return var_3; }; var jl_String_charAt = ($this, $index) => { let var$2; if ($index >= 0 && $index < $this.$nativeString.length) return $this.$nativeString.charCodeAt($index); var$2 = new jl_StringIndexOutOfBoundsException(); jl_Exception__init_(var$2); $rt_throw(var$2); }; var jl_String_length = ($this) => { return $this.$nativeString.length; }; var jl_String_isEmpty = ($this) => { return $this.$nativeString.length ? 0 : 1; }; var jl_String_startsWith0 = ($this, $prefix, $toffset) => { let $i, var$4, var$5; if (($toffset + $prefix.$nativeString.length | 0) > $this.$nativeString.length) return 0; $i = 0; while ($i < $prefix.$nativeString.length) { var$4 = jl_String_charAt($prefix, $i); var$5 = $toffset + 1 | 0; if (var$4 != jl_String_charAt($this, $toffset)) return 0; $i = $i + 1 | 0; $toffset = var$5; } return 1; }; var jl_String_startsWith = ($this, $prefix) => { if ($this === $prefix) return 1; return jl_String_startsWith0($this, $prefix, 0); }; var jl_String_indexOf0 = ($this, $ch, $fromIndex) => { let $i, $bmpChar, $hi, $lo; $i = jl_Math_max(0, $fromIndex); if ($ch < 65536) { $bmpChar = $ch & 65535; while (true) { if ($i >= $this.$nativeString.length) return -1; if ($this.$nativeString.charCodeAt($i) == $bmpChar) break; $i = $i + 1 | 0; } return $i; } $hi = jl_Character_highSurrogate($ch); $lo = jl_Character_lowSurrogate($ch); while (true) { if ($i >= ($this.$nativeString.length - 1 | 0)) return -1; if ($this.$nativeString.charCodeAt($i) == $hi && $this.$nativeString.charCodeAt($i + 1 | 0) == $lo) break; $i = $i + 1 | 0; } return $i; }; var jl_String_indexOf1 = ($this, $ch) => { return jl_String_indexOf0($this, $ch, 0); }; var jl_String_lastIndexOf = ($this, $ch, $fromIndex) => { let $i, $bmpChar, $hi, $lo; $i = jl_Math_min($fromIndex, $this.$nativeString.length - 1 | 0); if ($ch < 65536) { $bmpChar = $ch & 65535; while (true) { if ($i < 0) return -1; if ($this.$nativeString.charCodeAt($i) == $bmpChar) break; $i = $i + -1 | 0; } return $i; } $hi = jl_Character_highSurrogate($ch); $lo = jl_Character_lowSurrogate($ch); while (true) { if ($i < 1) return -1; if ($this.$nativeString.charCodeAt($i) == $lo) { $fromIndex = $i - 1 | 0; if ($this.$nativeString.charCodeAt($fromIndex) == $hi) break; } $i = $i + -1 | 0; } return $fromIndex; }; var jl_String_lastIndexOf0 = ($this, $ch) => { return jl_String_lastIndexOf($this, $ch, $this.$nativeString.length - 1 | 0); }; var jl_String_indexOf2 = ($this, $str, $fromIndex) => { let $i, $toIndex, $j; $i = jl_Math_max(0, $fromIndex); $toIndex = $this.$nativeString.length - $str.$nativeString.length | 0; a: while (true) { if ($i > $toIndex) return -1; $j = 0; while (true) { if ($j >= $str.$nativeString.length) break a; if (jl_String_charAt($this, $i + $j | 0) != jl_String_charAt($str, $j)) break; $j = $j + 1 | 0; } $i = $i + 1 | 0; } return $i; }; var jl_String_indexOf = ($this, $str) => { return jl_String_indexOf2($this, $str, 0); }; var jl_String_substring = ($this, $beginIndex, $endIndex) => { let $length, var$4, var$5; $length = $this.$nativeString.length; var$4 = $rt_compare($beginIndex, $endIndex); if (!var$4) return jl_String_EMPTY; if (!$beginIndex && $endIndex == $length) return $this; if ($beginIndex >= 0 && var$4 <= 0 && $endIndex <= $length) return jl_String__init_5($this.$nativeString.substring($beginIndex, $endIndex)); var$5 = new jl_StringIndexOutOfBoundsException(); jl_Exception__init_(var$5); $rt_throw(var$5); }; var jl_String_substring0 = ($this, $beginIndex) => { return jl_String_substring($this, $beginIndex, $this.$nativeString.length); }; var jl_String_concat = ($this, $str) => { let $buffer, var$3, $index, $i, var$6; if (jl_String_isEmpty($str)) return $this; if (jl_String_isEmpty($this)) return $str; $buffer = $rt_createCharArray($this.$nativeString.length + $str.$nativeString.length | 0); var$3 = $buffer.data; $index = 0; $i = 0; while ($i < $this.$nativeString.length) { var$6 = $index + 1 | 0; var$3[$index] = jl_String_charAt($this, $i); $i = $i + 1 | 0; $index = var$6; } $i = 0; while ($i < $str.$nativeString.length) { var$6 = $index + 1 | 0; var$3[$index] = jl_String_charAt($str, $i); $i = $i + 1 | 0; $index = var$6; } $str = jl_String__init_0(); $str.$nativeString = $rt_fullArrayToString($buffer.data); return $str; }; var jl_String_contains = ($this, $s) => { let $i, $sz, $j; $i = $this.$nativeString.length; $s = $s; $sz = $i - $s.$nativeString.length | 0; $i = 0; while ($i <= $sz) { $j = 0; while (true) { if ($j >= $s.$nativeString.length) return 1; if (jl_String_charAt($this, $i + $j | 0) != jl_String_charAt($s, $j)) break; $j = $j + 1 | 0; } $i = $i + 1 | 0; } return 0; }; var jl_String_trim = ($this) => { let $lower, $upper; $lower = 0; $upper = $this.$nativeString.length - 1 | 0; a: { while ($lower <= $upper) { if (jl_String_charAt($this, $lower) > 32) break a; $lower = $lower + 1 | 0; } } while ($lower <= $upper && jl_String_charAt($this, $upper) <= 32) { $upper = $upper + -1 | 0; } return jl_String_substring($this, $lower, $upper + 1 | 0); }; var jl_String_toString = ($this) => { return $this; }; var jl_String_toCharArray = ($this) => { let $array, var$2, $i, var$4; $array = $rt_createCharArray($this.$nativeString.length); var$2 = $array.data; $i = 0; var$4 = var$2.length; while ($i < var$4) { var$2[$i] = jl_String_charAt($this, $i); $i = $i + 1 | 0; } return $array; }; var jl_String_valueOf0 = ($obj) => { return $obj === null ? $rt_s(1) : $obj.$toString(); }; var jl_String_valueOf1 = ($c) => { let var$2, var$3; var$2 = new jl_String(); var$3 = $rt_createCharArray(1); var$3.data[0] = $c; jl_String__init_4(var$2, var$3); return var$2; }; var jl_String_valueOf = ($i) => { let var$2; var$2 = new jl_StringBuilder(); jl_AbstractStringBuilder__init_(var$2); jl_AbstractStringBuilder_append0(var$2, $i); return jl_AbstractStringBuilder_toString(var$2); }; var jl_String_equals = ($this, $other) => { let $str; if ($this === $other) return 1; if (!($other instanceof jl_String)) return 0; $str = $other; return $this.$nativeString !== $str.$nativeString ? 0 : 1; }; var jl_String_equalsIgnoreCase = ($this, $other) => { let $i; if ($this === $other) return 1; if ($other === null) return 0; if ($this.$nativeString.length != $other.$nativeString.length) return 0; $i = 0; while ($i < $this.$nativeString.length) { if (jl_Character_toLowerCase(jl_String_charAt($this, $i)) != jl_Character_toLowerCase(jl_String_charAt($other, $i))) return 0; $i = $i + 1 | 0; } return 1; }; var jl_String_hashCode = ($this) => { let $i; a: { if (!$this.$hashCode0) { $i = 0; while (true) { if ($i >= $this.$nativeString.length) break a; $this.$hashCode0 = (31 * $this.$hashCode0 | 0) + $this.$nativeString.charCodeAt($i) | 0; $i = $i + 1 | 0; } } } return $this.$hashCode0; }; var jl_String_toLowerCase = ($this) => { let $lowerCase; $lowerCase = $this.$nativeString.toLowerCase(); if ($lowerCase !== $this.$nativeString) $this = jl_String__init_5($lowerCase); return $this; }; var jl_String_split = ($this, $regex) => { let var$2, var$3, var$4, var$5, var$6, var$7; $regex = jur_Pattern_compile($regex); var$2 = $this; var$3 = ju_ArrayList__init_(); $regex = jur_Pattern_matcher($regex, var$2); var$4 = 0; var$5 = 0; var$2 = var$2; if (!var$2.$nativeString.length) { var$6 = $rt_createArray(jl_String, 1); var$6.data[0] = $rt_s(2); } else { while (jur_Matcher_find($regex)) { var$4 = var$4 + 1 | 0; ju_ArrayList_add(var$3, jl_String_substring(var$2, var$5, jur_Matcher_start($regex))); var$5 = jur_Matcher_end($regex); } ju_ArrayList_add(var$3, jl_String_substring(var$2, var$5, var$2.$nativeString.length)); var$7 = var$4 + 1 | 0; while (true) { var$7 = var$7 + -1 | 0; if (var$7 < 0) break; if (ju_ArrayList_get(var$3, var$7).$nativeString.length) break; ju_ArrayList_remove(var$3, var$7); } if (var$7 < 0) var$7 = 0; var$6 = $rt_createArray(jl_String, var$7); var$6 = ju_AbstractCollection_toArray(var$3, var$6); } return var$6; }; var jl_String_replaceAll = ($this, $regex, $replacement) => { let var$3, var$4, var$5, var$6; $regex = jur_Pattern_matcher(jur_Pattern_compile($regex), $this); var$3 = new jl_StringBuffer(); jl_AbstractStringBuilder__init_(var$3); $regex.$leftBound0 = 0; var$4 = $regex.$string1.$nativeString.length; $regex.$rightBound0 = var$4; jur_MatchResultImpl_reset($regex.$matchResult, $regex.$string1, $regex.$leftBound0, var$4); $regex.$appendPos = 0; $regex.$replacement = null; $regex.$matchResult.$previousMatch = -1; while (jur_Matcher_find($regex)) { $regex.$processedRepl = jur_Matcher_processReplacement($regex, $replacement); var$5 = $regex.$string1; var$6 = $regex.$appendPos; var$4 = jur_Matcher_start($regex); jl_StringBuffer_append(var$3, jl_String_substring(var$5, var$6, var$4)); jl_AbstractStringBuilder_append1(var$3, $regex.$processedRepl); $regex.$appendPos = jur_Matcher_end($regex); } $replacement = $regex.$string1; var$6 = $regex.$appendPos; $regex = $replacement; return jl_AbstractStringBuilder_toString(jl_StringBuffer_append(var$3, jl_String_substring($regex, var$6, $regex.$nativeString.length))); }; var jl_String_compareTo = ($this, var$1) => { let var$2, var$3, var$4; a: { var$1 = var$1; if ($this === var$1) var$2 = 0; else { var$3 = jl_Math_min($this.$nativeString.length, var$1.$nativeString.length); var$4 = 0; while (true) { if (var$4 >= var$3) { var$2 = $this.$nativeString.length - var$1.$nativeString.length | 0; break a; } var$2 = jl_String_charAt($this, var$4) - jl_String_charAt(var$1, var$4) | 0; if (var$2) break; var$4 = var$4 + 1 | 0; } } } return var$2; }; var jl_String__clinit_ = () => { jl_String_EMPTY_CHARS = $rt_createCharArray(0); jl_String_EMPTY = jl_String__init_0(); jl_String_CASE_INSENSITIVE_ORDER = new jl_String$_clinit_$lambda$_115_0(); }; var jl_Number = $rt_classWithoutFields(); function jl_Integer() { jl_Number.call(this); this.$value0 = 0; } var jl_Integer_TYPE = null; var jl_Integer_integerCache = null; var jl_Integer__init_0 = ($this, $value) => { $this.$value0 = $value; }; var jl_Integer__init_ = (var_0) => { let var_1 = new jl_Integer(); jl_Integer__init_0(var_1, var_0); return var_1; }; var jl_Integer_toString0 = ($i, $radix) => { if (!($radix >= 2 && $radix <= 36)) $radix = 10; return jl_AbstractStringBuilder_append3(jl_AbstractStringBuilder__init_1(20), $i, $radix).$toString(); }; var jl_Integer_toHexString = ($i) => { let var$2, var$3, var$4, var$5, var$6, var$7; if (!$i) var$2 = $rt_s(3); else { var$3 = (((32 - jl_Integer_numberOfLeadingZeros($i) | 0) + 4 | 0) - 1 | 0) / 4 | 0; var$4 = $rt_createCharArray(var$3); var$5 = var$4.data; var$6 = (var$3 - 1 | 0) * 4 | 0; var$3 = 0; while (var$6 >= 0) { var$7 = var$3 + 1 | 0; var$5[var$3] = jl_Character_forDigit(($i >>> var$6 | 0) & 15, 16); var$6 = var$6 - 4 | 0; var$3 = var$7; } var$2 = jl_String__init_(var$4); } return var$2; }; var jl_Integer_toString = ($i) => { return jl_Integer_toString0($i, 10); }; var jl_Integer_parseInt = ($s, $radix) => { if ($s !== null) return jl_Integer_parseIntImpl($s, 0, $s.$nativeString.length, $radix); $s = new jl_NumberFormatException(); jl_Throwable__init_($s, $rt_s(4)); $rt_throw($s); }; var jl_Integer_parseIntImpl = ($s, $beginIndex, $endIndex, $radix) => { let $negative, $digit, $value, $maxValue, var$9, var$10, var$11, var$12; if ($beginIndex == $endIndex) { $s = new jl_NumberFormatException(); jl_Throwable__init_($s, $rt_s(5)); $rt_throw($s); } if ($radix >= 2 && $radix <= 36) { a: { $negative = 0; $s = $s; switch (jl_String_charAt($s, $beginIndex)) { case 43: $digit = $beginIndex + 1 | 0; break a; case 45: $negative = 1; $digit = $beginIndex + 1 | 0; break a; default: } $digit = $beginIndex; } $value = 0; $maxValue = 1 + (2147483647 / $radix | 0) | 0; if ($digit == $endIndex) { $s = new jl_NumberFormatException(); jl_Exception__init_($s); $rt_throw($s); } while ($digit < $endIndex) { var$9 = $digit + 1 | 0; $digit = jl_Integer_decodeDigit(jl_String_charAt($s, $digit)); if ($digit < 0) { var$10 = new jl_NumberFormatException(); $s = jl_String_valueOf0(jl_String_substring($s, $beginIndex, $endIndex)); var$11 = new jl_StringBuilder(); jl_AbstractStringBuilder__init_(var$11); jl_StringBuilder_append(jl_StringBuilder_append(var$11, $rt_s(6)), $s); jl_Throwable__init_(var$10, jl_AbstractStringBuilder_toString(var$11)); $rt_throw(var$10); } if ($digit >= $radix) { var$10 = new jl_NumberFormatException(); $s = jl_String_valueOf0(jl_String_substring($s, $beginIndex, $endIndex)); var$11 = new jl_StringBuilder(); jl_AbstractStringBuilder__init_(var$11); var$12 = jl_StringBuilder_append(var$11, $rt_s(7)); jl_AbstractStringBuilder_append0(var$12, $radix); jl_StringBuilder_append(jl_StringBuilder_append(var$12, $rt_s(8)), $s); jl_Throwable__init_(var$10, jl_AbstractStringBuilder_toString(var$11)); $rt_throw(var$10); } if ($value > $maxValue) { $s = new jl_NumberFormatException(); jl_Throwable__init_($s, $rt_s(9)); $rt_throw($s); } $value = $rt_imul($radix, $value) + $digit | 0; if ($value < 0) { if (var$9 == $endIndex && $value == -2147483648 && $negative) return -2147483648; var$10 = new jl_NumberFormatException(); $s = jl_String_valueOf0(jl_String_substring($s, $beginIndex, $endIndex)); var$11 = new jl_StringBuilder(); jl_AbstractStringBuilder__init_(var$11); jl_StringBuilder_append(jl_StringBuilder_append(var$11, $rt_s(10)), $s); jl_Throwable__init_(var$10, jl_AbstractStringBuilder_toString(var$11)); $rt_throw(var$10); } $digit = var$9; } if ($negative) $value = -$value | 0; return $value; } $s = new jl_NumberFormatException(); var$10 = new jl_StringBuilder(); jl_AbstractStringBuilder__init_(var$10); jl_AbstractStringBuilder_append0(jl_StringBuilder_append(var$10, $rt_s(11)), $radix); jl_Throwable__init_($s, jl_AbstractStringBuilder_toString(var$10)); $rt_throw($s); }; var jl_Integer_parseInt0 = ($s) => { return jl_Integer_parseInt($s, 10); }; var jl_Integer_valueOf = ($i) => { let var$2, var$3; if ($i >= -128 && $i <= 127) { a: { if (jl_Integer_integerCache === null) { jl_Integer_integerCache = $rt_createArray(jl_Integer, 256); var$2 = 0; while (true) { var$3 = jl_Integer_integerCache.data; if (var$2 >= var$3.length) break a; var$3[var$2] = jl_Integer__init_(var$2 - 128 | 0); var$2 = var$2 + 1 | 0; } } } return jl_Integer_integerCache.data[$i + 128 | 0]; } return jl_Integer__init_($i); }; var jl_Integer_intValue = ($this) => { return $this.$value0; }; var jl_Integer_toString1 = ($this) => { return jl_Integer_toString($this.$value0); }; var jl_Integer_hashCode = ($this) => { return $this.$value0; }; var jl_Integer_equals = ($this, $other) => { if ($this === $other) return 1; return $other instanceof jl_Integer && $other.$value0 == $this.$value0 ? 1 : 0; }; var jl_Integer_decode = ($nm) => { let $index, $negaive, $radix, $value, $maxValue, var$7, $digit; if (jl_String_isEmpty($nm)) { $nm = new jl_NumberFormatException(); jl_Throwable__init_($nm, $rt_s(12)); $rt_throw($nm); } $index = 0; $negaive = 0; if (jl_String_charAt($nm, $index) == 43) $index = 1; else if (jl_String_charAt($nm, $index) == 45) { $index = 1; $negaive = 1; } if ($index >= $nm.$nativeString.length) { $nm = new jl_NumberFormatException(); jl_Throwable__init_($nm, $rt_s(13)); $rt_throw($nm); } $radix = 10; if (jl_String_charAt($nm, $index) == 35) { $radix = 16; $index = $index + 1 | 0; } else if (jl_String_charAt($nm, $index) == 48) { $index = $index + 1 | 0; if ($index == $nm.$nativeString.length) return jl_Integer_valueOf(0); if (jl_String_charAt($nm, $index) != 120 && jl_String_charAt($nm, $index) != 88) $radix = 8; else { $radix = 16; $index = $index + 1 | 0; } } if ($index >= $nm.$nativeString.length) { $nm = new jl_NumberFormatException(); jl_Throwable__init_($nm, $rt_s(13)); $rt_throw($nm); } $value = 0; $maxValue = 1 + (2147483647 / $radix | 0) | 0; a: { while ($index < $nm.$nativeString.length) { var$7 = $index + 1 | 0; $digit = jl_Integer_decodeDigit(jl_String_charAt($nm, $index)); if ($digit < 0) break a; if ($digit >= $radix) break a; if ($value > $maxValue) { $nm = new jl_NumberFormatException(); jl_Throwable__init_($nm, $rt_s(9)); $rt_throw($nm); } $value = $rt_imul($value, $radix) + $digit | 0; if ($value < 0) { if ($negaive && $value == -2147483648 && var$7 == $nm.$nativeString.length) return jl_Integer_valueOf(-2147483648); $nm = new jl_NumberFormatException(); jl_Throwable__init_($nm, $rt_s(14)); $rt_throw($nm); } $index = var$7; } if ($negaive) $value = -$value | 0; return jl_Integer_valueOf($value); } $nm = new jl_NumberFormatException(); jl_Throwable__init_($nm, $rt_s(13)); $rt_throw($nm); }; var jl_Integer_decodeDigit = ($c) => { if ($c >= 48 && $c <= 57) return $c - 48 | 0; if ($c >= 97 && $c <= 122) return ($c - 97 | 0) + 10 | 0; if ($c >= 65 && $c <= 90) return ($c - 65 | 0) + 10 | 0; return -1; }; var jl_Integer_numberOfLeadingZeros = ($i) => { let $n, var$3; if (!$i) return 32; $n = 0; var$3 = $i >>> 16 | 0; if (var$3) $n = 16; else var$3 = $i; $i = var$3 >>> 8 | 0; if (!$i) $i = var$3; else $n = $n | 8; var$3 = $i >>> 4 | 0; if (!var$3) var$3 = $i; else $n = $n | 4; $i = var$3 >>> 2 | 0; if (!$i) $i = var$3; else $n = $n | 2; if ($i >>> 1 | 0) $n = $n | 1; return (32 - $n | 0) - 1 | 0; }; var jl_Integer_numberOfTrailingZeros = ($i) => { let $n, var$3; if (!$i) return 32; $n = 0; var$3 = $i << 16; if (var$3) $n = 16; else var$3 = $i; $i = var$3 << 8; if (!$i) $i = var$3; else $n = $n | 8; var$3 = $i << 4; if (!var$3) var$3 = $i; else $n = $n | 4; $i = var$3 << 2; if (!$i) $i = var$3; else $n = $n | 2; if ($i << 1) $n = $n | 1; return (32 - $n | 0) - 1 | 0; }; var jl_Integer_compareTo = ($this, var$1) => { var$1 = var$1; return $rt_compare($this.$value0, var$1.$value0); }; var jl_Integer__clinit_ = () => { jl_Integer_TYPE = $rt_cls($rt_intcls); }; function jl_AbstractStringBuilder() { let a = this; jl_Object.call(a); a.$buffer = null; a.$length0 = 0; } var jl_AbstractStringBuilder__init_ = ($this) => { jl_AbstractStringBuilder__init_0($this, 16); }; var jl_AbstractStringBuilder__init_0 = ($this, $capacity) => { $this.$buffer = $rt_createCharArray($capacity); }; var jl_AbstractStringBuilder__init_1 = (var_0) => { let var_1 = new jl_AbstractStringBuilder(); jl_AbstractStringBuilder__init_0(var_1, var_0); return var_1; }; var jl_AbstractStringBuilder_append1 = ($this, $string) => { return $this.$insert($this.$length0, $string); }; var jl_AbstractStringBuilder_insert = ($this, $index, $string) => { let $i, $i_0, var$5, var$6; if ($index >= 0 && $index <= $this.$length0) { if ($string === null) $string = $rt_s(1); else if (jl_String_isEmpty($string)) return $this; $this.$ensureCapacity($this.$length0 + $string.$nativeString.length | 0); $i = $this.$length0 - 1 | 0; while ($i >= $index) { $this.$buffer.data[$i + $string.$nativeString.length | 0] = $this.$buffer.data[$i]; $i = $i + -1 | 0; } $this.$length0 = $this.$length0 + $string.$nativeString.length | 0; $i_0 = 0; while ($i_0 < $string.$nativeString.length) { var$5 = $this.$buffer.data; var$6 = $index + 1 | 0; var$5[$index] = jl_String_charAt($string, $i_0); $i_0 = $i_0 + 1 | 0; $index = var$6; } return $this; } $string = new jl_StringIndexOutOfBoundsException(); jl_Exception__init_($string); $rt_throw($string); }; var jl_AbstractStringBuilder_append0 = ($this, $value) => { return jl_AbstractStringBuilder_append3($this, $value, 10); }; var jl_AbstractStringBuilder_append3 = ($this, $value, $radix) => { return jl_AbstractStringBuilder_insert3($this, $this.$length0, $value, $radix); }; var jl_AbstractStringBuilder_insert3 = ($this, $target, $value, $radix) => { let $positive, var$5, var$6, $pos, $sz, $posLimit, var$10; $positive = 1; if ($value < 0) { $positive = 0; $value = -$value | 0; } a: { if ($rt_ucmp($value, $radix) < 0) { if ($positive) jl_AbstractStringBuilder_insertSpace($this, $target, $target + 1 | 0); else { jl_AbstractStringBuilder_insertSpace($this, $target, $target + 2 | 0); var$5 = $this.$buffer.data; var$6 = $target + 1 | 0; var$5[$target] = 45; $target = var$6; } $this.$buffer.data[$target] = jl_Character_forDigit($value, $radix); } else { $pos = 1; $sz = 1; $posLimit = $rt_udiv(-1, $radix); b: { while (true) { var$10 = $rt_imul($pos, $radix); if ($rt_ucmp(var$10, $value) > 0) { var$10 = $pos; break b; } $sz = $sz + 1 | 0; if ($rt_ucmp(var$10, $posLimit) > 0) break; $pos = var$10; } } if (!$positive) $sz = $sz + 1 | 0; jl_AbstractStringBuilder_insertSpace($this, $target, $target + $sz | 0); if ($positive) $positive = $target; else { var$5 = $this.$buffer.data; $positive = $target + 1 | 0; var$5[$target] = 45; } while (true) { if (!var$10) break a; var$5 = $this.$buffer.data; $target = $positive + 1 | 0; var$5[$positive] = jl_Character_forDigit($rt_udiv($value, var$10), $radix); $value = $rt_umod($value, var$10); var$10 = $rt_udiv(var$10, $radix); $positive = $target; } } } return $this; }; var jl_AbstractStringBuilder_insert4 = ($this, $target, $value) => { let $mantissa, var$4, $number, $exp, $negative, $intPart, $sz, $digits, $zeros, $leadingZeros, $leadingZero, $pos, $intDigit, $i; $mantissa = $rt_compare($value, 0); if (!$mantissa) { if (1 / $value === Infinity) { jl_AbstractStringBuilder_insertSpace($this, $target, $target + 3 | 0); var$4 = $this.$buffer.data; $mantissa = $target + 1 | 0; var$4[$target] = 48; $target = $mantissa + 1 | 0; var$4[$mantissa] = 46; var$4[$target] = 48; return $this; } jl_AbstractStringBuilder_insertSpace($this, $target, $target + 4 | 0); var$4 = $this.$buffer.data; $mantissa = $target + 1 | 0; var$4[$target] = 45; $target = $mantissa + 1 | 0; var$4[$mantissa] = 48; $mantissa = $target + 1 | 0; var$4[$target] = 46; var$4[$mantissa] = 48; return $this; } if (isNaN($value) ? 1 : 0) { jl_AbstractStringBuilder_insertSpace($this, $target, $target + 3 | 0); var$4 = $this.$buffer.data; $mantissa = $target + 1 | 0; var$4[$target] = 78; $target = $mantissa + 1 | 0; var$4[$mantissa] = 97; var$4[$target] = 78; return $this; } if (!isFinite($value) ? 1 : 0) { if ($mantissa > 0) { jl_AbstractStringBuilder_insertSpace($this, $target, $target + 8 | 0); $mantissa = $target; } else { jl_AbstractStringBuilder_insertSpace($this, $target, $target + 9 | 0); var$4 = $this.$buffer.data; $mantissa = $target + 1 | 0; var$4[$target] = 45; } var$4 = $this.$buffer.data; $target = $mantissa + 1 | 0; var$4[$mantissa] = 73; $mantissa = $target + 1 | 0; var$4[$target] = 110; $target = $mantissa + 1 | 0; var$4[$mantissa] = 102; $mantissa = $target + 1 | 0; var