UNPKG

@specy/risc-v

Version:

The RARS risc-v interpreter in JS

1,642 lines 1.43 MB
// src/generated/rars.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_getThread = () => { { return jl_Thread_currentThread0(); } }; var $rt_setThread = (t) => { { return jl_Thread_setCurrentThread(t); } }; 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_ge = (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_fastStringToCharArray = (string) => { let array = new Uint16Array(string.length); for (let i = 0; i < array.length; ++i) { array[i] = string.charCodeAt(i); } return new $rt_charArrayCls(array); }; var $rt_str = (str) => str === null ? null : jl_String__init_4(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; } }; var $rt_suspending = () => { let thread = $rt_nativeThread(); return thread != null && thread.isSuspending(); }; var $rt_resuming = () => { let thread = $rt_nativeThread(); return thread != null && thread.isResuming(); }; var $rt_currentNativeThread = null; var $rt_nativeThread = () => $rt_currentNativeThread; var $rt_invalidPointer = () => { throw new Error("Invalid recorded state"); }; 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_0(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_Throwable__init_($o); $rt_throw($o); }; var jl_Object_monitorEnter = ($o) => { let var$2; if ($o.$monitor === null) jl_Object_createMonitor($o); var$2 = $o.$monitor; if (var$2.$owner === null) var$2.$owner = jl_Thread_currentThread; if (var$2.$owner !== jl_Thread_currentThread) jl_Object_monitorEnterWait$_asyncCall_$($o, 1); else var$2.$count = var$2.$count + 1 | 0; }; 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_monitorEnterWait = ($o, $count, $callback) => { let $thread_0, $monitor, var$6; $thread_0 = jl_Thread_currentThread; $monitor = $o.$monitor; if ($monitor === null) { jl_Object_createMonitor($o); jl_Thread_setCurrentThread($thread_0); $o = $o.$monitor; $o.$count = $o.$count + $count | 0; $o = null; otpp_AsyncCallbackWrapper_complete($callback, $o); return; } if ($monitor.$owner === null) { $monitor.$owner = $thread_0; jl_Thread_setCurrentThread($thread_0); $o = $o.$monitor; $o.$count = $o.$count + $count | 0; $o = null; otpp_AsyncCallbackWrapper_complete($callback, $o); return; } if ($monitor.$enteringThreads === null) $monitor.$enteringThreads = otp_Platform_createQueue(); $monitor = $monitor.$enteringThreads; var$6 = new jl_Object$monitorEnterWait$lambda$_6_0(); var$6.$_0 = $thread_0; var$6.$_1 = $o; var$6.$_2 = $count; var$6.$_3 = $callback; otp_PlatformQueue_add$static($monitor, var$6); }; var jl_Object_monitorExit = ($o) => { jl_Object_monitorExit0($o, 1); }; var jl_Object_monitorExit0 = ($o, $count) => { let $monitor; if (!jl_Object_isEmptyMonitor($o)) { $monitor = $o.$monitor; if ($monitor.$owner === jl_Thread_currentThread) { $count = $monitor.$count - $count | 0; $monitor.$count = $count; if ($count > 0) return; $monitor.$owner = null; $monitor = $monitor.$enteringThreads; if ($monitor !== null && !otp_PlatformQueue_isEmpty$static($monitor)) { $monitor = new jl_Object$monitorExit$lambda$_8_0(); $monitor.$_01 = $o; otp_Platform_postpone($monitor); } else jl_Object_isEmptyMonitor($o); return; } } $o = new jl_IllegalMonitorStateException(); jl_Throwable__init_($o); $rt_throw($o); }; 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$1 = jl_Class_getName(jl_Object_getClass($this)); var$2 = jl_Integer_toHexString(jl_Object_identity($this)); var$3 = new jl_StringBuilder(); jl_AbstractStringBuilder__init_(var$3); var$1 = jl_StringBuilder_append(var$3, var$1); jl_AbstractStringBuilder_append0(var$1, 64); jl_StringBuilder_append(var$1, var$2); return jl_AbstractStringBuilder_toString(var$3); }; var jl_Object_identity = ($this) => { let $platformThis; $platformThis = $this; if (!$platformThis.$id$) $platformThis.$id$ = $rt_nextId(); return $this.$id$; }; 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_Throwable__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 jl_Object_wait = ($this, $timeout) => { let var$2, var$3, $$je, $ptr, $tmp; $ptr = 0; if ($rt_resuming()) { let $thread = $rt_nativeThread(); $ptr = $thread.pop(); var$3 = $thread.pop(); var$2 = $thread.pop(); $timeout = $thread.pop(); $this = $thread.pop(); } main: while (true) { switch ($ptr) { case 0: try { var$2 = 0; $ptr = 1; continue main; } catch ($$e) { $$je = $rt_wrapException($$e); if ($$je instanceof jl_InterruptedException) { } else { throw $$e; } } var$3 = new jl_InterruptedException(); jl_Throwable__init_(var$3); $rt_throw(var$3); case 1: a: { try { jl_Object_wait1($this, $timeout, var$2); if ($rt_suspending()) { break main; } } catch ($$e) { $$je = $rt_wrapException($$e); if ($$je instanceof jl_InterruptedException) { break a; } else { throw $$e; } } return; } var$3 = new jl_InterruptedException(); jl_Throwable__init_(var$3); $rt_throw(var$3); default: $rt_invalidPointer(); } } $rt_nativeThread().push($this, $timeout, var$2, var$3, $ptr); }; var jl_Object_wait1 = ($this, $timeout, $nanos) => { let var$3, $ptr, $tmp; $ptr = 0; if ($rt_resuming()) { let $thread = $rt_nativeThread(); $ptr = $thread.pop(); var$3 = $thread.pop(); $nanos = $thread.pop(); $timeout = $thread.pop(); $this = $thread.pop(); } main: while (true) { switch ($ptr) { case 0: var$3 = $this.$monitor; if (!(var$3 !== null && var$3.$owner === jl_Thread_currentThread ? 1 : 0)) { var$3 = new jl_IllegalMonitorStateException(); jl_Throwable__init_(var$3); $rt_throw(var$3); } $ptr = 1; case 1: jl_Object_waitImpl$_asyncCall_$($this, $timeout, $nanos); if ($rt_suspending()) { break main; } return; default: $rt_invalidPointer(); } } $rt_nativeThread().push($this, $timeout, $nanos, var$3, $ptr); }; var jl_Object_waitImpl = ($this, $timeout, $nanos, $callback) => { let $monitor, $listener, var$6; $monitor = $this.$monitor; $listener = new jl_Object$NotifyListenerImpl(); var$6 = $monitor.$count; $listener.$currentThread = jl_Thread_currentThread; $listener.$timerId = -1; $listener.$obj = $this; $listener.$callback = $callback; $listener.$lockCount = var$6; if ($monitor.$notifyListeners === null) $monitor.$notifyListeners = otp_Platform_createQueue(); otp_PlatformQueue_add$static($monitor.$notifyListeners, $listener); jl_Thread_currentThread.$interruptHandler = $listener; if (!(Long_le($timeout, Long_ZERO) && $nanos <= 0)) $listener.$timerId = otp_Platform_schedule($listener, Long_lt($timeout, Long_fromInt(2147483647)) ? Long_lo($timeout) : 2147483647); jl_Object_monitorExit0($this, $monitor.$count); }; var jl_Object_wait0 = ($this) => { let var$1, var$2, $$je, $ptr, $tmp; $ptr = 0; if ($rt_resuming()) { let $thread = $rt_nativeThread(); $ptr = $thread.pop(); var$2 = $thread.pop(); var$1 = $thread.pop(); $this = $thread.pop(); } main: while (true) { switch ($ptr) { case 0: try { var$1 = Long_ZERO; $ptr = 1; continue main; } catch ($$e) { $$je = $rt_wrapException($$e); if ($$je instanceof jl_InterruptedException) { } else { throw $$e; } } var$2 = new jl_InterruptedException(); jl_Throwable__init_(var$2); $rt_throw(var$2); case 1: a: { try { jl_Object_wait($this, var$1); if ($rt_suspending()) { break main; } } catch ($$e) { $$je = $rt_wrapException($$e); if ($$je instanceof jl_InterruptedException) { break a; } else { throw $$e; } } return; } var$2 = new jl_InterruptedException(); jl_Throwable__init_(var$2); $rt_throw(var$2); default: $rt_invalidPointer(); } } $rt_nativeThread().push($this, var$1, var$2, $ptr); }; var jl_Object_monitorEnterWait$_asyncCall_$ = (var$1, var$2) => { let thread = $rt_nativeThread(); let javaThread = $rt_getThread(); if (thread.isResuming()) { thread.status = 0; let result = thread.attribute; if (result instanceof Error) { throw result; } return result; } let callback = function() { }; callback.$complete = (val) => { thread.attribute = val; $rt_setThread(javaThread); thread.resume(); }; callback.$error = (e) => { thread.attribute = $rt_exception(e); $rt_setThread(javaThread); thread.resume(); }; callback = otpp_AsyncCallbackWrapper_create(callback); thread.suspend(() => { try { jl_Object_monitorEnterWait(var$1, var$2, callback); ; } catch ($e) { callback.$error($e); } }); return null; }; var jl_Object_waitImpl$_asyncCall_$ = (var$0, var$1, var$2) => { let thread = $rt_nativeThread(); let javaThread = $rt_getThread(); if (thread.isResuming()) { thread.status = 0; let result = thread.attribute; if (result instanceof Error) { throw result; } return result; } let callback = function() { }; callback.$complete = (val) => { thread.attribute = val; $rt_setThread(javaThread); thread.resume(); }; callback.$error = (e) => { thread.attribute = $rt_exception(e); $rt_setThread(javaThread); thread.resume(); }; callback = otpp_AsyncCallbackWrapper_create(callback); thread.suspend(() => { try { jl_Object_waitImpl(var$0, var$1, var$2, callback); ; } catch ($e) { callback.$error($e); } }); return null; }; var jlr_AnnotatedElement = $rt_classWithoutFields(0); var jlr_Type = $rt_classWithoutFields(0); function jl_Class() { let a = this; jl_Object.call(a); a.$name4 = 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_toString = ($this) => { let var$1, var$2, var$3; var$1 = (!($this.$platformClass.$meta.flags & 2) ? 0 : 1) ? $rt_s(1) : !jl_Class_isPrimitive($this) ? $rt_s(2) : $rt_s(3); var$2 = jl_Class_getName($this); var$3 = new jl_StringBuilder(); jl_AbstractStringBuilder__init_(var$3); jl_StringBuilder_append(jl_StringBuilder_append(var$3, var$1), var$2); return jl_AbstractStringBuilder_toString(var$3); }; var jl_Class_isInstance = ($this, $obj) => { let var$2; $obj = $obj; var$2 = $this.$platformClass; return $obj !== null && !(typeof $obj.constructor.$meta === "undefined" ? 1 : 0) && otp_Platform_isAssignable($obj.constructor, var$2) ? 1 : 0; }; var jl_Class_getName = ($this) => { if ($this.$name4 === null) $this.$name4 = $rt_str($this.$platformClass.$meta.name); return $this.$name4; }; var jl_Class_isPrimitive = ($this) => { return $this.$platformClass.$meta.primitive ? 1 : 0; }; var jl_Class_getComponentType = ($this) => { return jl_Class_getClass($this.$platformClass.$meta.item); }; var jl_Class_getSuperclass = ($this) => { return jl_Class_getClass($this.$platformClass.$meta.superclass); }; 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; }; var otp_Platform_isAssignable = (var$1, var$2) => { let $supertypes, $i; if (var$1 === var$2) return 1; $supertypes = var$1.$meta.supertypes; $i = 0; while ($i < $supertypes.length) { if (otp_Platform_isAssignable($supertypes[$i], var$2)) return 1; $i = $i + 1 | 0; } return 0; }; var otp_Platform_getEnumConstants = (var$1) => { let c = "$$enumConstants$$"; asr_Settings$Bool[c] = asr_Settings$Bool_values; asrr_BasicInstructionFormat[c] = asrr_BasicInstructionFormat_values; asrs_Simulator$Reason[c] = asrs_Simulator$Reason_values; asra_TokenTypes[c] = asra_TokenTypes_values; asrs_BackStepper$Action[c] = asrs_BackStepper$Action_values; asrj_RoundingMode[c] = asrj_RoundingMode_values; asrj_Flags[c] = asrj_Flags_values; otp_Platform_getEnumConstants = (cls) => { if (!cls.hasOwnProperty(c)) { return null; } if (typeof cls[c] === "function") { cls[c] = cls[c](); } return cls[c]; }; return otp_Platform_getEnumConstants(var$1); }; var otp_Platform_launchThread = (var$1) => { var$1.$run(); }; var otp_Platform_postpone = ($runnable) => { otp_Platform_schedule($runnable, 0); }; var otp_Platform_schedule = (var$1, var$2) => { setTimeout(() => { otp_Platform_launchThread(var$1); }, var$2); }; var otp_Platform_createQueue = () => { return otp_Platform_createQueueJs$js_body$_30(); }; var otp_Platform_createQueueJs$js_body$_30 = () => { return []; }; function jl_Throwable() { let a = this; jl_Object.call(a); a.$message1 = null; a.$cause0 = null; a.$suppressionEnabled = 0; a.$writableStackTrace = 0; } var jl_Throwable__init_ = ($this) => { $this.$suppressionEnabled = 1; $this.$writableStackTrace = 1; }; var jl_Throwable__init_0 = ($this, $message) => { $this.$suppressionEnabled = 1; $this.$writableStackTrace = 1; $this.$message1 = $message; }; var jl_Throwable_fillInStackTrace = ($this) => { return $this; }; var jl_Throwable_getMessage = ($this) => { return $this.$message1; }; var jl_Throwable_getCause = ($this) => { let var$1; var$1 = $this.$cause0; if (var$1 === $this) var$1 = null; return var$1; }; var jl_Exception = $rt_classWithoutFields(jl_Throwable); var jl_RuntimeException = $rt_classWithoutFields(jl_Exception); var jl_RuntimeException__init_ = ($this) => { jl_Throwable__init_($this); }; var jl_RuntimeException__init_1 = ($this, $message) => { jl_Throwable__init_0($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_2 = () => { let var_0 = new jl_String(); jl_String__init_7(var_0); return var_0; }; var jl_String__init_5 = ($this, $other) => { $this.$nativeString = $other.$nativeString; }; var jl_String__init_1 = (var_0) => { let var_1 = new jl_String(); jl_String__init_5(var_1, var_0); return var_1; }; var jl_String__init_3 = ($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_3(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_4 = (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) => { ju_Objects_checkFromIndexSize($offset, $count, var$1.data.length); var$0.$nativeString = $rt_charArrayToString(var$1.data, $offset, $count); }; var jl_String__init_0 = (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_Throwable__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_indexOf = ($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_indexOf2 = ($this, $ch) => { return jl_String_indexOf($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_indexOf1 = ($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_indexOf0 = ($this, $str) => { return jl_String_indexOf1($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_4($this.$nativeString.substring($beginIndex, $endIndex)); var$5 = new jl_StringIndexOutOfBoundsException(); jl_Throwable__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_2(); $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_valueOf = ($obj) => { return $obj === null ? $rt_s(4) : $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_3(var$2, var$3); return var$2; }; var jl_String_valueOf0 = ($i) => { let var$2; var$2 = new jl_StringBuilder(); jl_AbstractStringBuilder__init_(var$2); jl_AbstractStringBuilder_append(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_getBytes = ($this, $charset) => { let $buffer, $result, $$je; $buffer = jn_CharBuffer_wrap($rt_fastStringToCharArray($this.$nativeString)); a: { try { $buffer = jnc_CharsetEncoder_encode0(jnc_CharsetEncoder_onUnmappableCharacter(jnc_CharsetEncoder_onMalformedInput(jnci_UTF8Charset_newEncoder($charset), jnc_CodingErrorAction_REPLACE), jnc_CodingErrorAction_REPLACE), $buffer); break a; } catch ($$e) { $$je = $rt_wrapException($$e); if ($$je instanceof jnc_CharacterCodingException) { $buffer = $$je; } else { throw $$e; } } $rt_throw(jl_AssertionError__init_0($rt_s(5), $buffer)); } if (!$buffer.$position0 && $buffer.$limit == $buffer.$capacity0) return $buffer.$array1; $result = $rt_createByteArray(jn_Buffer_remaining($buffer)); jn_ByteBuffer_get($buffer, $result, 0, $result.data.length); return $result; }; 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_4($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(3); } 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.$replacement0 = 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_2(); 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.$value1 = 0; } var jl_Integer_TYPE = null; var jl_Integer_integerCache = null; var jl_Integer__init_0 = ($this, $value) => { $this.$value1 = $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_append4(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(6); 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_0($s, $rt_s(7)); $rt_throw($s); }; var jl_Integer_parseIntImpl = ($s, $beginIndex, $endIndex, $radix) => { let $negative, var$6, $value, $maxValue, var$9, $digit, var$11, var$12, var$13; if ($beginIndex == $endIndex) { $s = new jl_NumberFormatException(); jl_Throwable__init_0($s, $rt_s(8)); $rt_throw($s); } if ($radix >= 2 && $radix <= 36) { a: { $negative = 0; $s = $s; switch (jl_String_charAt($s, $beginIndex)) { case 43: var$6 = $beginIndex + 1 | 0; break a; case 45: $negative = 1; var$6 = $beginIndex + 1 | 0; break a; default: } var$6 = $beginIndex; } $value = 0; $maxValue = 1 + (2147483647 / $radix | 0) | 0; if (var$6 == $endIndex) { $s = new jl_Nu