@specy/risc-v
Version:
The RARS risc-v interpreter in JS
1,642 lines • 1.43 MB
JavaScript
// 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